hdl四位二进制计数器_这个verilogHDL程序哪里有问题啊……是个十进制四位计数器……...

博客指出了一个Verilog HDL实现的四位二进制计数器存在的问题,包括reg声明错误、语法遗漏、缺少分号以及未定义cout输出信号。博主提供了一个修正后的程序,并通过仿真验证了其正确性。
摘要由CSDN通过智能技术生成

展开全部

首先在reg qout处就错了,应该为reg 【15:0】 qout;

其次always @62616964757a686964616fe59b9ee7ad9431333262383562(posedge clk);后面没有分号的,应去掉;

再者 qout[3:0]<=qout[3:0]+1后面缺少分号,应加上;

最后还没有cout输出信号;

我在你的基础上稍微改了下,仿了下是正确的,可以见仿真的波形图

程序如下:

module count16 (

qout,clk,clear_n,incr_n,cout

);

output[15:0] qout;

output cout;

input clk;         //clock

input clear_n;

input incr_n;         //1start or 0stop

reg [15:0] qout;

reg cout;

always @(posedge clk)

begin

if (clear_n==0)

begin

qout <= 16'b0;

cout <= 1'b0;

end

else begin

if(incr_n==0) qout <= qout;

else

begin

if(qout[3:0]==4'h9)

begin

qout[3:0] <=4'b0;

if(qout[7:4]==4'h9)

begin

qout[7:4] <=4'b0;

if(qout[11:8]==4'h9)

begin

qout[11:8] <=4'h0;

if(qout[15:12]==4'h9)

begin

qout[15:12] <=4'b0;

cout <= 1'b1;

end

else

qout[15:12]<=qout[15:12]+1;

end

else

qout[11:8]<=qout[11:8]+1;

end

else

qout[7:4]<=qout[7:4]+1;

end

else

qout[3:0]<=qout[3:0]+1;

end

end

end

endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值