广告

小梅哥和你一起深入学习FPGA之点亮LED灯(下)

2017-1-10 11:51 207 0

七、 测试平台设计


本实验主要对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信号一致,证明设计正确无误。对于顶层模块,仿真没有什么太大的实际意义,因此不做仿真。


九、 下板验证


手头暂无开发板,板级验证略。


十、 总结


可能很多初学FPGA,又看过其它一些资料的同学会对小梅哥的这种组织方式感觉不太习惯,认为本来一个代码模块就能搞定的事儿被我硬生生拆成了两个,增加了系统的复杂性。其实,我这里主要是强调了一种建模的思想,我们所做的模块一定要具有灵活性和通用性,当其它设计中需要用到该外设时,只需要关心其内部端口就行了,在顶层例化时只需要将对应信号接到该端口上就能实现功能了,不用再专门为了特定应用再写一次。目前系统简单,可能大家还看不出这种方式的优势,随着以后的设计越来越复杂,大家就能很明显的看到这种设计方式的优势所在了。


广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
小梅哥 2018-05-27 22:03
【博客大赛】【小梅哥FPGA】闹心的gcc-linaro-arm-linux-gnueabihf编译器——Floating ...
  今天在继续编写示波器(just for fun)工程,该工程的波形显示和处理界面是在Linux系统上编写程序实现的。应用程序的编写是使用的17.1版本的Quartus软件配套的DS-5软...
小梅哥 2018-05-09 22:37
【博客大赛】【小梅哥FPGA】Cyclone V SoC 中为HPS添加SPI控制器并使用 ... ... ... ...
    关于如何在Cyclone V SoC FPGA系统中为HPS添加一个SPI外设,这个实验我已经进行了有相当长的一段时间了,但直到今日方才有所突破,顺利的完成了SPI控制器的...
小梅哥 2018-05-04 11:49
【博客大赛】【小梅哥FPGA】Altera SOC更改Qsys后重新生成hps_0.h文件 ...
在Altera SoC的开发中,Qsys系统和Linux应用程序之间通过一个名为hps_0.h的文件交互硬件信息,例如总线上添加了哪些外设,每个外设相对于HPS外部总线的偏移地址,每个外设所占的地址空...
小梅哥 2018-05-04 11:44
【博客大赛】【小梅哥FPGA】Quartus II中使用脚本转换sof到rbf文件 ... ...
        rbf文件作为Altera的FPGA一种常见的配置数据格式,常用于使用其他主控主动配置FPGA时使用,例如PS模式。在Cyclone V SoC...
小梅哥 2018-05-04 11:36
【博客大赛】【小梅哥FPGA】使用DS-5编写和调试SoC的Linux应用程序 ...
对于Intel Cyclone V SoC FPGA用户,如果仅仅开发应用程序,也可以在 Windows 环境下完成。Intel针对其自家的SoC FPGA芯片提供了定制的DS-5软件,该软件为A...
小梅哥 2018-05-03 22:11
【博客大赛】使用MATLAB一键制作mif文件
        这里讲解实现一个16384(2^14)点的14位正弦波数据mif格式文件的生成,使用此文件,我们便可以在FPGA上基于直接数字合成(DDS)原理...
我要评论
0
0
广告