查看: 1492|回复: 0

实现4个LED灯的亮灭控制(下)

[复制链接]

该用户从未签到

发表于 2016-2-29 15:04:45 | 显示全部楼层 |阅读模式
分享到:
七、测试平台设计
        本实验主要对LED的输出和输入与复位的关系进行测试仿真,通过仿真,即可验证设计的正确性和合理性。相关testbench的代码如下:
                                以下是代码片段:
                                                                         `timescale 1ns/1ns                                                                          module LED_Driver_tb;
                                       
                                        reg Rst_n;
                                        reg [3:0] Sig;
                                       
                                        wire [3:0] Led;
                                       
                                        LED_Driver
                                        #( /*参数例化*/
                                        .Width (4)
                                        )
                                        LED_Driver_inst(/*端口例化*/
                                        .Rst_n(Rst_n),
                                        .Sig(Sig),/*OFF ON ON OFF*/
                                        .Led(Led)
                                        );
                                       
                                        initial begin
                                        Rst_n = 0;
                                        Sig = 4'b1010;
                                        #100;
                                        Rst_n = 1;
                                        #40 Sig = 4'b0001;
                                        #40 Sig = 4'b0010;
                                        #40 Sig = 4'b0011;
                                        #40 Sig = 4'b0100;
                                        #40 Sig = 4'b0101;
                                        #40 Sig = 4'b0110;
                                        #40 Sig = 4'b0111;
                                        #40 Sig = 4'b1000;
                                        #40 Sig = 4'b1001;
                                        #40 Sig = 4'b1010;
                                        #40 Sig = 4'b1011;
                                        #40 Sig = 4'b1100;
                                        #40 Sig = 4'b1101;
                                        #40 Sig = 4'b1110;
                                        #40 Sig = 4'b1111;
                                        #40;
                                        $stop;
                                        end
                                       
                                        endmodule                                                         
        由testbench中可以看出,初始值给Sig赋了一个初始值,系统处于复位状态,100ns后,复位过程结束,系统进入正常工作状态,Sig信号每隔一定时间变化一次。因此,只需要观察Led信号与Sig信号的关系,即可验证设计的正确与否。
        八、仿真分析
       
        由上图仿真结果可知,当复位信号为低电平时,Led输出全部为1,则所有LED熄灭,当复位信号为高电平时,则Led输出与Sig信号一致,证明设计正确无误。对于顶层模块,仿真没有什么太大的实际意义,因此不做仿真。
        九、总结
我这里主要是强调了一种建模的思想,我们所做的模块一定要具有灵活性和通用性,当其它设计中需要用到该外设时,只需要关心其内部端口就行了,在顶层例化时 只需要将对应信号接到该端口上就能实现功能了,不用再专门为了特定应用再写一次。目前系统简单,可能大家还看不出这种方式的优势,随着以后的设计越来越复 杂,大家就能很明显的看到这种设计方式的优势所在了。
文章来源网络
相关阅读:
实现4个LED灯的亮灭控制(上)
回复

使用道具 举报

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

本版积分规则

关闭

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

手机版|小黑屋|与非网

GMT+8, 2024-4-25 12:25 , Processed in 0.119855 second(s), 17 queries , MemCache On.

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

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.