CrazyBingo

移情别恋,开始Modelsim

0
阅读(2114)

移情别恋,开始Modelsim

一、一刀两断,移情别恋

我郁闷的是,玩FPGA少说也有3年了,一直偷个懒没用挂modelsim,一直用Quartus II 自带simulation来仿真。甚至到了后来,仿真都懒得动手,就凭经验,直接YY的了。

知道我看了《art of writing testbench》,才知道DUT这玩样,才知道代码的严谨以及我之错误,才知道testbench之必不可少。一直认为,才多大的工程,用Quartus II自带的simulation么的了,要testbench有何干系。现在才明白,我那些靠YY的设计,那是因为工程太小了,或者太简单了,那些小儿科的东西固然不必有劳Modelsim大驾,而要达到更高的台阶,要有更大的提升空间,Modelsim之入手,必不可少。

可怜我学FPGA三年,吊儿郎当,一拖拖到了现在,到如今才逼着自己去学Modelsim,真是惭愧至极啊。如今要是再有人问我该用啥,我会毫不犹豫的告知你,别玩傻瓜式的Quartus II自带的Simulation了,随心所欲的用testbench吧。(有一天我会说,别蛋疼的用notepad++了,用vim装逼玩高深吧O(∩_∩)O哈哈~)

二、简说Testbench精要

1) 牢记DUT

写testbench与写RTL代码本身一样。随着集成电路越来越复杂,验证集成电路的挑战也越来越大。60%到70%的时间花在测试验证芯片之上。尽管这些东西许多集成电路工程师都知道,但是仍然有很多工程师认为验证不是那么重要。

原本写代码都是直接YY的,不行就再改改,拼命找错误,蛋疼得很。Testbench有一个很重要的说法,叫做DUT即design under test(惭愧,以前没人告诉我,我都不知道),在测试下设计。如此设计的电路,可靠性和稳定性无疑比原本YY的电路更胜一筹。

2) Testbench的结构

wps_clip_image-25539

如上图所以,若以测试Counter.v为例,前端部分极为teshbench的代码功能,而Modelsim的功能即在生成testbench的测试电路已经对Counter.v进行验证,同时将结果输出GUI窗口以供设计者观察验证。

建立counter_tb.v的testbench文件,建立时钟,复位,使能逻辑,例化counter模块,以reg为counter的输入,以wire为counter的输出。在testbench固定的时间内,进行仿真。

3) Testbench之强大

相对于verilog而言,testbench非常强大,而且更加的类C。不仅可以方便的完成数据仿真工作,而且有丰富的systam task,可以读取保存文件,非常灵活方便。

Art of writing testbench,完全在于设计者的灵感与创造。