Quartus II 9.0版本常见问题集锦

Quartus II 9.0版本常见问题集锦,第1张

  电子发烧友网核心提示:本文是电子发烧友网小编从电子发烧友网论坛——FPGA论坛找到的一篇关于Quartus II 9.0版本常见问题集锦。在此跟大家一起分享。本文原文如下:之前已经接触QUARTUS II比较长的时间了,也遇到过不少问题,有些比较简单解决后就忘了,现在把能记得起来列在前面几个。后面的是自己后续遇到的问题的集锦。

  QUARTUS II版本:9.0

  FPGA型号:EP2C8Q208

  配置芯片:EPCS4

  SDRAM型号: HY57V28820HCT-H

  FLASH型号 :TE28F320J3

  1.多模块或多进程驱动同一信号

  Error (10028): Can‘t resolve mulTIple constant drivers for net “FLASH_A[7]” at led.v(32)

  用Verilog描述电路时,一个信号只能在一个进程中驱动,如果在多个进程中对其驱动的话将产生如上错误。解决方法为可以另加一个信号,通过在另一个进程中监视这个信号做出相应的动作。

  2.多功能管脚的设置

  在用FLASH分配完管脚后编译出现如下错误:

  Error: Can’t place mulTIple pins assigned to pin locaTIon Pin_108 (IOC_X34_Y2_N0)

  Info: Fitter preparaTIon operations ending: elapsed time is 00:00:00

  Error: Can‘t fit design in device

  Error: Quartus II Fitter was unsuccessful. 2 errors, 0 warnings

  Error: Quartus II Full Compilation was unsuccessful. 4 errors, 56 warnings

  原因是不能分配给多功能管脚PIN_108。

  3.CLK 连接

  SOPC综合后资源占用LE只有几百,警告数量数百。

  原因一般是CLK的连接有问题。CPU在没有时钟的情况下形同虚设,在综合时被综合掉,产生大量警告。

  4.负载电容(load capacitance)警告

  Warning: Found 8 output pins without output pin load capacitance assignment

  load capacitance和IO输出结构有关的设置,用来控制波形的上升下降沿的控制,用于阻抗匹配防止产生过冲。低速电路一般不需要考虑。

  消除此警告要在assignment》assignment editor》下指定负载电容。如下图所示:

  Quartus II 9.0版本常见问题集锦,第2张

  以下是对此设置的英文介绍:

  Specifies the capacitive load, in picofarads (pF), on output pins for each I/O standard. Note: These settings affect FPGA pins only. To specify board trace, termination, and capacitive load parameters for use with Advanced I/O Timing, use the Board Trace Model tab. Capacitive loading is ignored if applied to anything other than an output or bidirectional pin, or if Advanced I/O Timing is enabled.

  5.行波时钟警告

  分频计数作为了另外一个电路的时钟,这种用法叫做行波时钟。在FPGA设计中是不推荐的,所以在综合时会产生警告:

  Warning: Found 2 node(s) in clock paths which may be acting as ripple and/or gated clocks -- node(s) analyzed as buffer(s) resulting in clock skew.

  关于FPGA时钟,多说几句。FPGA设计中一般都会使用一个主时钟,也就是晶振的时钟。时序逻辑用到的各种时钟都是通过这个主时钟分频得到的。如果一个时钟驱动的逻辑门比较多的话,为了增加它的驱动能力就需要将它设置成全局时钟。多个时钟在FPGA内部是可以同时工作的,但是使用的时候要注意时序问题。

  关于全局时钟,再多说几句。23,24,27,28是EP2C8Q208的四个全局时钟管脚。他们比一般的IO管脚驱动能力更强,通常建议将时钟信号绑定在这些管脚上,以保证时钟信号的驱动质量.4个管脚是等效的,可以用不同时钟同时驱动他们,这样FPGA内部可以工作在多个时钟域下,不同电路由不同时钟来驱动。

  6.仿真时存储器初始化

  在使用FPGA内部的RAM时,会有一个初始化文件.mif,给RAM加上初始值或当作ROM用,因此仿真时必须把相应数据导入,首先要把mif文件转换为.hex文件或.rif文件。

  在Quartus II环境下,打开mif文件,点Save As,选择Hexadecimal(Intel-Format) File(*.hex),或者点击Export,用Save as type选择RAM Initialization File (*.rif),也可能在命令行下输入:

  mif2rif

  打开ram模块文件,找到lpm_file或init_file,指向刚刚生成的hex文件或rif文件。

  lpm_ram_dp_component.lpm_file = “path”

  使用hex文件时,不需要compiler directives,使用rif文件时,需要加入USE_RIF,如下

  vlog -work alter_mf altera_mf.v +define+USE_RIF=1

  这样就完成了数据导入。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2497549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存