您的位置:首页 > 其它

verilog学习笔记——偶数分频器

2017-03-01 09:07 183 查看

N分频,N是偶数

module clk_div_N(
clk,
rst_n,
clk_out
);
parameter   N = 20;    //分频器N分频
parameter   t = 4;     //计数器的位数
//输出端口
output  clk_out;
//输入端口
input   clk;
input   rst_n;
//端口类型声明
reg     clk_out;
reg[t-1:0]  cnt;
always@(posedge clk or negedge rst_n) begin
if(!rst_n) begin     //异步复位
cnt <= 4'b0;
clk_out <= 1'b0;
end else if(cnt == N-1) begin    //计数到9时,计数器清0,输出翻转
cnt <= 0;
clk_out <= ~clk_out;
end else begin
cnt <= cnt + 1;
end
end
endmodule


`timescale 1ns/100ps
module clk_div_N;
reg clk;    //时钟激励
reg rst_n;  //复位激励
wire clk_out;  //时钟分频输出
//例化
clk_div_N   DUT(
.clk(clk),
.rst_n(rst_n),
.clk_out(clk_out)
);

intial
begin
#0 begin
clk = 0;
rst_n = 0;
end
#10
rst_n = 1;
#1000 $stop;   //1000个单位激励结束
end
always
begin
#10 clk = ~clk;
end
endmodule
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: