设计学习笔记

来源:互联网 发布:广告页设计软件 编辑:程序博客网 时间:2024/06/05 23:48

(此笔记是设计学习过程中的笔记,其中不免有些解述不全面甚至不正确的地方,发到网上只给同在学习中的人们当遇到类似问题时给一点提示)

对于modelsim的设计已经可以做到对QuartusII的Lpm的仿真以及简单的testbench的编写,现在把设计学习过程中的一点体会记录下来。

对于testbench的编写,默认情况下QII的编写规则与modelsim不同,比如我在QII中写这样的实例:

module testbench();

。。。

Endmodule

这个在QII中是报错的,但这样的设计在modelsim中是允许的。

在编写testbench时,如果有时钟信号在initial块(例10单位clock:forever #5 clock = ~clock ;’)中那么应该先要对时钟初始化一个0,或者1,否则由于默认是高阻,这个信号在仿真时一直高阻的。还有如果你的时钟信号已经定义在了一个initial块中,由于这里有了一个forever,在这个块中就一直停留在这里,以下的信号转变就得不到执行。这时可以把其他的信号写入另一个initial块中。至于DUT(待测试元件)中的input在testbench中定义为reg,output定义为wire,inout等等的信息可以到网上搜索下,就不赘言了。

Modelsim对于Lpm的仿真 

这个学习时在网上找了很多的资料,看起来有一点繁琐,但总的来说都很正确,我在刚开始做这个仿真时,由于没有什么深刻的理解,对于modelsim中的库的应用不是很好,按照网上资料给出的方法做库的连接,对于资料中的实例能做出结果,自己设计时就总是出错,这个最多的情况就是编译可以通过,但仿真时输出就是一条蓝线(Z态),上网查后发现也有人已经遇到了同样的问题,有人已经得到了解决,了解到就是库的调用没有做好。但怎么检查也还是出错,后来终于找到了解决方法,就是把altera中的220model.v和altera_mf.v都调进project中一起compiled,编译后就发现在work内出现了一大列文件这些都是可能会调用的lpm,这次再仿真输出就正确了。

附:modelsim仿真QII的bsf文件方法。

在QII中调用设计需要的lpm等模块在bsf文件中加入input and ouput端口,设计完后全编译,编译成功后在file---creat/updata---creat hdl file for current file,之后就可以在工程目录下找到一个bsf文件的.v文件了,拿这个文件就可以到modelsim中仿真了。


2010年8月12日 17:39:36
0 0