找回密码
 注册
关于网站域名变更的通知
查看: 695|回复: 1
打印 上一主题 下一主题

QuartusII常见警告及错误处理

[复制链接]
  • TA的每日心情
    开心
    2019-11-20 15:00
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-1-8 10:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    QuartusII常见警告及错误处理

    8 h' T* {: J9 @" n6 I
    在QuartusII下进行编译和仿真的时候,会出现一堆warning,有的可以忽略,有的却需要注意,虽然按F1可以了解关于该警告的帮助,但有时候帮助解释的仍然不清楚,大家群策群力,把自己知道和了解的一些关于警告的问题都说出来讨论一下,免得后来的人走弯路.1 {' ?. [  ~7 h! A, y/ d7 i
    下面是我收集整理的一些,有些是自己的经验,有些是网友的,希望能给大家一点帮助,如有不对的地方,请指正,如果觉得好,请版主给点威望吧,谢谢: V+ B+ R& l  ~* a! A

    " a2 k  M8 Z4 {0 p% Y1.Found clock-sensitive change during active clock edge at time <time> on register "<name>"1 T$ _" a2 S) Y: ~% m) f
    原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。而时钟敏感信号是, Z  k+ z* h( k" ]: l% g
    不能在时钟边沿变化的。其后果为导致结果不正确。
    * S! e' A5 m" `0 L$ ]措施:编辑vector source file7 b+ w' x) [% l( r+ ~
    2.Verilog HDL assignment warning at <location>: truncated value with size <number> to match size of target (<number>
    . x5 Q" r9 L+ M原因:在HDL设计中对目标的位数进行了设定,如:reg[4:0] a;而默认为32位,将位数裁定到合适的大小: N% U$ Y) f/ I$ |8 {$ T
    措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数
    1 @- G7 E7 e! J& B  q/ g3.All reachable assignments to data_out(10) assign '0', register removed by optimization2 p  y2 {( I! l' D+ d+ Q8 \
    原因:经过综合器优化后,输出端口已经不起作用了7 ^, r1 }( K7 ?. P3 s
    4.Following 9 pins have nothing, GND, or VCC driving datain port -- changes to this connectivity may change fitting results
    4 R( e! @# h/ p0 W- d0 ]$ J6 q. H$ H3 k原因:第9脚,空或接地或接上了电源+ F8 A; v1 p  E
    措施:有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。如果你的设计中这些端口就是这样用的,那便可以不理会这些warning
    " X5 y( `' r7 h( ^2 j5.Found pins functioning as undefined clocks and/or memory enables
    1 e! D  O$ n6 l9 |; T原因:是你作为时钟的PIN没有约束信息。可以对相应的PIN做一下设定就行了。主要是指你的某些管脚在电路当中起到了时钟管脚的 4 E0 o9 d" f. Y- i2 t2 o$ k
    作用,比如flip-flop的clk管脚,而此管脚没有时钟约束,因此QuartusII把“clk”作为未定义的时钟。
    & r* N% L$ D/ R; _措施:如果clk不是时钟,可以加“not clock”的约束;如果是,可以在clock setting当中加入;在某些对时钟要求不很高的情况下,可以忽略此警告或在这里修改:Assignments>Timing analysis settings...>Individual clocks...>...
    3 t$ p! y/ n1 c! \" @" u注意在Applies to node中只用选择时钟引脚一项即可,required fmax一般比所要求频率高5%即可,无须太紧或太松。
    , |! g5 C" d. q+ X8 Y9 V- i3 D6.Timing characteristics of device EPM570T144C5 are preliminary# s8 k  n) f" C. E& z  S: y
    原因:因为MAXII 是比較新的元件在 QuartusII 中的時序並不是正式版的,要等 Service Pack* E/ U/ A" d4 u% M- ]2 R0 U
    措施:只影响 Quartus 的 Waveform; T1 m' u0 s6 t2 `+ d
    7.Warning: Clock latency analysis for PLL offsets is supported for the current device family, but is not enabled& I1 u- y% u, j# L
    措施:将setting中的timing Requirements&Option-->More Timing Setting-->setting-->Enable Clock Latency中的on改成OFF
    2 _$ z+ S9 o- ^- p/ |; ^- a6 S- t* m# ?6 W- H- n, s
    8.Found clock high time violation at 14.8 ns on register "|counter|lpm_counter:count1_rtl_0|dffs[11]"& T. J8 X- T$ R$ k
    原因:违反了steup/hold时间,应该是后仿真,看看波形设置是否和时钟沿符合steup/hold时间
    * x/ l4 U" J8 v/ @& g措施:在中间加个寄存器可能可以解决问题! @. p; m- b9 Z" C8 T# }% C+ l, G
    9.warning: circuit may not operate.detected 46 non-operational paths clocked by clock clk44 with clock skew larger than data delay
    1 e: i$ s. N+ g0 k5 T8 t' ]原因:时钟抖动大于数据延时,当时钟很快,而if等类的层次过多就会出现这种问题,但这个问题多是在器件的最高频率中才会出现
      s$ T0 C6 L0 G$ `& e4 L( p措施:setting-->timing Requirements&Options-->Default required fmax 改小一些,如改到50MHZ
    $ E6 t; q& G! p& c+ f% E& d10.Design contains <number> input pin(s) that do not drive logic) \3 P6 Q$ V# a& |" ^0 @% L5 w" Q
    原因:输入引脚没有驱动逻辑(驱动其他引脚),所有的输入引脚需要有输入逻辑, h2 l' e* b+ i2 m! Q' j* B
    措施:如果这种情况是故意的,无须理会,如果非故意,输入逻辑驱动./ ]0 j$ M( F' r9 T
    11.Warning:Found clock high time violation at 8.9ns on node 'TEST3.CLK'( C  z" B. O- N* P" h
    原因:FF中输入的PLS的保持时间过短$ @/ u6 U; x' e- k% V9 _* Q! c# l
    措施:在FF中设置较高的时钟频率
    4 ^8 Q9 v: S2 H+ P. D! a12.Warning: Found 10 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- J' ^1 F0 x! m/ q' q
    原因:如果你用的 cpld 只有一组全局时钟时,用全局时钟分频产生的另一个时钟在布线中当作信号处理,不能保证低的时钟歪斜(SKEW)。会造成在这个时钟上工作的时序电路不可靠,甚至每次布线产生的问题都不一样。
    ! ~# O6 ^( y: \+ a7 [9 h& r3 _措施:如果用有两组以上全局时钟的 芯片,可以把第二个全局时钟作为另一个时钟用,可以解决这个问题。FPGA
    - a/ l$ n, ^( O* n13.Critical Warning: Timing requirements were not met. See Report window for details.
    % q3 g. z) x; R7 [- b: N8 a. u原因:时序要求未满足,9 e) Y  q' ?' ^% s0 A; H0 J
    措施:双击Compilation Report-->Time Analyzer-->红色部分(如clock setup:'clk'等)-->左键单击list path,查看fmax的SLACK REPORT再根据提示解决,有可能是程序的算法问题或fmax设置问题9 T" o# o! J3 ~0 W, d
    14.Warning: Can't find signal in vector source file for input pin |whole|clk10m
    ! {; _* C7 Y+ l% y. I原因:这个时因为你的波形仿真文件( vector source file )中并没有把所有的输入信号(input pin)加进去, 对于每一个输入都需要有激励源的
    6 L5 B$ U7 k$ I# r$ q- J15.Can't achieve minimum setup and hold requirement <text> along <number> path(s). See Report window for details.3 c2 j9 l' ~4 F" H* K" G5 `
    原因:时序分析发现一定数量的路径违背了最小的建立和保持时间,与时钟歪斜有关,一般是由于多时钟引起的
    * g; t- U1 u2 J8 s+ \' M措施:利用Compilation Report-->Time Analyzer-->红色部分(如clock hold:'clk'等),在slack中观察是hold time为负值还是setup time 为负值,然后在:Assignment-->Assignment Editor-->To中增加时钟名(from node finder),Assignment Name中增加和多时钟有关的Multicycle 和Multicycle Hold选项,如hold time为负,可使Multicycle hold的值>multicycle,如设为2和1。
    * {* {6 T) {. n" H- _+ Q" j& }4 `6 k16: Can't analyze file -- file E://quartusii/*/*.v is missing
    2 n3 U. K; Q3 x原因:试图编译一个不存在的文件,该文件可能被改名或者删除了
    # H* c5 K9 r8 D+ [5 c, B9 `+ r措施:不管他,没什么影响: m+ M1 t+ T! `: H
    17.Warning: Can't find signal in vector source file for input pin |whole|clk10m
    : r5 ^4 r" W# R' o( L原因:因为你的波形仿真文件( vector source file )中并没有把所有的输入信号(input pin)加进去, 对于每一个输入都需要有激励源的: y' o: ?9 E- r# P0 z  A
    18.Error: Can't name logic function scfifo0 of instance "inst" -- function has same name as current design file' S% A4 C- O1 i7 C$ @
    原因:模块的名字和project的名字重名了$ J! Y5 D' I  E1 T" g
    措施:把两个名字之一改一下,一般改模块的名字
    7 ]* s. r6 {* e19.Warning: Using design file lpm_fifo0.v, which is not specified as a design file for the current project, but contains definitions for 1 design units and 1 entities in project Info: Found entity 1: lpm_fifo03 v  {9 d& m6 u$ R% N' n$ A
    原因:模块不是在本项目生成的,而是直接copy了别的项目的原理图和源程序而生成的,而不是用QUARTUS将文件添加进本项目
    , g/ {) `8 t% J* S) S# N  G9 E1 r* a措施:无须理会,不影响使用
    / N, N3 h, S; j' b2 U20.Timing characteristics of device <name> are preliminary
    : A+ M, G1 ]. i4 ?6 d原因:目前版本的QuartusII只对该器件提供初步的时序特征分析2 O0 v$ m; e# ?: A# X9 W
    措施:如果坚持用目前的器件,无须理会该警告。关于进一步的时序特征分析会在后续版本的Quartus得到完善。
    8 W5 P; J+ f; ~4 l  c2 t21.Timing Analysis does not support the analysis of latches as synchronous elements for the currently selected device family
    & c% |4 A: D9 h, w2 f原因:用analyze_latches_as_synchronous_elements setting可以让Quaruts II来分析同步锁存,但目前的器件不支持这个特性
    0 `0 R: ^' N3 m5 U7 I$ U& ^# I措施:无须理会。时序分析可能将锁存器分析成回路。但并不一定分析正确。其后果可能会导致显示提醒用户:改变设计来消除锁存器,但实际其实无关紧要
    ( k7 e  b  w/ p' K22.Warning:Found xx output pins without output pin load capacitance assignment! r3 H8 U/ \1 C6 |' h
    原因:没有给输出管教指定负载电容& Z2 q2 T# d) b, _/ i
    解决方法:该功能用于估算TCO和功耗,可以不理会,也可以在Assignment Editor中为相应的输出管脚指定负载电容,以消除警告
    & `/ G, P( {0 _: d" H. V& u0 g1 Warning: VHDL Process Statement warning at random.vhd(18): signal reset is in statement, but is not in sensitivity list, s& I0 X& X5 d8 X, s. A# _
    8 |9 L3 o+ B1 t/ T  ?+ V; [
    ----没把singal放到process()中/ @% ~7 q4 o+ \1 m- K0 Q
    2 Warning: Found pins ing as undefined clocks and/or memory enables5 Q4 d# o- u& |; b: T
    Info: Assuming node CLK is an undefined clock
    ) a/ `, q! v5 U* C+ y
    " H' G0 W1 [: N+ e8 D-=-----可能是说设计中产生的触发器没有使能端
    6 D( Z1 v, d  K  j; q7 F) ^) r3 Error: VHDL InteRFace Declaration error in clk_gen.vhd(29): interface object "clk_scan" of mode out cannot be read. Change object mode to buffer or inout.
    . B# K  R7 [' \+ ^------信号类型设置不对,out当作buffer来定义
    ) Y# D: \8 ^* h3 |( y# t4 Error: Node instance "clk_gen1" instantiates undefined entity "clk_gen"1 D1 v) Q0 l' c4 O* p" u6 D4 u
    -------引用的例化元件未定义实体--entity "clk_gen"9 O: i. |9 z) s/ P  m8 _
    5 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
    3 l7 {: S% J3 L( N+ ?2 dInfo: Detected ripple clock "clk_gen:clk_gen1|clk_incr" as buffer" p! S" a" w( W* c7 h
    Info: Detected ripple clock "clk_gen:clk_gen1|clk_scan" as buffer
    : q* N9 O% ?# l2 V6 h6 }  o  H6 Warning: VHDL Process Statement warning at ledmux.vhd(15): signal or variable "dataout" may not be assigned a new in every possible path through the Process Statement. Signal or variable "dataout" holds its previous in every path with no new assignment, which may create a combinational loop in the current design.3 o9 J. C7 E1 n% I6 A8 I  m2 d0 h
    7 Warning: VHDL Process Statement warning at divider_10.vhd(17): signal "cnt" is read inside the Process Statement but isn't in the Process Statement's sensivitity list
    9 Y3 \& t/ {: G( Q7 J( n4 F   -----缺少敏感信号7 ?) @& Z8 Y3 r' C7 o! S7 `+ l' R
    8 Warning: No clock transition on "counter_bcd7:counter_counter_clk|q_sig[3]" register
    & U* c7 X+ {5 @: _/ Y9 Warning: Reduced register "counter_bcd7:counter_counter_clk|q_sig[3]" with stuck clock port to stuck GND+ t8 M" ]% Q) B
    10 Warning: Circuit may not operate. Detected 1 non-operational path(s) clocked by clock "class[1]" with clock skew larger than data delay. See Compilation Report for details.* `; [/ E& D5 V: C
    11 Warning: Circuit may not operate. Detected 1 non-operational path(s) clocked by clock "sign" with clock skew larger than data delay. See Compilation Report for details.
    5 `* D- W6 K8 ^+ V+ w3 E3 W12 Error: VHDL error at counter_clk.vhd(90): actual port "class" of mode "in" cannot be associated with formal port "class" of mode "out"
    7 `; E8 n  D9 h' y/ v6 w------两者不能连接起来- Z  W2 f2 N# W4 e5 r- R3 M
    13 Warning: Ignored node in vector source file. Can't find corresponding node name "class_sig[2]" in design.3 @' u$ [" D% X/ c- G& r+ s
    ------没有编写testbench文件,或者没有编辑输入变量的值 testbench里是元件申明和映射$ \' j* n8 A0 D% k
    14 Error: VHDL Binding Indication error at freqdetect_top.vhd(19): port "class" in design entity does not have std_logic_vector type that is specified for the same generic in the associated component
    $ u5 L- d- g" B3 A---在相关的元件里没有当前文件所定义的类型3 O3 F5 j* R. i
    15 Error: VHDL error at tongbu.vhd(16): can't infer register for signal "gate" because signal does not hold its outside clock edge
    5 [3 e& U; b8 M  t2 o8 E16 Warning: Found clock high time violation at 1000.0 ns on register "|fcounter|lpm_counter:temp_rtl_0|dffs[4]"8 ^7 f5 [& ]/ O) W' d
    17 Warning: Compiler packed, optimized or synthesized away node "temp[19]". Ignored vector source file node., d: \2 x: x  c; i$ T5 I4 w
    ---"temp[19]"被优化掉了
    % u0 x+ g0 c- N, \$ @  P7 V3 T18 Warning: Reduced register "gate~reg0" with stuck data_in port to stuck GND3 o8 m2 }1 W# `) e* D+ f
    19 Warning: Design contains 2 input pin(s) that do not drive logic  g0 z6 w& B0 d4 d4 H; n
    Warning: No output dependent on input pin "clk": m- W3 Q+ R5 \: J
    Warning: No output dependent on input pin "sign"
    " p) G- J8 u% F1 V1 A5 Z, G/ \------输出信号与输入信号无关,
    ) y/ H5 w% i& k* _) M. u20 Warning: Found clock high time violation at 16625.0 ns on register "|impulcomp|gate1"6 s4 s7 I1 t+ }8 a8 Z$ n
    21 Error: VHDL error at impulcomp.vhd(19): can't implement clock enable condition specified using binary operator "or". m- `, T9 p2 f- x# a( _
    22 Error: VHDL Association List error at period_counter.vhd(38): actual parameter assigned to formal parameter "alARM", but formal parameter is not declared
    ' y# K$ z9 \2 u2 X6 a4 @7 [! e1 L-------连接表错误,形参"alarm"赋值给实参,形参没定义,可能是形参与实参的位置颠倒了,规定形参在实参之前。/ n+ A/ c$ n5 Y6 v& b9 ~2 n! S
    23 Error: Ignored construct behavier at period_counter.vhd(15) because of previous errors" \& S& ~7 n. Q5 t" G6 G  x$ [
    --------因为前一个错误而导致的错误) }0 ?8 h$ Z* z: ?- {- o
    24 Error: VHDL error at period_counter.vhd(38): type of identifier "alarm" does not agree with its usage as std_logic type
    % u# k# V$ Q7 i' N7 N--------"alarm"的定义类型与使用的类型不一致
    ) P) @. {2 i2 Y) X6 Z25 Error: VHDL error at shift_reg.vhd(24): can't synthesize logic for statement with conditions that test for the edges of multiple clocks  C0 ]5 h& y) c/ y# `; Q
    -------同一进程中含有两个或多个if(edge)条件,(一个进程中之能有一个时钟沿)
    ) V) y9 F0 A( U0 T  `" A26 Error: Can't resolve multiple constant drivers for net "datain_reg[22]" at shift_reg.vhd(19)0 F: y' S' @/ M5 T! F; ]% {, {8 f
    27 can't infer register for signal "num[0]" because signal does not hold its outside clock edge
    $ U+ Y; i9 f3 m/ `28Error: Can't elaborate top-level user hierarchy) Z% d& `: ?2 ?- C+ h$ W
    29 Error: Can't resolve multiple constant drivers for net "cs_in" at led_key.vhd(32)     ----------有两个以上赋值语句,不能确定“cs_in”的值,
    4 y$ |( j; v; A; [7 f# Y2 c30 Warning: Ignored node in vector source file. Can't find corresponding node name "over" in design.
    7 @3 T' r# y6 X: d8 J---------------在源文件中找不到对应的节点“over”。: J7 |$ Q; s4 `2 @
    31 Error: Can't access JTAG chain
    ; g' X" L! i* w     无法找到下载链7 K, N' Q* R/ T6 ]; P5 L' O) a( D
    32 Info: Assuming node "clk" is an undefined clock
    % h4 p) G& T6 n* p8 v/ \* w+ ]5 z- i) r7 ]3 j
    1.Found clock-sensitive change during active clock edge at time * K8 d. g; B( L# r9 ^
    <time> on register "<name>"
    . I1 ?' ~. Z% L7 R原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加
    9 B* m$ |+ z% G! U载等)在时钟的边缘同时变化。而时钟敏感信号是不能在时钟边沿变化的。其后! G: ^( c" a7 z& `& U
    果为导致结果不正确。
    4 n0 \& n: ~' g3 H措施:编辑vector source file
    8 \6 E1 j% K- \1 B" l; r" y9 i; C0 \# b
    2.Verilog HDL assignment warning at <location>: truncated : s* g, q/ {% D+ V0 ~$ _
    with size <number> to match size of target (<number>& [! P) b- E; W/ P" f' ~6 E/ x
    原因:在HDL设计中对目标的位数进行了设定,如:reg[4:0] a;而默认为32位,
    % N  z( P& |5 H" d/ ^! N将位数裁定到合适的大小
    & q4 p1 i) b! K# ~+ y* o措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数
    0 A" B2 U9 |$ `6 u8 a& L
    # H! s4 R1 D6 t; ]9 s3.All reachable assignments to data_out(10) assign '0', register
    6 N, [8 S8 D/ qremoved by optimization 2 r8 G5 O2 u* n: T& E
    原因:经过综合器优化后,输出端口已经不起作用了
    ) u2 f' ^" q/ X
    2 W% A  N' f8 \  B& A) T+ S4.Following 9 pins have nothing, GND, or VCC driving datain port -- & }3 J2 t6 ]* f) Y! V
    changes to this connectivity may change fitting results
      ?, B  s# X3 z; _: g原因:第9脚,空或接地或接上了电源 - V' e! M3 f9 k) g7 z5 R
    措施:有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。2 ]+ m7 I3 l8 a; k
    如果你的设计中这些端口就是这样用的,那便可以不理会这些warning
    ' {: f% I9 u4 @2 Z9 c: m0 O' Q" L6 L0 u% I) I2 O$ H2 ~* F
    5.Found pins ing as undefined clocks and/or memory enables & a- c  _, Q3 o( t! a* Q) |
    原因:是你作为时钟的PIN没有约束信息。可以对相应的PIN做一下设定就行了。8 Q" j2 K7 {3 F6 N( W4 d
    主要是指你的某些管脚在电路当中起到了时钟管脚的作用,比如flip-flop的clk管脚,而此管脚没有时钟约束,因此QuartusII把“clk”作为未定义的时钟。 - @8 }6 i# U7 v! O0 D9 P
    措施:如果clk不是时钟,可以加“not clock”的约束;如果是,可以在clock
    2 v  j. V% _% \4 N5 asetting当中加入;在某些对时钟要求不很高的情况下,可以忽略此警告或在这里修改:Assignments>Timing analysis settings...>Individual clocks...>...( n2 W- }6 M7 Z1 x

    + X1 d: H  Y4 R0 j6.Timing characteristics of device EPM570T144C5 are preliminary ! |3 W! b* U7 |
    原因:因为MAXII 是比較新的元件在 QuartusII 中的時序并不是正式版的,要等 Service Pack $ b) n$ I$ W2 ^" ^$ G' d8 m
    措施:只影响 Quartus 的 Waveform2 F9 a( V4 i: Q
    ) M1 u$ S1 j$ W2 R* P& ~
    7.Warning: Clock latency analysis for PLL offsets is supported for the current device family, but is not enabled
    : r' g6 B8 q9 X5 z( j措施:将setting中的timing Requirements&Option-->More Timing ( Y4 P( M+ |" |3 R( \1 i1 ]
    Setting-->setting-->Enable Clock Latency中的on改成OFF
    ) y" n' p5 b# P3 K) y6 B1 {' v3 `' |
    6 _9 c6 n5 |( g- g% O  f8.Found clock high time violation at 14.8 ns on register 8 s1 W' O: `4 N
    "|counter|lpm_counter:count1_rtl_0|dffs[11]" 7 w1 q; W  a0 @4 ~
    原因:违反了steup/hold时间,应该是后仿真,看看波形设置是否和时钟沿符合steup/hold时间 # ^5 ^% R" f$ j4 u+ V
    措施:在中间加个寄存器可能可以解决问题
    4 f, j% y: @1 Q7 p/ U6 [0 f2 ^
    - o' A& m6 l& l: Q+ r  M' d9.warning: circuit may not operate.detected 46 non-operational
    5 e! I  X* V0 P9 |; hpaths clocked by clock clk44 with clock skew larger than data delay 1 X/ X1 O* g& a
    原因:时钟抖动大于数据延时,当时钟很快,而if等类的层次过多就会出现这种问题,但这个问题多是在器件的最高频率中才会出现 9 A  q# `* ~7 q2 x" @% L
    措施:setting-->timing Requirements&Options-->Default required
    1 U' m6 Q8 D: I2 [  d# @2 Cfmax 改小一些,如改到50MHZ( j  p& ]: J8 E% S. x) v2 J* U6 n6 F

    6 X/ m: q4 Q) x6 o) K1 ?2 _! n8 q10.Design contains <number> input pin(s) that do not drive logic * m& \5 G0 s* c7 a4 u8 f; {4 u
    原因:输入引脚没有驱动逻辑(驱动其他引脚),所有的输入引脚需要有输入逻辑
    ! {6 D% L" E* q% H. u$ ?& c措施:如果这种情况是故意的,无须理会,如果非故意,输入逻辑驱动.1 F( K6 B9 ?! V

    , [, ~/ q5 U" x11.Warning:Found clock high time violation at 8.9ns on node
    3 F' y+ e9 H3 h* v& b- F'TEST3.CLK' 1 Z) _" u( |% m
    原因:FF中输入的PLS的保持时间过短
    7 f' i- d" y2 H, |# g# D8 Y4 {措施:在FF中设置较高的时钟频率
    # J! x' f1 H3 N* U5 k, y8 w% I/ ?& S, r- P6 j
    12.Warning: Found 10 node(s) in clock paths which may be acting as 8 {  A# R" L- M, }5 s& p# S7 {( K$ j5 O
    ripple and/or gated clocks -- node(s) analyzed as buffer(s) resulting in
    ) W6 u7 M  ^2 `1 b. Qclock skew + l4 F9 m5 i' j+ @6 ^1 v3 e6 {
    原因:如果你用的 CPLD 只有一组全局时钟时,用全局时钟分频产生的另一个时钟在布线中当作信号处理,不能保证低的时钟歪斜(SKEW)。会造成在这个时钟上工作的时序电路不可靠,甚至每次布线产生的问题都不一样。 2 P5 {) a, h; s4 D+ E, Z
    措施:如果用有两组以上全局时钟的 FPGA 芯片,可以把第二个全局时钟作为另一个时钟用,可以解决这个问题。4 N' A. p0 i  \& H" m( H0 p

    & B! C  p/ D8 V/ ~13.Critical Warning: Timing requirements were not met. See Report
    & U( m6 [; P, ?, ^window for details. 8 h5 n# |( d7 J$ f8 i
    原因:时序要求未满足, & k! u. C3 i* R4 n
    措施:双击Compilation Report-->Time Analyzer-->红色部分(如clock setup:'clk'等)-->左键单击list path,查看fmax的SLACK REPORT再根据提示解决,有可能是程序的算法问题
    ; I) z3 b/ z! |, D1 L
    ! T/ Y8 `: G8 F1 X14.Can't achieve minimum setup and hold requirement <text> along
    . ^3 z- M5 J4 Z7 p' C<number> path(s). See Report window for details. . C5 x% y, |, a2 A1 x# w' P$ p) P" D
    原因:时序分析发现一定数量的路径违背了最小的建立和保持时间,与时钟歪斜有关,一般是由于多时钟引起的
    3 S: K4 ]) e# q+ Y) G措施:利用Compilation Report-->Time Analyzer-->红色部分(如clock hold:'clk'等),在slack中观察是hold time为负值还是setup time 为负值,4 {% ?. y- `0 C+ S
    然后在:Assignment-->Assignment Editor-->To中增加时钟名(from node finder),Assignment Name中增加和多时钟有关的Multicycle 和Multicycle Hold选项,如hold time为负,可使Multicycle hold的值>multicycle,如设为2和1。
    / t4 s# B  q$ ?" z7 a/ p
    $ m, h3 b& ]- z% {+ o% Y* N15: Can't analyze file -- file E://quartusii/*/*.v is missing
    8 c: `& A& Q! y% i( R原因:试图编译一个不存在的文件,该文件可能被改名或者删除了 " ]9 O+ X8 Y' H
    措施:不管他,没什么影响
    6 g1 h. R0 J% U; G% w6 {( [$ n1 p+ i4 o
    16.Warning: Can't find signal in vector source file for input pin : U& x+ u. J6 \9 R# @% \, K& W5 ^
    |whole|clk10m
    # `5 ^: y! ?, J1 f$ H7 X原因:因为你的波形仿真文件( vector source file )中并没有把所有的输入9 t3 @! Y4 T1 x3 _$ I( ^& r
    信号(input pin)加进去,对于每一个输入都需要有激励源的
    ' L$ K. b. W1 n% P! v. M% m
    - o3 ?' N; S2 N' K2 @. |17.Error: Can't name logic scfifo0 of instance "inst" --
    9 p/ H  j2 B8 e: g* K6 A: ghas same name as current design file
    + I, G3 N" I6 c( |& K! r( w. V8 w
    原因:模块的名字和project的名字重名了 2 m, H. r' Z1 z8 B9 W/ h; j
    措施:把两个名字之一改一下,一般改模块的名字5 v% S- _) T) y3 i
    : {5 _2 m) Z3 w3 S. g7 q$ v% U
    18.Warning: Using design file lpm_fifo0.v, which is not specified as a
    - e/ J0 L7 |) Udesign file for the current project, but contains definitions for 1 design
    7 @, d! `! k6 f7 P$ h2 T3 vunits and 1 entities in project Info: Found entity 1: lpm_fifo0 . C  j+ Y; ^) A( M$ L5 \9 T; o
    原因:模块不是在本项目生成的,而是直接copy了别的项目的原理图和源程序而生成的,而不是用QUARTUS将文件添加进本项目
    " u: I% u3 i5 k4 x2 T( P措施:无须理会,不影响使用
    $ j% ~6 G8 c' s/ V' I: `
    3 k% ~( p- d, q: c( }$ U! B19.Timing characteristics of device <name> are preliminary , Y6 j: n+ u* K' `% \  [# I
    原因:目前版本的QuartusII只对该器件提供初步的时序特征分析
    7 j  V( z2 t( R: m/ [3 W措施:如果坚持用目前的器件,无须理会该警告。关于进一步的时序特征分析会在后续版本的Quartus得到完善。9 n- I  l$ @% _- R
    ) [" s8 o" X- Z% P
    20.Timing Analysis does not support the analysis of latches as * g) O" W6 @9 E
    synchronous elements for the currently selected device family - {4 W6 D( V6 h/ s1 _) K! V- y/ T
    原因:用analyze_latches_as_synchronous_elements setting可以让Quaruts II来分析同步锁存,但目前的器件不支持这个特性 7 i' m% ^0 L( |. I( I
    措施:无须理会。时序分析可能将锁存器分析成回路。但并不一定分析正确。其后果可能会导致显示提醒用户:改变设计来消除锁 存器
    8 O3 y5 D: O# V6 |, R/ A21.Warning:Found xx output pins without output pin load capacitance
    * L2 {* f% K4 T' f! G  D% xassignment(网友:gucheng82提供)
      m9 R, K- Y7 S: I- \) ^原因:没有给输出管教指定负载电容 7 z9 x5 P( X/ h/ k' c% `2 l
    措施:该功能用于估算TCO和功耗,可以不理会,也可以在Assignment Editor中为相应的输出管脚指定负载电容,以消除警告; ^8 P% W. S; ^6 R
    : ~1 U  C/ W: f
    22.Warning: Found 6 node(s) in clock paths which may be acting as $ k( T: q; M+ l) ~6 L! w/ n
    ripple and/or gated clocks -- node(s) analyzed as buffer(s) resulting in / e* }* k9 V# g. S3 c( C
    clock skew. u) a% \3 N" v! x/ b7 p
    原因:使用了行波时钟或门控时钟,把触发器的输出当时钟用就会报行波时钟,将组合逻辑的输出当时钟用就会报门控时钟
    9 \4 d6 a/ D. E! f措施:不要把触发器的输出当时钟,不要将组合逻辑的输出当时钟,如果本身如此设计,则无须理会该警告
    7 V$ a- ^. M& z
    + C8 B: N9 O6 G2 x23.Warning (10268): Verilog HDL information at lcd7106.v(63):
    # x" }1 V. ~! ]% X7 S- N1 B* LAlways Construct contains both blocking and non-blocking
    - a! S; |8 G* j. I; Bassignments
      _% Q( F; @1 t2 w8 {原因: 一个always模块中同时有阻塞和非阻塞的赋值

    # ?4 F+ M6 s9 v& m6 g7 y2 u
    5 ^; E& q. a: J0 h/ e5 I

    该用户从未签到

    2#
    发表于 2020-1-8 18:44 | 只看该作者
    QuartusII常见警告及错误处理这个不错,很实用,谢谢楼主分享。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-20 03:08 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表