本文目录
用Verilog HDL设计十进制减法计数器
moduleCNT10(CLK,RST,EN,CQ,COUT);inputCLK,RST,EN;outputCQ;outputCOUT;regCQ,CQI;regCOUT;always@(posedgeCLK)//检测时钟上升沿begin:u1if(RST==1’b1)//计数器复位旅斗beginCQI={4{1’b0}};endbeginif(EN==1’b1)//检测是否允许计数beginif(CQI《9)beginCQI=CQI+1;//允许计数endelsebeginCQI={4{1’b0}};//大于9,计数值清零endendendif(CQI==9)beginCOUT《=1’b1;//乱改计数大于9,输出进位信号endelsebeginCOUT《=1’b0;endCQ《哗镇判=CQI;//将计数值向端口输出endendmodule
用Verilog编一个计数器的程序
举个简单点的例子,如下。
设计一个4bit的计数器,在记到最大值时输出一个信号
module counter_16 ( input clk, input rst_n, input cnt_in ,output reg cnt_out );
reg cnt;
always @ (posedge clk or negedge rst_n) begin
if (~rst_n) cnt 《= 4’b0;
else if (cnt_in) cnt 《中弯= cnt +1’b1;
else cnt 《= cnt;
end
always @ (posedge clk or negedge rst_n) begin
if (~rst_n) cnt_out 《= 1’b0;
else if (cnt_in && cnt == 4’b1111) cnt_out 《= 1’b1;
else cnt_out 《= 1’b0;
end
endmodule
这实际上设计了一个16进制计卖唤闷数器其中的一位,你可以例化多个相同模块,将低位的cnt_out连接到高位的链搏cnt_in,级联成一个任意位数的16进制计数器。
基本七进制计数器的Verilog描述代码
if(cnt==4`d9)就把这句改备答下呀,这也太简单了陵桥吧,七进制if(cnt==4`d6),九尺滚猛进制if(cnt==4`d8)