答案如下:
module top_module (
input clk,
input reset,
output OneHertz,
output [2:0] c_enable
);
wire[3:0] q0, q1, q2;//q1,q2,q3分别代表个位,十位,百位的计数器输出
assign c_enable[0]=1'b1;//个位计数器始终在运行,因此使能信号始终运行
assign c_enable[1]=c_enable[0]&q0==4'b1001;//0~9是十个数,因此十位计数器只有当个位为9的时候才开始运行一次,
assign c_enable[2]=c_enable[1]&q1==4'b1001;//百位也是如此
bcdcount counter0 (clk, reset, c_enable[0], q0);
bcdcount counter1 (clk, reset, c_enable[1], q1);
bcdcount counter2 (clk, reset, c_enable[2], q2);
assign OneHertz=(q0==4'b1001 && q1==4'b1001 && q2==4'b1001);//当为999时,其实已经有0~999一共1000个数字了,此时为1s。
//1000HZ就是代表clk的周期为1ms。
endmodule