QuartusiiErrorWarning
QuartusII问题总结
使用Quattus会遇到许多Warning,硬件描述语言和C不同,有些Warning是不允许存在的,有些可以忽略。做一下对QuartusII Warnning的总结。
带编号的QuartusII Warnning:
1、Warning (10227): Verilog HDL Port Declaration warning at v_led.v(4): data type declaration for "out" declares packed dimensions but the port declaration declaration does not
原因:输入输出没有定义位宽。
解决方法:对输出定义位宽。有的教材书给的定义是output ...; reg[7:0] ...;这种定义会引起这种警告。所以定义采用output reg[7:0] ...;就不会有这中警告。
2、Warning (10230): Verilog HDL assignment warning at v_led.v(13): truncated value with si
ze 32 to match size of target (8)
原因:Verilog默认的位宽是32位,你在编程是使用的类似counter=counter+1;后边的1没有给出数据宽度就会产生这种错误。
解决方法:对数据进行位宽的定义,例如counter=counter+8'd1;这种警告也可以忽略不管。3、W arning (10240):Verilog HDL Always Construct warning at I2C_V_Config.v(153): inferring latch(es) for variable "LUT_DATA", which holds its previous value in one
or more paths through the always construct
原因:信号被综合成了latch,锁存器的EN和数据输入端口存在一个竞争的问题
解决方法:将计数器从里面抽出来
4、Warning (10030): Net "rom.data_a" at control_store_dp.v(34) has no driver or initial value, using a default initial value '0'
原因:在同一时间对数据进行了赋值。同时对RAM或者ROM进行读写,造成了时序错乱。
解决方法:对程序的读写端口,进行检测,不能让他们在同一时间段出现2个值。
5、.Warning (10268): Verilog HDL information at lcd7106.v(63): Always Construct contains both blocking and non-blocking assignments
原因:一个always模块中同时有阻塞和非阻塞的赋值
解决方法:在模块中的赋值方式只采用一种赋值方式。
6Warning(15400):WYSIWYGprimitive
"DE2_TV:inst1|Sdram_Control_4Port:u6|Sdram_WR_FIFO:write_fifo2|dcfifo:dcfifo_componen t|dcfifo_21m1:auto_generated|altsyncram_1l81:fifo_ram|altsyncram_drg1:altsyncram5|ram_bl ock6a15" has a port clk1 that is stuck at GND
解释:这里是采用的SDRAM的读写方式为1入2出的模式,将fifo2的输入信号给接GND 了
措施:不用理会。
不含编号的Warning
1.Found clock-sensitive change during active clock edge at time on register ""
原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。而时钟敏感信号是不能在时钟边沿变化的。其后果为导致结果不正确。
措施:编辑vector source file
2.Verilog HDL assignment warning at : truncated value with size to match size of target (
原因:在HDL设计中对目标的位数进行了设定,如:reg[4:0] a;而默认为32位,将位数裁定到合适的大小
措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数
3.All reachable assignments to data_out(10) assign '0', register removed by optimization 原因:经过综合器优化后,输出端口已经不起作用了
4.Following 9 pins have nothing, GND, or VCC driving datain port -- changes to this co nnectivity may change fitting results
原因:第9脚,空或接地或接上了电源
措施:有时候定义了输出端口,但输出端直接赋…0?,便会被接地,赋…1?接电源。如果你的设计中这些端口就是这样用的,那便可以不理会这些warning
5.Found pins functioning as undefined clocks and/or memory enables
原因:是你作为时钟的PIN没有约束信息。可以对相应的PIN做一下设定就行了。主要是指你的某些管脚在电路当中起到了时钟管脚的作用,比如flip-flop的clk管脚,而此管脚没有时钟约束,因此QuartusII把“clk”作为未定义的时钟。
措施:如果clk不是时钟,可以加“not clock”的约束;如果是,可以在clock setting当中加入;在某些对时钟要求不很高的情况下,可以忽略此警告或在这里修改:Assignments>Timing analy >>...
6.Timing characteristics of device EPM570T144C5 are preliminary
原因:因为MAXII 是比較新的元件在QuartusII 中的時序并不是正式版的,要等Service Pack 措施:只影响Quartus 的Waveform
7.Warning: Clock latency analysis for PLL offsets is supported for the current device fa mily, but is not enabled
措施:将setting中的timing Requirements&Option-->More Timing Setting-->setting-->Enable Clock Latency中的on改成OFF
8.Found clock high time violation at 14.8 ns on register "|counter|lpm_counter:count1_rtl _0|dffs[11]"
原因:违反了steup/hold时间,应该是后仿真,看看波形设置是否和时钟沿符合steup/hold时间措施:在中间加个寄存器可能可以解决问题
truncated data9.warning: circuit may not operate.detected 46 non-operational paths clocked by clock cl k44 with clock skew larger than data delay
原因:时钟抖动大于数据延时,当时钟很快,而if等类的层次过多就会出现这种问题,但这个问题多是在器件的最高频率中才会出现
措施:setting-->timing Requirements&Options-->Default required fmax 改小一些,如改到5 0MHZ
10.Design contains input pin(s) that do not drive logic
原因:输入引脚没有驱动逻辑(驱动其他引脚),所有的输入引脚需要有输入逻辑
措施:如果这种情况是故意的,无须理会,如果非故意,输入逻辑驱动.
11.Warning:Found clock high time violation at 8.9ns on node 'TEST3.CLK'
原因:FF中输入的PLS的保持时间过短
措施:在FF中设置较高的时钟频率
12.Warning: Found 10 node(s) in clock paths which may be acting as ripple and/or gat ed clocks -- node(s) analyzed as buffer(s) resulting in clock skew
原因:如果你用的CPLD 只有一组全局时钟时,用全局时钟分频产生的另一个时钟在布线中当
作信号处理,不能保证低的时钟歪斜(SKEW)。会造成在这个时钟上工作的时序电路不可靠,甚至每次布线产生的问题都不一样。
措施:如果用有两组以上全局时钟的FPGA 芯片,可以把第二个全局时钟作为另一个时钟用,可以解决这个问题。
13.Critical Warning: Timing requirements were not met. See Report window for details. 原因:时序要求未满足,
措施:双击Compilation Report-->Time Analyzer-->红部分(如clock setup:'clk'等)-->左键单击list path,查看fmax的SLACK REPORT再根据提示解决,有可能是程序的算法问题
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论