【问题标题】:Verilog 4-bit up-down counter designed using negative edge triggered T flip flopsVerilog 4 位加减计数器设计使用负边沿触发 T 触发器
【发布时间】:2015-06-05 13:28:34
【问题描述】:

我对 Verilog HDL 很陌生,我必须编写这个 4 位的向上向下计数器。在阅读了一些上下计数器和 t 触发器的帮助下,我已经编写了以下代码:

module up_down_4bitcounter (
out,
up_down,
clk,
data,
reset
);

//Output Ports
output [3:0] out;

//Input Ports
input [3:0] data;
input up_down, clk, reset;

//Internal Variables
reg [3:0] out;

//Start of Code
always @(negedge clk)
if (reset) begin // active high reset
out <= 4'b0 ;
end else if (up_down) begin
out <= out + 1;
end else begin
out <= out - 1;
end

endmodule 

现在,我收到了这个错误:

Exercise5_1.v:25: syntax error
Exercise5_1.v:25: error: unmatched character (')
Exercise5_1.v:25: error: malformed statement

第 25 行是这一行:

out <= 4'b0 ;

我不能 100% 确定我的编码是否正确。你能告诉我我的问题在哪里吗?

【问题讨论】:

  • 我已经在 3 个不同版本的 Icarus Verilog 中编译了您的代码,但我无法重现此错误。
  • 感谢您的回复!我的代码中似乎有多余的“'”。不过,我不确定如何测试我的代码。我的代码在正确的轨道上吗?抱歉,最近才进入 Verilog。
  • 如果你想同步重置,看起来还不错。
  • 感谢邱的回复,非常感谢。是的,教授说代码是正确的。

标签: verilog flip-flop icarus iverilog


【解决方案1】:
Line 25 is this one:

第25行有错误:

out <= 4'b0 ;

答案是:

Out <= 4'b0000 ;

【讨论】:

  • 这是不正确的。问题中的代码没有错误;这是正确的语法。但是您只是通过将out 更改为Out 来创建错误。
【解决方案2】:

你的代码很好,你可以模拟一下here。一种选择是将out &lt;= 4'b0; 更改为out &lt;= 0;,如果它有效,则说明您的编辑器或模拟器有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多