在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2112|回复: 0

[原创] FPGA入门:第一个工程实例之功能仿真概述

[复制链接]
发表于 2015-3-1 20:04:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

FPGA入门:第一个工程实例之功能仿真概述


本文节选自特权同学的图书《FPGA/CPLD边练边学——快速入门verilog/Vhdl

书中代码请访问网盘:http://pan.baidu.com/s/1bndF0bt



完成了前面基本的设计输入后,为了进一步的验证代码所实现功能的正确性,我们还需要进行仿真测试。关于仿真的一些深入的介绍大家可以参考笔者的《深入浅出玩转FPGA》一书笔记10的相关内容。为了让大家更好的理解什么是仿真、为什么要做仿真以及如何做仿真,这里将以testbench的基本概念进行简单的介绍。当然了,仿真其实在包含在testbench这个大概念里面的。

所谓testbench,即测试平台,详细的说就是给待验证的设计添加激励,同时观察它的输出响应是否符合设计要求。如图5.27所示,测试平台就是要模拟一个和待验证设计接口的各种外围设备。

QQ图片20150301193036.jpg

5.27 设计与验证


仿真测试是FPGA设计流程中必不可少的步骤。在今天的FPGA设计中,如果逻辑规模较大,一般都会使用到IP核或者SOC来加快RTL级设计,所以花费在仿真验证上的工作量往往能够占到这个开发流程的70%。仿真测试的重要性可见一斑。


初学者在刚接触仿真这个概念的时候,可能以为仿真只是简单的用一些开发软件自带的波形发生器产生一些激励,然后观察一下最后的波形输出就完事了。但是对于大规模的设计,用波形产生激励是不现实的,观察波形的工作量也是可想而知的。例如,对于一个16位的输入总线,它可以有65536种组合,如果每次随机产生一种输入,那用波形岂不累死人。再说输出结果的观察,对应65536种输入的65536种输出,看波形肯定让人花眼缭乱。所以,testbench应该有更高效的测试手段。对于FPGA的仿真,使用波形输入产生激励是可以的,观察波形输出以验证测试结果也是可以的,波形也许是最直观的测试手段,但绝不是唯一手段。


如图5.28所示,设计的测试结果判断不仅可以通过观察对比波形,而且可以灵活的使用脚本命令将有用的输出信息打印到终端或者产生文本进行观察,也可以写一段代码让他们自动比较输出结果。总之,testbench的设计是多种多样的,它的语法也是很随意的,不像RTL级设计代码那么多讲究,它是基于行为级的语法,很多高级的语法都可以在脚本中使用。因为它不需要实现到硬件中,它是运行在PC机上的一段脚本,所以相对RTL级可以做得更容易更灵活一些。

QQ图片20150301193117.jpg

5.28 验证输出


前面我们也以及介绍过VerilogVHDL都有其相应的行为级的语法,这类语法相对而言更高级一些,它们无需实现到最终的硬件中,而是在PC上运行编译来实现相关功能。而VerilogVHDL相比,语法更自由一些,或者也可以说更高级一些,它用来写测试脚本更加游刃有余。当然了,业内也出现了一些类似System VerilogSystem C等更高级的HDL语言,虽然这些语言出现的初衷都是为了能够最终直接服务于RTL级设计,但实际情况并没有预期的理想,这些语言目前大都只是被用于testbench设计上了。不过对于一般的设计,我们也不用过分追求更高级的语法,行为级的Verilog足够应付大多数的设计验证。


本文节选自特权同学的图书《FPGA/CPLD边练边学——快速入门Verilog/VHDL

书中代码请访问网盘:http://pan.baidu.com/s/1bndF0bt



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

本版积分规则

关闭

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

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 08:59 , Processed in 0.020855 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表