zoukankan      html  css  js  c++  java
  • Quartus II 问题集锦【原创】

    QUARTUS II版本:9.0

    FPGA型号:EP2C8Q208

    配置芯片:EPCS4

    SDRAM型号: HY57V28820HCT-H

    FLASH型号 :TE28F320J3

    之前已经接触QUARTUS II比较长的时间了,也遇到过不少问题,有些比较简单解决后就忘了,现在把能记得起来列在前面几个。后面的是自己后续遇到的问题的集锦...

    1.多模块或多进程驱动同一信号http://www.cnblogs.com/Efronc

    Error (10028): Can't resolve multiple constant drivers for net "FLASH_A[7]" at led.v(32)

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

    2.多功能管脚的设置http://www.cnblogs.com/Efronc

        在用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。

        这是由于PIN_108是一个多功能管脚,还有一个功能是nCEO,也是默认的功能。如果要用它当普通IO,需要提前设置一下:assignments>device>device and pin options>dual-purpose pins里面把nCEO设置成use as regular i/o就可以了。

     

    3.CLK 连接http://www.cnblogs.com/Efronc

        SOPC综合后资源占用LE只有几百,警告数量数百。http://www.cnblogs.com/Efronc

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

    4.负载电容(load capacitance)警告http://www.cnblogs.com/Efronc

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

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

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

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

    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.行波时钟警告http://www.cnblogs.com/Efronc

        分频计数作为了另外一个电路的时钟,这种用法叫做行波时钟。在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.仿真时存储器初始化http://www.cnblogs.com/Efronc

        在使用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 <mif_file> <rif_file>

      打开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

      这样就完成了数据导入。

  • 相关阅读:
    微信小程序购物商城系统开发系列-工具篇
    CSS实现导航条Tab切换的三种方法
    最详细win7下手动搭建PHP环境:apache2.4.23+php7.0.11
    读书笔记:《HTML5开发手册》Web表单
    jQuery可拖拽3D万花筒旋转特效
    框架基础:关于ajax设计方案(三)---集成ajax上传技术
    框架基础:ajax设计方案(二)---集成轮询技术
    框架基础:ajax设计方案(一)---集成核心请求
    Apache+PHP+MySQL
    自学 PHP,如何不走弯路?
  • 原文地址:https://www.cnblogs.com/Efronc/p/1773187.html
Copyright © 2011-2022 走看看