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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
2 ~, ]# w% T; K; U  s
FPGA常见的警告以及处理方法
1.Found  clock-sensitive        change during        active        clock        edge at        time      
       on register ""* N- D) B1 v- {$ T6 ~  I& U
原因: vector source file        中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。而时钟敏感信号是不能在时钟边沿变化的。其后果为导致结果不正确。
6 [3 l5 @0 W0 Z, m! _: y措施:编辑        vector source file
. {0 a& H& u8 R3 Z" }; e0 P; f
2.Verilog        HDLassignment        warning        at  :        truncated        value        with        size         to match size of target (
7 ]5 k; V) X' ]+ V6 s' c原因 : 在 HDL设计中对目标的位数进行了设定        , 如:reg[4:0]        a; 而默认为        32 位, 将位数裁定到合适的大小, z* f7 a( w0 @
措施 : 如果结果正确        , 无须加以修正        , 如果不想看到这个警告        , 可以改变设定的位数

! B9 w! y% O" ?) t
3.All reachable assignments to data_out(10) assign '0', register removed by optimization
0 o1 J$ u; C4 ^7 [原因 : 经过综合器优化后,输出端口已经不起作用了

4 Q8 r* |+ h! U' p; Q. T3 F+ W6 |3 X
4.Following        9 pins        have nothing,        GND, or        VCCdriving        datain        port --        changes to this connectivity may change fitting results
% |- n( Q3 P2 b. F2 s& c  V9 @原因 : 第 9 脚,空或接地或接上了电源
7 C1 X" l% l0 x措施 : 有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。如果你的设计中这些端口就是这样用的,那便可以不理会这些        warning
( ?+ }: [# w$ G0 Q0 n3 g
5.Found pins functioning as undefined clocks and/or memory enables" a. `; i! O. c4 K4 L1 ?$ F- _
原因 : 是你作为时钟的        PIN 没有约束信息。可以对相应的        PIN 做一下设定就行了。主要是指你的某些管脚在电路当中起到了时钟管脚的作用,比如        flip-flop        的  clk  管脚,而此管脚没有时钟约束,因此        QuartusII        把
“clk ”作为未定义的时钟。
; h0 c* f4 I' C, x3 G9 f措施 : 如果  clk        不是时钟,可以加“  not clock        ”的约束;如果是,可以在        clock setting
2 n0 S( Z2 \) E& H$ J当中加入;在某些对时钟要求不很高的情况下,可以忽略此警告或在这里修改:Assignments>Timing analysis settings...>Individual clocks...>...0 M' o+ ?" j' j' v' g3 f* X, t: H7 {
注 意 在 Applies to node        中只用选择时钟引脚一项即可,        required fmax        一般比所要求频率高 5%即可,无须太紧或太松。

- M0 ?. Y$ Y* F, Q8 x4 p
6.Timing characteristics of device EPM570T144C5 are preliminary  Q! r  ?0 a1 V2 R, o
原因 : 因为  MAXII  是比較新的元件在        QuartusII        中的時序並不是正式版的        , 要 等 Service Pack6 {! E7 G* n* _' i
措施 : 只影响        Quartus        的 Waveform
2 Y/ T& N% W9 N
7.Warning:        Clock        latency        analysis        for        PLL offsets        is        supported        for        the current        device family, but is not enabled
" m4 @& X# C' c; d+ X7 u- m! c2 d措施 : 将  setting        中 的 timing Requirements&Option-->More Timing Setting-->setting-->Enable Clock Latency        中 的 on 改 成 OFF

" z0 Q4 `! b- p4 o) r
8.Found clock high time violation at 14.8 ns on register "|counter|lpm_counter:count1_rtl_0|dffs[11]": j' y/ E0 p* I4 _& s+ n. ~2 R
原因 : 违反了steup/hold时间,应该是后仿真,  看看波形设置是否和时钟沿符合steup/hold
% b6 `5 x) x3 n6 F* W- u* l+ U0 ^6 H时间! D( T: h* {2 l5 ~1 f
措施 : 在中间加个寄存器可能可以解决问题

. ~) n9 @5 f2 I* k0 E& S
9.warning: circuit may not operate.detected 46 non-operational paths clocked by clock clk44 with clock skew larger than data delay# y/ U) _6 e, O2 [/ f
原因 : 时钟抖动大于数据延时, 当时钟很快, 而 if 等类的层次过多就会出现这种问题, 但这个问题多是在器件的最高频率中才会出现1 ~4 P7 C% X# q9 T" g5 D7 O
措施: setting-->timing        Requirements&Options-->Default        required        fmax        改小一些,如改 到 50MHZ
0 H/ y" U& p  f# ]- x- j- v  ^; I$ W
10.Design contains input pin(s) that do not drive logic+ B) B% [# W$ y3 ^
原因 : 输入引脚没有驱动逻辑        ( 驱动其他引脚)        , 所有的输入引脚需要有输入逻辑措施 : 如果这种情况是故意的        , 无须理会  , 如果非故意  , 输入逻辑驱动        .

' F& F1 e7 u' F5 e9 ^9 k
11.Warning :Found clock high time violation at 8.9ns on node 'TEST3.CLK'
" _8 H" q7 A4 p$ Q$ R: m1 U原因: FF 中输入的        PLS 的保持时间过短措施:在        FF 中设置较高的时钟频率
* n3 P7 o- j3 Q2 {5 J' V
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/ {9 ]* z* j# j" i1 `# J9 u
原因 : 如果你用的        cpld    只有一组全局时钟时,用全局时钟分频产生的另一个时钟在布线中当作信号处理, 不能保证低的时钟歪斜        (SKEW)。会造成在这个时钟上工作的时序电路不可靠, 甚至每次布线产生的问题都不一样。
! J3 P6 _8 [  |+ v3 I措施 : 如果用有两组以上全局时钟的        FPGA 芯片,可以把第二个全局时钟作为另一个时钟用,可以解决这个问题。

# s) K# H4 J5 R1 u8 N! u
13.Critical        Warning:        Timing        requirements        were not  met.  See Report        window for        details.
. b/ w1 G( @  Q, r原因:时序要求未满足,+ {6 W1 ?& j5 K5 ~  d
措施:双击        Compilation        Report-->Time        Analyzer-->        红色部分(如        clock        setup:'clk'        等)  _( ^- j) V8 q& P6 n7 T
--> 左键单击        list path,        查看  fmax 的  SLACK REPORT再根据提示解决        , 有可能是程序的算法问题或 fmax 设置问题
/ G( l$ j9 D( p( r' h. p
14.Warning: Can't find signal in vector source file for input pin |whole|clk10m
( {! x) ]: e) G" M1 z3 A" _( [原因:这个时因为你的波形仿真文件(        vector        source        file        )中并没有把所有的输入信号
% @( t  J7 @) u1 P% v(input pin)        加进去,对于每一个输入都需要有激励源的

' L1 ^! G8 R& R* X3 y) S
15.Can't        achieve        minimum setup        and hold        requirement                along         path(s). See Report window for details.. Y: V" n* e2 y- ^! e
原因:时序分析发现一定数量的路径违背了最小的建立和保持时间,与时钟歪斜有关        , 一般是由于多时钟引起的: R( N# v- x# q) ~6 H& N, J" @
措施:利用        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。

% w2 Y  f1 e& X8 |! q
16: Can't analyze file -- file E://quartusii/*/*.v is missing) T- F% ^% J  E& ^- w9 a
原因:试图编译一个不存在的文件,该文件可能被改名或者删除了措施:不管他,没什么影响

* @' E2 R5 E, ~5 `0 V4 n5 C) S4 y
17.Warning: Can't find signal in vector source file for input pin |whole|clk10m
* L3 |5 }! g9 T) T( [  ^原因:因为你的波形仿真文件(        vector        source  file        )中并没有把所有的输入信号        (input# H8 M3 h1 Z" ?# k7 B9 V
pin) 加进去,对于每一个输入都需要有激励源的
/ V$ W- a/ y3 b( k0 z. O8 _
18.Error:        Can't        name logic        function        scfifo0        of instance        "inst" --        function        has same name as current design file
, B7 `  `: `1 {原因:模块的名字和        project        的名字重名了  措施:把两个名字之一改一下,一般改模块的名字

$ i( p% S) ]" m3 c4 ^6 d
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
. G; Q# j6 S4 a6 L原因:模块不是在本项目生成的,而是直接        copy 了别的项目的原理图和源程序而生成的, 而不是用        QUARTUS将文件添加进本项目
" U- @3 L+ [. P- w  V措施:无须理会,不影响使用

0 |( H; X" m* x+ R% L/ O
20.Timing characteristics of device are preliminary
( O; ?! f7 G3 x# N. G& P原因:目前版本的        QuartusII        只对该器件提供初步的时序特征分析
7 C/ k4 `1 A. z) m6 W& y3 Q措施: 如果坚持用目前的器件,        无须理会该警告。        关于进一步的时序特征分析会在后续版本的  Quartus        得到完善。

8 [2 O: d* C: R7 X" I' t8 i+ n; U
21.Timing        Analysis        does not  support        the  analysis        of  latches        as synchronous        elements for the currently selected device family
6 c3 r& w; x0 ~9 i' L/ A原因:用        analyze_latches_as_synchronous_elements setting        可 以 让 Quaruts II        来分析同步锁存,但目前的器件不支持这个特性, T) B) R6 T: E# U
措施: 无须理会。 时序分析可能将锁存器分析成回路。        但并不一定分析正确。        其后果可能会导致显示提醒用户:改变设计来消除锁存器        , 但实际其实无关紧要
9 \, Y$ k: O0 {7 I2 [
22.Warning:Found xx output pins without output pin load capacitance assignment# \5 B1 I8 v3 P, Q1 w% D
原因:没有给输出管教指定负载电容
2 ?3 i. ?. L8 }; ]; E+ Z, M3 Q解决方法:该功能用于估算        TCO和功耗,可以不理会,也可以在        Assignment        Editor        中为相应的输出管脚指定负载电容,以消除警告
: W- t0 T/ p/ c( X1 K
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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