用Verilog语言怎么写一个60进制的计数器然后显示在数码管上

2019-07-16 00:29发布

小弟刚学FPGA用的是EP4CE6  现在想写一个60进制的计数器 然后在数码管上显示出来   用verilog写   但想了好几天没想出来   去大侠指导下   或给个程序看看   小弟感激不尽。。。。。拜托了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
孟凡良
2019-07-16 15:15
数码管加码模块
module smg_encoder_module
(
    CLK, RSTn,
     Ten_Data, One_Data,
     Ten_SMG_Data, One_SMG_Data
);

    input CLK;
     input RSTn;
     input [3:0]Ten_Data;
     input [3:0]One_Data;
     output [7:0]Ten_SMG_Data;
     output [7:0]One_SMG_Data;
     
     /***************************************/
     
     parameter _0 = 8'b1100_0000, _1 = 8'b1111_1001, _2 = 8'b1010_0100,
               _3 = 8'b1011_0000, _4 = 8'b1001_1001, _5 = 8'b1001_0010,
                  _6 = 8'b1000_0010, _7 = 8'b1111_1000, _8 = 8'b1000_0000,
                  _9 = 8'b1001_0000;

     /***************************************/

     reg [7:0]rTen_SMG_Data;

     always @ ( posedge CLK or negedge RSTn )
         if( !RSTn )
              begin
                    rTen_SMG_Data <= 8'b1111_1111;
                end
        else
               case( Ten_Data )

                      4'd0 : rTen_SMG_Data <= _0;
                      4'd1 : rTen_SMG_Data <= _1;
                      4'd2 : rTen_SMG_Data <= _2;
                      4'd3 : rTen_SMG_Data <= _3;
                      4'd4 : rTen_SMG_Data <= _4;
                      4'd5 : rTen_SMG_Data <= _5;
                      4'd6 : rTen_SMG_Data <= _6;
                      4'd7 : rTen_SMG_Data <= _7;
                      4'd8 : rTen_SMG_Data <= _8;
                      4'd9 : rTen_SMG_Data <= _9;
                     
                 endcase
              
     
     /***************************************/
     
     reg [7:0]rOne_SMG_Data;

     always @ ( posedge CLK or negedge RSTn )
        if( !RSTn )
             begin
                    rOne_SMG_Data <= 8'b1111_1111;
              end
       else
             case( One_Data )

                    4'd0 : rOne_SMG_Data <= _0;
                    4'd1 : rOne_SMG_Data <= _1;
                    4'd2 : rOne_SMG_Data <= _2;
                    4'd3 : rOne_SMG_Data <= _3;
                    4'd4 : rOne_SMG_Data <= _4;
                    4'd5 : rOne_SMG_Data <= _5;
                    4'd6 : rOne_SMG_Data <= _6;
                    4'd7 : rOne_SMG_Data <= _7;
                    4'd8 : rOne_SMG_Data <= _8;
                    4'd9 : rOne_SMG_Data <= _9;
                     
              endcase
              
    /***************************************/

     assign Ten_SMG_Data = rTen_SMG_Data;
     assign One_SMG_Data = rOne_SMG_Data;
     
     /***************************************/
              
endmodule

一周热门 更多>