[笔记]ALTERA_PLL_test(QuartusII12.0+ModelsimSE6.6b)

时间:2023-02-13 18:27:22

问题一:QuartusII12.0仿真不能用的原因是没安装补丁,后面将补丁安装上但发现其配套的Modelsim_altera有些库没更新上,也要对Modelsim_altera安装相应的补丁,于是我下载并准备安装,但安装出现路径问题,不管选择哪个都不行,不明白为什么?跟http://zhidao.baidu.com/question/351969129.html这个人说的一样。

 

问题二:工具调用问题:采用QuartusII12.0调用ModelsimSE6.6b需要做到以下几点:

首先在QuartusII12.0中将ArriaV所需的库都编译到ModelsimSE6.6b中,方法一:Tool-->Launch Simulation Library Compiler(目录需要设置到ModelsimSE6.6b安装目录下的Win32,命名A)。然后设置Tool-->Options-->EDA Tool Options-->选择Modelsim所在目录A。最后设置Assignments-->Settings-->EDA Tool Settings-->Simulation-->Tool name(Modelsim),两个More Settings-->Location of user compiled simulation library(设成目录A),到这边QuartusII就可以自动调用ModelsimSE6.6b进行仿真。其中RTL级仿真,门级仿真等。也有方法二:就是所有这些全部在ModelsimSE6.6中做好。

问题三:对QuartusII中顶层文件top进行写激励文件tb,当在激励文件中除了调用top模块还调用了others模块,那么在从QuartusII中调用Modelsim进行仿真时,Modelsim提示并没有找到others模块,而top模块在顶层已经编译了,所以不需要再编译。

答案是在设置和添加激励文件时,将所需的others模块添加进来(Assignments-->Settings-->EDA Tool Settings-->Simulation-->Compile test bench)。

1、Altera_PLL的参数设置具体如下所示:

[笔记]ALTERA_PLL_test(QuartusII12.0+ModelsimSE6.6b)

2、当Testbench中时钟频率设为T=38;//1/38ns=26.316MHZ时,仿真波形如下所示:

 [笔记]ALTERA_PLL_test(QuartusII12.0+ModelsimSE6.6b)

 由这两个波形可知PLL的输出是错误,locked锁存位出错,outclk_0时钟输出也出错且有限。

3、在Ronnie的帮助下,他说Testbench所设的时钟频率必须与PLL输入时钟一致才能输出正确。其实我也想一致,结果却错在自己一直认为T只能为偶整数,后来他说你就将T设成27MHZ试下看看结果再说,然后我就命T=37.037;//1/37.037ns=27MHZ,结果奇迹就真的出现了,原来很多没必要的思想都是自己在限定着自己前进,需要勇敢地屏除并纠正。正确的仿真波形如下所示:

[笔记]ALTERA_PLL_test(QuartusII12.0+ModelsimSE6.6b)

由图可知T=37037ps,outclk_0=1924ps与PLL的参数设置一致,Good!

[笔记]ALTERA_PLL_test(QuartusII12.0+ModelsimSE6.6b)