至今还没有弄明白为什么要用ModelSim,因为看波形Quartus II自带的工具就可以了啊。
我刚刚接触modelsim,我想大多数菜鸟跟我一样,看过如何使用ModelSim的介绍,说句实话,那些介绍写的都太过简单,仿佛大家都不屑写上一些比较“弱智”的步骤,恰恰就是这些看似累赘的步走,难为我好久。
教程上都写道,modelsim的简单使用方法如下:建立库- 影射库到物理目录 - 编译代码 - 启动仿真。首先建立库就叫我头晕。库的概念用在这儿实在不合适,把我吓坏了,也就没心思看下一步了。在我看来,教程应该这么写:
<1> 建立一个目录modelsimStudy。用任何文本编辑器编辑一个简单的例子程序,比如计数器counter.vhd。有clk、ena、reset输入,cnt作为输出。
<2> 打开Modelsim,首先create project,工程名随意取了,比如命名为test,目录设在modelsimStudy下,默认的库work不变(这样就不用管什么建立库之类的东西了)。然后add existing file,把counter.vhd加入当前工程。
<3> 编译这个文件,通过之后,work下面会出现counter这个实体。然后选中它,右键,simulate(左键双击也可)。
<4> ModelSim有很多窗口(新手就怕这个),一开始只要选择view下面的 objects 和 wave窗口就行了。旧版的signal窗口在6.0的版本改名为Objects(这个我是摸索了好久才发现的,是不是太笨了?)。wave窗口刚打开时是空的,需要在objects窗口的 add -> wave -> signals in region。这时,wave上就有clk/ ena / reset等信号了。
<5> 我们给clk来个输入激励,在object窗口中选中clk,右键选clock,给它定义个时钟。
<6>运行Run。嘿嘿。有波形出来了吧。
3、2中的例子绝对适合刚刚接触modelsim的新手,有了这个体会之后,结合书上的教程,理解库以及modelsim的各个窗口用途就比较容易了。然后再尝试结合Quartus使用。
4、Quartus中,选中modelsim作为仿真工具之后,在Quartus目录下会生成一个simulation文件夹,下面有个modelsim。完成编译之后,在这个目录下面生成了供modelsim使用的库和时序文件。如果选中了编译之后自动调用modelsim,我的做法是用Quartus编辑波形文件,然后导出作为激励文件。或者,自行打开modelsim,然后选择改变目录,把目录指向Quartus生成的modelsim目录。新建工程,把Quartus下的vhdl以及激励文件添加进来,进行仿真。
5、Modelsim仿真cyclone PLL的问题。我也遇到过,出现什么fatal error。解决方法:** Simulation property -> Design Tab -> Resolution 应该设为 pssimulation -> start simulation -> Design , 那个resolution非常不显眼,认真找,它的默认值是default,改为ps就行了。
ps: Quartus中把不用的管脚设成高阻态: assignment -> device -> pin&device里面设置。