Quartus常见错误分析.docx
《Quartus常见错误分析.docx》由会员分享,可在线阅读,更多相关《Quartus常见错误分析.docx(9页珍藏版)》请在冰豆网上搜索。
Quartus常见错误分析
1.Foundclock-sensitivechangeduringactiveclockedgeattime
原因:
vectorsourcefile中时钟敏感信号(如:
数据,允许端,清零,同步加载等)在时钟的边缘同时变化。
而时钟敏感信号是不能在时钟边沿变化的。
其后果为导致结果不正确。
措施:
编辑vectorsourcefile
2.VerilogHDLassignmentwarningat:
truncatedvaluewithsizetomatchsizeoftarget(
原因:
在HDL设计中对目标的位数进行了设定,如:
reg[4:
0]a;而默认为32位,将位数裁定到合适的大小
措施:
如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数
3.Allreachableassignmentstodata_out(10)assign'0',registerremovedbyoptimization
原因:
经过综合器优化后,输出端口已经不起作用了
4.Following9pinshavenothing,GND,orVCCdrivingdatainport--changestothisconnectivitymaychangefittingresults
原因:
第9脚,空或接地或接上了电源
措施:
有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。
如果你的设计中这些端口就是这样用的,那便可以不理会这些warning
5.Foundpinsfunctioningasundefinedclocksand/ormemoryenables
原因:
是你作为时钟的PIN没有约束信息。
可以对相应的PIN做一下设定就行了。
主要是指你的某些管脚在电路当中起到了时钟管脚的作用,比如flip-flop的clk管脚,而此管脚没有时钟约束,因此QuartusII把“clk”作为未定义的时钟。
措施:
如果clk不是时钟,可以加“notclock”的约束;如果是,可以在clocksetting当中加入;在某些对时钟要求不很高的情况下,可以忽略此警告或在这里修改:
Assignments>Timinganalysissettings...>Individualclocks...>...
注意在Appliestonode中只用选择时钟引脚一项即可,requiredfmax一般比所要求频率高5%即可,无须太紧或太松。
6.TimingcharacteristicsofdeviceEPM570T144C5arepreliminary
原因:
因为MAXII是比較新的元件在QuartusII中的時序並不是正式版的,要等ServicePack
措施:
只影响Quartus的Waveform.
7.Warning:
ClocklatencyanalysisforPLLoffsetsissupportedforthecurrentdevicefamily,butisnotenabled
措施:
将setting中的timingRequirements&Option-->MoreTimingSetting-->setting-->EnableClockLatency中的on改成OFF
8.Foundclockhightimeviolationat14.8nsonregister"|counter|lpm_counter:
count1_rtl_0|dffs[11]"
原因:
违反了steup/hold时间,应该是后仿真,看看波形设置是否和时钟沿符合steup/hold时间
措施:
在中间加个
原因:
模块的名字和project的名字重名了
措施:
把两个名字之一改一下,一般改模块的名字
19.Warning:
Usingdesignfilelpm_fifo0.v,whichisnotspecifiedasadesignfileforthecurrentproject,butcontainsdefinitionsfor1designunitsand1entitiesinprojectInfo:
Foundentity1:
lpm_fifo0
原因:
模块不是在本项目生成的,而是直接copy了别的项目的原理图和源程序而生成的,而不是用QUARTUS将文件添加进本项目
措施:
无须理会,不影响使用
20.Timingcharacteristicsofdevicearepreliminary
原因:
目前版本的QuartusII只对该器件提供初步的时序特征分析
措施:
如果坚持用目前的器件,无须理会该警告。
关于进一步的时序特征分析会在后续版本的Quartus得到完善。
21.TimingAnalysisdoesnotsupporttheanalysisoflatchesassynchronouselementsforthecurrentlyselecteddevicefamily
原因:
用analyze_latches_as_synchronous_elementssetting可以让QuarutsII来分析同步锁存,但目前的器件不支持这个特性
措施:
无须理会。
时序分析可能将锁存器分析成回路。
但并不一定分析正确。
其后果可能会导致显示提醒用户:
改变设计来消除锁存器,但实际其实无关紧要
22.Warning:
Foundxxoutputpinswithoutoutputpinloadcapacitanceassignment
原因:
没有给输出管脚指定负载电容
措施:
该功能用于估算TCO和功耗,可以不理会,也可以在AssignmentEditor中为相应的输出管脚指定负载电容,以消除警告
Quartus常见错误分析Error
Warning:
VHDLProcessStatementwarningatrandom.vhd(18):
signalresetisinstatement,butisnotin
sensitivitylist
----没把singal放到process()中
2Warning:
Foundpinsingasundefinedclocksand/ormemoryenables
Info:
AssumingnodeCLKisanundefinedclock
-=-----可能是说设计中产生的触发器没有使能端
3Error:
VHDLInterfaceDeclarationerrorinclk_gen.vhd(29):
interfaceobject"clk_scan"ofmodeout
cannotberead.Changeobjectmodetobufferorinout.
------信号类型设置不对,out当作buffer来定义
4Error:
Nodeinstance"clk_gen1"instantiatesundefinedentity"clk_gen"
-------引用的例化元件未定义实体--entity"clk_gen"
5Warning:
Found2node(s)inclockpathswhichmaybeactingasrippleand/orgatedclocks--node(s)
analyzedasbuffer(s)resultinginclockskew
Info:
Detectedrippleclock"clk_gen:
clk_gen1|clk_incr"asbuffer
Info:
Detectedrippleclock"clk_gen:
clk_gen1|clk_scan"asbuffer
6Warning:
VHDLProcessStatementwarningatledmux.vhd(15):
signalorvariable"dataout"maynotbe
assignedanewineverypossiblepaththroughtheProcessStatement.Signalorvariable"dataout"holds
itspreviousineverypathwithnonewassignment,whichmaycreateacombinationalloopinthecurrent
design.
7Warning:
VHDLProcessStatementwarningatdivider_10.vhd(17):
signal"cnt"isreadinsidetheProcess
Statementbutisn'tintheProcessStatement'ssensivititylist
-----缺少敏感信号
8Warning:
Noclocktransitionon"counter_bcd7:
counter_counter_clk|q_sig[3]"register
9Warning:
Reducedregister"counter_bcd7:
counter_counter_clk|q_sig[3]"withstuckclockporttostuck
GND
10Warning:
Circuitmaynotoperate.Detected1non-operationalpath(s)clockedbyclock"class[1]"with
clockskewlargerthandatadelay.SeeCompilationReportfordetails.
11Warning:
Circuitmaynotoperate.Detected1non-operationalpath(s)clockedbyclock"sign"with
clockskewlargerthandatadelay.SeeCompilationReportfordetails.
12Error:
VHDLerroratcounter_clk.vhd(90):
actualport"class"ofmode"in"cannotbeassociatedwith
formalport"class"ofmode"out"
------两者不能连接起来
13Warning:
Ignorednodeinvectorsourcefile.Can'tfindcorrespondingnodename"class_sig[2]"in
design.
------没有编写testbench文件,或者没有编辑输入变量的值testbench里是元件申明和映射
14Error:
VHDLBindingIndicationerroratfreqdetect_top.vhd(19):
port"class"indesignentitydoes
nothavestd_logic_vectortypethatisspecifiedforthesamegenericintheassociatedcomponent
---在相关的元件里没有当前文件所定义的类型
15Error:
VHDLerrorattongbu.vhd(16):
can'tinferregisterforsignal"gate"becausesignaldoesnot
holditsoutsideclockedge
16Warning:
Foundclockhightimeviolationat1000.0nsonregister
"|fcounter|lpm_counter:
temp_rtl_0|dffs[4]"
17Warning:
Compilerpacked,optimizedorsynthesizedawaynode"temp[19]".Ignoredvectorsourcefile
node.
---"temp[19]"被优化掉了
18Warning:
Reducedregister"gate~reg0"withstuckdata_inporttostuckGND
19Warning:
Designcontains2inputpin(s)thatdonotdrivelogic
Warning:
Nooutputdependentoninputpin"clk"
Warning:
Nooutputdependentoninputpin"sign"
------输出信号与输入信号无关,
20Warning:
Foundclockhightimeviolationat16625.0nsonregister"|impulcomp|gate1"
21Error:
VHDLerroratimpulcomp.vhd(19):
can'timplementclockenableconditionspecifiedusingbinary
operator"or"
22Error:
VHDLAssociationListerroratperiod_counter.vhd(38):
actualparameterassignedtoformal
parameter"alarm",butformalparameterisnotdeclared
-------连接表错误,形参"alarm"赋值给实参,形参没定义,可能是形参与实参的位置颠倒了,规定形参在实参之前。
23Error:
Ignoredconstructbehavieratperiod_counter.vhd(15)becauseofpreviouserrors
--------因为前一个错误而导致的错误
24Error:
VHDLerroratperiod_counter.vhd(38):
typeofidentifier"alarm"doesnotagreewithitsusage
asstd_logictype
--------"alarm"的定义类型与使用的类型不一致
25Error:
VHDLerroratshift_reg.vhd(24):
can'tsynthesizelogicforstatementwithconditionsthat
testfortheedgesofmultipleclocks
-------同一进程中含有两个或多个if(edge)条件,(一个进程中之能有一个时钟沿)
26Error:
Can'tresolvemultipleconstantdriversfornet"datain_reg[22]"atshift_reg.vhd(19)
27can'tinferregisterforsignal"num[0]"becausesignaldoesnotholditsoutsideclockedge
28Error:
Can'telaboratetop-leveluserhierarchy
29Error:
Can'tresolvemultipleconstantdriversfornet"cs_in"atled_key.vhd(32)----------有两
个以上赋值语句,不能确定“cs_in”的值,
30Warning:
Ignorednodeinvectorsourcefile.Can'tfindcorrespondingnodename"over"indesign.
---------------在源文件中找不到对应的节点“over”。
31Error:
Can'taccessJTAGchain
无法找到下载链
32Info:
Assumingnode"clk"isanundefinedclock
Quartus警告分析Warning
1.Foundclock-sensitivechangeduringactiveclockedgeattime
原因:
vectorsourcefile中时钟敏感信号(如:
数据,允许端,清零,同步加
载等)在时钟的边缘同时变化。
而时钟敏感信号是不能在时钟边沿变化的。
其后
果为导致结果不正确。
措施:
编辑vectorsourcefile
2.VerilogHDLassignmentwarningat:
truncated
withsizetomatchsizeoftarget(
原因:
在HDL设计中对目标的位数进行了设定,如:
reg[4:
0]a;而默认为32位,
将位数裁定到合适的大小
措施:
如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数
3.Allreachableassignmentstodata_out(10)assign'0',register
removedbyoptimization
原因:
经过综合器优化后,输出端口已经不起作用了
4.Following9pinshavenothing,GND,orVCCdrivingdatainport--
changestothisconnectivitymaychangefittingresults
原因:
第9脚,空或接地或接上了电源
措施:
有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。
如果你的设计中这些端口就是这样用的,那便可以不理会这些warning
5.Foundpinsingasundefinedclocksand/ormemoryenables
原因:
是你作为时钟的PIN没有约束信息。
可以对相应的PIN做一下设定就行了。
主要是指你的某些管脚在电路当中起到了时钟管脚的作用,比如flip-flop的clk
管脚,而此管脚没有时钟约束,因此QuartusII把“clk”作为未定义的时钟。
措施:
如果clk不是时钟,可以加“notclock”的约束;如果是,可以在clock
setting当中加入;在某些对时钟要求不很高的情况下,可以忽略此警告或在这
里修改:
Assignments>Timinganalysissettings...>Individual
clocks...>...
6.TimingcharacteristicsofdeviceEPM570T144C5arepreliminary
原因:
因为MAXII是比較新的元件在QuartusII中的時序并不是正式版的,要
等ServicePack
措施:
只影响Quartus的Waveform
7.Warning:
ClocklatencyanalysisforPLLoffsetsissupportedforthe
currentdevicefamily,butisnotenabled
措施:
将setting中的timingRequirements&Option-->MoreTiming
Setting-->setting-->EnableClockLatency中的on改成OFF
8.Foundclockhightimeviolationat14.8nsonregister
"|counter|lpm_counter:
count1_rtl_0|dffs[11]"
原因:
违反了steup/hold时间,应该是后仿真,看看波形设置是否和时钟沿符
合steup/hold时间
措施:
在中间加个寄存器可能可以解决问题
9.warning:
circuitmaynotoperate.detected46non-operational
pathsclockedbyclockclk44withclockskewlargerthandatadelay
原因:
时钟抖动大于数据延时,当时钟很快,而if等类的层次过多就会出现这种问
题,但这个问题多是在器件的最高频率中才会出现
措施:
setting-->timingRequirements&Options-->Defaultrequired
fmax改小一些,如改到50MHZ
10.Designcontainsinputpin(s)thatdonotdrivelogic
原因:
输入引脚没有驱动逻辑(驱动其他引脚),所有的输入引脚需要有输入逻辑
措施:
如果这种情况是故意的,无须理会,如果非故意,输入逻辑驱动.
11.Warning:
Foundclockhightimeviolationat8.9nsonnode
'TEST3.CLK'
原因:
FF中输入的PLS的保持时间过短
措施:
在FF中设置较高的时钟频率
12.Warning:
Found10node(s)inclockpathswhichmaybeactingas
rippleand/orgatedclocks--node(s)analyzedasbuffer(s)resultingin
clockskew
原因:
如果你用的CPLD只有一组全局时钟时,用全局时钟分频产生的另一个时
钟在布线中当作信号处理,不能保证低的时钟歪斜(SKEW)。
会造成在这个时钟
上工作的时序电路不可靠,甚至每次布线产生的问题都不一样。
措施:
如果用有两组以上全局时钟的F