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

问题描述 投票:0回答:1

使用以下输入和输出设计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
verilog hdl
1个回答
0
投票

我注意到了一个差异。我不知道你复制文本是否有错,或者错误是在原始作业中:

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

提问时请更准确。 “结果是错误的”也没有帮助。最好是在文字中描述“我应该在时间B看A,但在时间C,D出来”。在这种情况下,我还会并排显示波形。

© www.soinside.com 2019 - 2024. All rights reserved.