原创 FPGA学习笔记之modelsim仿真和testbench编写

2015-5-14 23:36 2800 23 24 分类: FPGA/CPLD

       仿真对于FPGA开发非常之重要,所以重头来过的必不可少的过程便是Modelsim的使用学习。于是不可避免的要学习testbench的编写了。

       testbench编写就需要Verilog语法基础了。默默的翻书看语法去。。。这时就能体会到·timescale 1ns/1ns的作用了。这里主要用到initial块,initial模块只运行一次,每个initial模块是并行处理的。还有一个最通用的大概就是时钟激励,基本上用一个

initial

begin

     forever 

     #10ns

     clk = ~clk;

end

就能产生一个50Mhz时钟。

        testbench的格式:

1.文件头

2.module列表

3.实例化模块

4.各种激励,包括时钟的产生。一些小仿真基本用initial模块就能解决。

        modelsim使用体验:

       首先是modelsim的使用。1.新建仿真工程,目录为分好的FPGA工程子目录下的sim文件夹,方便管理;2.复制要仿真的目标文件xx.v到sim中,然后再modelsim工程目录下将之添加existing file,再新建testbench文件,xx_TB.v.

       其次是compile。语法错误时,按照错误报告修改再编译即可。

       然后编译通过,start simulation,添加testbench激励文件,开始进入仿真模式。若要观察信号波形,需要将信号add 至右侧波形窗口。Transcrip栏输入run 1000ns,则仿真开始运行直至1000ns结束。

       最后,终于可以看到波形了。

       当然,modelsim的强大之处肯定完全不止这些,在以后学习中慢慢探索和开发吧。

       理解可能很菜很肤浅,但所有的这些都是为了不再菜。

文章评论1条评论)

登录后参与讨论

用户1749260 2015-5-17 00:26

再接再厉
相关推荐阅读
lzzno1888666_512355874 2015-06-16 09:21
FPGA的系统架构组成和器件互联问题(博文精选)
通常来讲,“一个好汉三个帮”,一个完整的嵌入式系统中由单独一个FPGA使用的情况较少。通常由多个器件组合完成,例如由一个FPGA+CPU来构成。通常为一个FPGA+ARM,ARM负责软件配置管理,界面...
lzzno1888666_512355874 2015-06-11 23:17
初次socket编程
在网络通信应用程序的编程中用到的socket,严格称来应该是socket APIs,它是一组将TCP/UDP/IP协议层的接口函数进行封装后的,供给应用程序调用的应用层接口函数。OSI的7层通信模...
lzzno1888666_512355874 2015-06-11 22:39
初次socket编程
        在网络通信应用程序的编程中用到的socket,严格称来应该是socket APIs,它是一组将TCP/UDP/IP协议层的接口函数进行封装后的,供给应用程序调用的应用层接口函数。O...
lzzno1888666_512355874 2015-06-03 21:53
以太网网口电路调试
    最近一块板卡上以太网网口始终没有调通,直至今天才解决。吸取教训,还是因为没有充分思考问题所在,没有多方面查证电路的问题。最终找到原因是因为网口处的匹配电阻焊错了,本来50欧的电阻买的时候商...
lzzno1888666_512355874 2015-05-30 17:42
ARM+FPGA架构笔记
        由于项目需求,最近学习了ARM+FPGA的设计架构,简单做个记录。 ARM和FPGA结构的通信大致可以分为两种: 1.     数据量小、通信速率要求不高的情况,可以考虑采...
我要评论
1
23
关闭 站长推荐上一条 /2 下一条