HDLBits 答案之Exams/ece241 2014 q7b

答案如下:

 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

你可能感兴趣的:(fpga开发,单片机,嵌入式硬件,verilog)