Verilog HDL学习要点:LED循环闪烁及流水灯

本文介绍了使用LED实现循环闪烁和流水灯的硬件需求,强调了参数化设计的优点,尤其是在功能仿真中的应用。同时,讨论了移位操作在流水灯中的处理以及在modelsim中的仿真要点,包括修改、重新编译和运行流程。
摘要由CSDN通过智能技术生成

        任务一:LED循环闪烁

        任务二:流水灯

        时间间隔:0.5s

一、硬件需求

        4个LED灯,50MHz Clock

二、参数化设计

        1、定义参数可以一次性修改代码中所有需要用到该参数地方。

        2、功能仿真中在test_bench文件中可以例化参数减少仿真时间。

        如:计数满24_999_999,LED实现翻转,可定义参数CNT_MAX

        在testbench中例化如下

        led_flash

        #(.CNT_MAX(25'24_999))

        led_flash0(

                例化其他接口

                )

        但是得特别注意的是,这种例化方式只能用于功能仿真,时序仿真会报错。

三、移位与拼接

        led <= led << 1;     //移位,高位自动补0.

        led <= {led[2:0],led[3]};   //位拼接,将高位移到最低位

        实现流水灯的过程中,移位会导致全0的现象,因此需要添加限定条件,代码会更加复杂。

四、modelsim仿真要点

        在testbench中做了修改后,可在modelsim中的library>>work>>xxx_tb,右击,然后recomplie,然后restart,run_all。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值