modelsim仿真quartus软件IP核错误及解决办法

  本人作为萌新。在这个寒假第一次接触FPGA,并且在仿真的过程中遇到了很多问题,并且通过互联网发现csdn上有许多大佬分享的心得与资料。虽然很多大佬的思路给了我启发,但是实现过程不够细致,导致仿真过程出现了很多难以搜索到的问题,而查找到的答案大多数是分散的,无法解决问题。虽然问题没办法解决,但是看过后仍然对一些问题的处理有对应的解决办法,通过自己不断整合、尝试,找到了部分问题的解决办法。现在FPGA方面的研究较少,资料也较少,所以想把得到的经验发出来和大家分享一下,希望能帮助到大家。

一、可以正常 start simulation时,如果modelsim窗口左边无➕或者输出信号为zzzzz高阻则说明例化失败

 1.未成功例化模块,例如图片,双击u_filter查看所例化的子模块是否为真正包含功能的模块,而不是例化模块的模块例如_inst

2.在调用DDS目录下的IP核时(NCO、FIR等)会生成.v、.vhd、.vo等文件(一般用modelsim仿真都会勾选setup simulation)。在仿真的project中只需要添加.vo、.vhd作为本IP核的例化模块,否则可能会由于编译顺序导致例化错误模块。

 二、无法正常进行start simulation,并且出现

 unit was not found的字样

1.没有在project中加入库文件,例如:altera_mf.v、220model.v等。我的文件具体位置(D:\useful_software\FPGA\quartus\eda\sim_lib\altera_mf.v)。

2.如果是DDS目录下的IP核。加入过多的不需要的IP核生成文件。例如:

 3.部分IP核必须与quartus创建工程生成的qpf在同一文件夹下,子文件夹也不行(受XX原子影响,一开始创建IP核专门用ipcore储存)。

4.例化模块时字母打错了。

三、仿真时输出为0

1.对于ROM核与NCO核来说都需要mif或者hex文件存储数据。如果其他输入信号均正常,输出信号为0,则代表没有读取到存储数据。点开vo文件搜索"init_file"可以发现存储数据自动给根目录地址。如果仿真文件与ip核、工程文件的qpf不在一个目录下,会造成读空的错误。解决办法有:(1)将sin.hex,cos.hex(即使单端输出也需要两个都复制)文件复制到与.mpf一个文件夹中(即仿真工程保存的文件夹)。

 (2)重建仿真工程并且将其与qpf、hex保存在同一个文件夹下(不能是子目录)。

2.检查激励文件的rst_n与IP核的rst_n是不是相同意义。一般情况下rst_n是拉高状态,而部分IP核在rst_n拉低时才正常工作。比如PLL。

四、调用IP核FIR Compiler时,无法导入coef 

  设置IP核参数时发现滤波效果并不能达到预期,所以想使用matlab的filterDesigner生成coef后导入IP核进行系数配置。但导入时出现该问题,通过搜寻资料与参照IP核自动生成的coef发现是文本中数据格式错误。(不得不吐槽,这个IP核对文本格式要求真的严格)

  这是IP核生成的coef。

  这是matlab导出的xilinx的coef。

  可以发现matlab的数据是16进制,而IP核所需的是十进制,并且数据之间的隔开方式也不相同。

  因此我想让matlab自动导出十进制数据以便输入,点击第一个生成C文件。

然后打开该文件。

将其中的数据复制出来,再粘贴到matlab中,用ctrl+f把,全部替换成;。执行之后查看该矩阵的数据,最后将数据直接复制到txt文件即可。

  若成功导入系数可以看到frequnecy response有明显变化。

  

最终解决办法:

(1)ip核就相当于C语言的库函数,都是人写出来的。如果实在没办法调用,就搞清楚其中的原理自己写一个简易的模块实现所需要的功能。

(2)如果身边实在没仪器不能直接上板实验,可以通过signal Tap II在线看波形

//*********************************************分割线*******************************************************//

(由于看过的资料太多了,这里就不给一些参考的网站了)

目前暂时发现了这些问题,后续如果再发现问题并解决会继续更新。有不懂的可以在评论区追问,其他小伙伴也有发现也可以发在评论区。

  • 11
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值