查看: 2528|回复: 0

Verilog基础--多个数码管

[复制链接]
  • TA的每日心情
    开心
    2014-5-14 13:12
  • 签到天数: 180 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-4-23 18:58:15 | 显示全部楼层 |阅读模式
    分享到:
    再次吐槽一下,有些例程写的真心磨叽,想好更好的理解,还是得自己写
    多个数码管显示的代码:
    1. module mutiSeg7
    2. (
    3.         CLK, RSTn, LED,en
    4. );

    5.         input CLK, RSTn;
    6.         output [7:0] LED;
    7.         output [5:0] en;

    8.                 reg [5:0]rEn = 6'b111_110;
    9.                 parameter T1ms = 16'd50_000;
    10.                 parameter         _0 = 8'b1100_0000,
    11.                                         _1 = 8'b1111_1001,
    12.                                         _2 = 8'b1010_0100,
    13.                                         _3 = 8'b1011_0000,
    14.                                         _4 = 8'b1001_1001,
    15.                                         _5 = 8'b1001_0010,
    16.                                         _6 = 8'b1000_0010,
    17.                                         _7 = 8'b1111_1000,
    18.                                         _8 = 8'b1000_0000,
    19.                                         _9 = 8'b1001_0000,
    20.                                         _a = 8'b1000_1000,
    21.                                         _b = 8'b1000_0011,
    22.                                         _c = 8'b1100_0110,
    23.                                         _d = 8'b1010_0001,
    24.                                         _e = 8'b1000_0110,
    25.                                         _f = 8'b1000_1110;
    26.                 //1ms
    27.                 reg [31:0] count;
    28.                 always @(posedge CLK or negedge RSTn)
    29.                 if(!RSTn)
    30.                         count <= 0;
    31.                 else if (count == T1ms)
    32.                         count <= 26'b0;
    33.                 else count <= count + 26'b1;       

    34.       
    35.         reg[7:0] rLED;
    36.                 always @(posedge CLK or negedge RSTn)
    37.                         if(!RSTn)
    38.                                         rEn <= 6'b111_110;
    39.                 else if(count == T1ms)
    40.                                         case(rEn)
    41.                                                 6'b111_110:
    42.                                                         begin
    43.                                                                 rEn <= 6'b111_101;       
    44.                                                                 rLED <= _0;
    45.                                                         end
    46.                                                 6'b111_101:
    47.                                                         begin
    48.                                                                 rEn <= 6'b111_011;
    49.                                                                 rLED <= _1;
    50.                                                         end
    51.                                                 6'b111_011:
    52.                                                         begin
    53.                                                                 rEn <= 6'b110_111;
    54.                                                                 rLED <= _2;
    55.                                                         end
    56.                                                 6'b110_111:
    57.                                                         begin
    58.                                                                 rEn <= 6'b101_111;
    59.                                                                 rLED <= _3;
    60.                                                         end
    61.                                                 6'b101_111:
    62.                                                         begin
    63.                                                                 rEn <= 6'b011_111;
    64.                                                                 rLED <= _4;
    65.                                                         end
    66.                                                 6'b011_111:
    67.                                                         begin
    68.                                                                 rEn <= 6'b111_110;
    69.                                                                 rLED <= _5;
    70.                                                         end
    71.                                                 default:
    72.                                                         begin
    73.                                                                 rEn<= 6'b111_110;
    74.                                                                 rLED <= _0;
    75.                                                         end
    76.                                         endcase
    77.         assign LED = rLED;
    78.                 assign en = rEn;
    79. endmodule
    80.                
    复制代码
    会在一排数码管上显示012345
    tcl代码:
    1. #------------------GLOBAL--------------------#
    2. set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED"
    3. set_global_assignment -name ENABLE_INIT_DONE_OUTPUT OFF

    4. #复位引脚
    5. set_location_assignment        PIN_M1        -to RSTn

    6. #时钟引脚
    7. set_location_assignment        PIN_R9        -to CLK

    8. #数码管对应的引脚
    9. set_location_assignment        PIN_M8        -to LED[0]
    10. set_location_assignment        PIN_L7        -to LED[1]
    11. set_location_assignment        PIN_P9        -to LED[2]
    12. set_location_assignment        PIN_N9        -to LED[3]
    13. set_location_assignment        PIN_M9        -to LED[4]
    14. set_location_assignment        PIN_M10        -to LED[5]
    15. set_location_assignment        PIN_P11        -to LED[6]
    16. set_location_assignment        PIN_N11        -to LED[7]

    17. set_location_assignment        PIN_N6        -to en[5]
    18. set_location_assignment        PIN_P6        -to en[4]
    19. set_location_assignment        PIN_M6  -to en[3]
    20. set_location_assignment        PIN_M7        -to en[2]
    21. set_location_assignment        PIN_P8        -to en[1]
    22. set_location_assignment        PIN_N8        -to en[0]
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-13 15:37 , Processed in 0.117396 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.