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

FPGA编程这些常见的错误终于会解决了(一)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-4-18 14:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
# y+ q0 ^9 l; u+ ^  p# |
FPGA常见的警告以及处理方法
1.Found  clock-sensitive        change during        active        clock        edge at        time      
       on register ""
4 D( |7 v/ O% x原因: vector source file        中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。而时钟敏感信号是不能在时钟边沿变化的。其后果为导致结果不正确。$ a3 c8 K" h, q( d+ g2 h
措施:编辑        vector source file

# O7 a1 @& [% m1 Y2 `9 L% f
2.Verilog        HDLassignment        warning        at  :        truncated        value        with        size         to match size of target () j; U2 N( [$ P7 A% o
原因 : 在 HDL设计中对目标的位数进行了设定        , 如:reg[4:0]        a; 而默认为        32 位, 将位数裁定到合适的大小+ @2 ^. @, w: I% V
措施 : 如果结果正确        , 无须加以修正        , 如果不想看到这个警告        , 可以改变设定的位数

# k6 X% g4 \* J
3.All reachable assignments to data_out(10) assign '0', register removed by optimization
" L4 p& N7 H4 G$ x, `原因 : 经过综合器优化后,输出端口已经不起作用了

# R4 v4 L, P9 w
4.Following        9 pins        have nothing,        GND, or        VCCdriving        datain        port --        changes to this connectivity may change fitting results
! A% T% H; M9 u+ L5 h+ C3 f原因 : 第 9 脚,空或接地或接上了电源0 E  y8 e7 f1 f6 d4 l" }. W1 S
措施 : 有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。如果你的设计中这些端口就是这样用的,那便可以不理会这些        warning
. C: r. E, ]$ t7 ~' {  l8 A+ F% R
5.Found pins functioning as undefined clocks and/or memory enables
+ I# W. _& K4 p# P% U& L! I3 U原因 : 是你作为时钟的        PIN 没有约束信息。可以对相应的        PIN 做一下设定就行了。主要是指你的某些管脚在电路当中起到了时钟管脚的作用,比如        flip-flop        的  clk  管脚,而此管脚没有时钟约束,因此        QuartusII        把
“clk ”作为未定义的时钟。$ q: I4 X1 b5 O  r* {
措施 : 如果  clk        不是时钟,可以加“  not clock        ”的约束;如果是,可以在        clock setting/ q$ R! J% f; G% ^7 N* Z
当中加入;在某些对时钟要求不很高的情况下,可以忽略此警告或在这里修改:Assignments>Timing analysis settings...>Individual clocks...>...$ s2 s/ U- o  T- S2 t& S
注 意 在 Applies to node        中只用选择时钟引脚一项即可,        required fmax        一般比所要求频率高 5%即可,无须太紧或太松。

+ l) }6 A' |4 _' Q' Y# [& e9 h
6.Timing characteristics of device EPM570T144C5 are preliminary+ s' Y  K7 W0 W6 _7 L; f# d- [( X+ N
原因 : 因为  MAXII  是比較新的元件在        QuartusII        中的時序並不是正式版的        , 要 等 Service Pack+ t5 r9 w  @1 y, U) L" X) V
措施 : 只影响        Quartus        的 Waveform

+ K# e% q: ~0 Q/ ~, J
7.Warning:        Clock        latency        analysis        for        PLL offsets        is        supported        for        the current        device family, but is not enabled; x1 L7 d' G' d: l4 x9 J! n
措施 : 将  setting        中 的 timing Requirements&Option-->More Timing Setting-->setting-->Enable Clock Latency        中 的 on 改 成 OFF
, ?+ b& |# i4 D
8.Found clock high time violation at 14.8 ns on register "|counter|lpm_counter:count1_rtl_0|dffs[11]"( `5 i8 e/ z2 E1 d+ O* n
原因 : 违反了steup/hold时间,应该是后仿真,  看看波形设置是否和时钟沿符合steup/hold1 `) b8 H5 P; Y8 V/ |
时间: L& _7 x* |& o. L0 y1 t7 P) K
措施 : 在中间加个寄存器可能可以解决问题
% A: q% `$ @6 a! ]: B6 _
9.warning: circuit may not operate.detected 46 non-operational paths clocked by clock clk44 with clock skew larger than data delay
* u% {6 S; \6 i( D原因 : 时钟抖动大于数据延时, 当时钟很快, 而 if 等类的层次过多就会出现这种问题, 但这个问题多是在器件的最高频率中才会出现
+ W1 Y! y4 l) H1 z措施: setting-->timing        Requirements&Options-->Default        required        fmax        改小一些,如改 到 50MHZ

! H* A% H# |- @% t# Y$ k) _
10.Design contains input pin(s) that do not drive logic- h' ^& G1 b5 u
原因 : 输入引脚没有驱动逻辑        ( 驱动其他引脚)        , 所有的输入引脚需要有输入逻辑措施 : 如果这种情况是故意的        , 无须理会  , 如果非故意  , 输入逻辑驱动        .
* H' C% M( `0 f: R
11.Warning :Found clock high time violation at 8.9ns on node 'TEST3.CLK'
% g2 ?/ n- W2 }: i: K原因: FF 中输入的        PLS 的保持时间过短措施:在        FF 中设置较高的时钟频率
6 d" o9 D9 M. U2 M! e4 J5 [, [
12.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( g3 Z6 b4 ^; a7 a, n4 f
原因 : 如果你用的        cpld    只有一组全局时钟时,用全局时钟分频产生的另一个时钟在布线中当作信号处理, 不能保证低的时钟歪斜        (SKEW)。会造成在这个时钟上工作的时序电路不可靠, 甚至每次布线产生的问题都不一样。
8 y8 G( `! x, g, ]措施 : 如果用有两组以上全局时钟的        FPGA 芯片,可以把第二个全局时钟作为另一个时钟用,可以解决这个问题。

6 f8 _1 Y! R9 @% \9 T5 \/ Y/ e
13.Critical        Warning:        Timing        requirements        were not  met.  See Report        window for        details.. |* a% u3 A9 ^( z# v0 I3 R( a
原因:时序要求未满足,
" c$ f- |) R* k0 `! g措施:双击        Compilation        Report-->Time        Analyzer-->        红色部分(如        clock        setup:'clk'        等)
( f; ~6 `" }0 g+ }--> 左键单击        list path,        查看  fmax 的  SLACK REPORT再根据提示解决        , 有可能是程序的算法问题或 fmax 设置问题
+ ]1 [5 E' ^: b' k
14.Warning: Can't find signal in vector source file for input pin |whole|clk10m
* w! J# Z0 @& e/ K6 b. p+ c原因:这个时因为你的波形仿真文件(        vector        source        file        )中并没有把所有的输入信号7 f4 l5 T. V3 @; k% t8 y
(input pin)        加进去,对于每一个输入都需要有激励源的

& I& v6 `7 R8 P3 J9 O
15.Can't        achieve        minimum setup        and hold        requirement                along         path(s). See Report window for details.; W1 z2 U/ e5 N! a6 z
原因:时序分析发现一定数量的路径违背了最小的建立和保持时间,与时钟歪斜有关        , 一般是由于多时钟引起的6 l$ v( V: d1 k" `8 ]8 M) a) L
措施:利用        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。

, i8 h# W6 t, q1 g$ u
16: Can't analyze file -- file E://quartusii/*/*.v is missing( k9 u2 a% C* _- s$ u0 ?
原因:试图编译一个不存在的文件,该文件可能被改名或者删除了措施:不管他,没什么影响

! P5 T5 E; c- S* D- D
17.Warning: Can't find signal in vector source file for input pin |whole|clk10m
! j0 p1 k' J) w4 \, v7 K, |原因:因为你的波形仿真文件(        vector        source  file        )中并没有把所有的输入信号        (input
8 o" X/ x5 Q; C2 kpin) 加进去,对于每一个输入都需要有激励源的

; f- e1 [+ r$ E
18.Error:        Can't        name logic        function        scfifo0        of instance        "inst" --        function        has same name as current design file0 \, v9 K- t; |  `6 n7 M
原因:模块的名字和        project        的名字重名了  措施:把两个名字之一改一下,一般改模块的名字
# Y- P" _8 n& t! F
19.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_fifo0
3 G5 ?: ~( q* R3 Y0 V" H原因:模块不是在本项目生成的,而是直接        copy 了别的项目的原理图和源程序而生成的, 而不是用        QUARTUS将文件添加进本项目
; Q  `( p% n' \( l  B7 \; Q' l措施:无须理会,不影响使用

0 \( a  p4 A. p& H
20.Timing characteristics of device are preliminary" R+ @" J6 U) E" a/ V
原因:目前版本的        QuartusII        只对该器件提供初步的时序特征分析
; s0 A* N$ `; d9 P7 j措施: 如果坚持用目前的器件,        无须理会该警告。        关于进一步的时序特征分析会在后续版本的  Quartus        得到完善。

$ Q7 Q4 Y' D9 Y3 t' Q* U
21.Timing        Analysis        does not  support        the  analysis        of  latches        as synchronous        elements for the currently selected device family& h7 J& q- s) ^1 a3 \; o
原因:用        analyze_latches_as_synchronous_elements setting        可 以 让 Quaruts II        来分析同步锁存,但目前的器件不支持这个特性* S3 }. t8 M+ B* q* e$ w, N
措施: 无须理会。 时序分析可能将锁存器分析成回路。        但并不一定分析正确。        其后果可能会导致显示提醒用户:改变设计来消除锁存器        , 但实际其实无关紧要

1 g2 |. T1 h6 a0 @& P+ Z9 k" F6 `
22.Warning:Found xx output pins without output pin load capacitance assignment4 f* }3 B& Q  M
原因:没有给输出管教指定负载电容
" Z3 X, s: _7 v' K- s  `2 F2 v# m# t! \解决方法:该功能用于估算        TCO和功耗,可以不理会,也可以在        Assignment        Editor        中为相应的输出管脚指定负载电容,以消除警告
$ {6 P( {# X+ m9 p& e2 _% l7 ~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-1 05:58 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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