设计具有以下输入和输出的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
答案 0 :(得分:0)
我发现有差异。我不知道您是不是在复制文本时出错还是该错误出在原始作业中?
信号c_d
是测试平台(top_module)中的输出,但输入到count4模块中。这意味着在上面的代码中,没有人在驱动信号。
问问题时请更加准确。 “结果错误” 也不起作用。最好的描述方式是:“我应该在时间B看到A,但在时间C却看到D”。在这种情况下,我将并排显示波形。