HDLBits上的问题:设计具有以下输入和输出的1-12计数器

时间:2019-03-30 11:15:43

标签: verilog hdl

设计具有以下输入和输出的1-12计数器:

复位同步高电平有效复位,将计数器强制为1 启用设为高以使计数器运行 Clk正边沿触发时钟输入 Q [3:0]计数器的输出 c_enable,c_load,c_d [3:0]控制信号转到提供的4位计数器,因此可以验证正确的操作。 您可以使用以下组件:

下面的4位二进制计数器(count4),具有启用和同步并行加载输入(加载的优先级高于启用)。 count4模块已提供给您。在电路中实例化它。 逻辑门

module count4(
    input clk,
    input enable,
    input load,
    input [3:0] d,
    output reg [3:0] Q
);

/here begin to code:
module top_module (
    input clk,
    input reset,
    input enable,
    output [3:0] Q,
    output c_enable,
    output c_load,
    output [3:0] c_d
); 

    count4 the_counter (clk, c_enable, c_load, c_d /*, ... */ );

endmodule
/here finish code

问题出在网站上(https://hdlbits.01xz.net/wiki/Exams/ece241_2014_q7a),I已尝试解决,但遗憾地失败了,所以您能给我一个正确的答案并告诉我原因,非常感谢!

这是我失败的代码:

module top_module (
    input clk,
    input reset,
    input enable,
    output [3:0] Q,
    output c_enable,
    output c_load,
    output [3:0] c_d
); //
    assign c_enable = enable;
    assign c_d = 4'd1;
    assign c_load = (reset||(Q==4'd12)) ? 1 : 0;

    count4 the_counter (clk, c_enable, c_load, c_d, Q );

endmodule

1 个答案:

答案 0 :(得分:0)

我发现有差异。我不知道您是不是在复制文本时出错还是该错误出在原始作业中?

信号c_d是测试平台(top_module)中的输出,但输入到count4模块中。这意味着在上面的代码中,没有人在驱动信号。

问问题时请更加准确。 “结果错误” 也不起作用。最好的描述方式是:“我应该在时间B看到A,但在时间C却看到D”。在这种情况下,我将并排显示波形。