【发布时间】:2023-03-26 16:53:02
【问题描述】:
我有一个关于 Verilog 的非常初学者的问题,希望得到一些帮助。
您可以在下面看到一个简单计数器的代码:
- 输入:单时钟信号,接时钟
- 输入:复位信号,与物理按键相连
- 输出:计数器输出
- 输出:led 等于复位输入
奇怪的行为是,当复位信号为高电平时,计数器不会复位为零。
在板上我可以看到当我按下按钮时 LED 会打开和关闭,所以复位是真的,但是 if 指令 internal_counter <= 0; 没有执行(?)
我正在使用 Quartus Prime II Lite 和 DE-10 Nano Terasic 板
有什么建议吗?谢谢!
//Single clock input and a 32bit output port
//reset will zero the internal_counter
module simple_counter (
CLOCK_50,
counter_out,
reset,
led
);
input CLOCK_50 ;
input reset ;
output led;
output [31:0] counter_out;
reg [31:0] counter_out;
reg [31:0] internal_counter;
reg led;
always @ (posedge CLOCK_50) // on positive clock edge
begin
if (reset)
internal_counter <= 0;
led <= reset;
internal_counter <= internal_counter + 1;
counter_out <= internal_counter;// increment counter
end
endmodule // end of module counter
【问题讨论】:
-
只需在 `led
-
你对
internal_counter的哪个分配有效? -
嗨@RAMAKRISHNAMEDA,谢谢你的建议。正如 Seaotter211 和 Oldfart 所建议的那样,我实现了它并工作了。干杯!
-
嗨@TomServo,这是我早先应该问自己的问题:) 显然这是最后一个问题。干杯!
标签: verilog