vhdl设计中地常见错误.docx

上传人:b****2 文档编号:2898156 上传时间:2023-05-05 格式:DOCX 页数:14 大小:24.38KB
下载 相关 举报
vhdl设计中地常见错误.docx_第1页
第1页 / 共14页
vhdl设计中地常见错误.docx_第2页
第2页 / 共14页
vhdl设计中地常见错误.docx_第3页
第3页 / 共14页
vhdl设计中地常见错误.docx_第4页
第4页 / 共14页
vhdl设计中地常见错误.docx_第5页
第5页 / 共14页
vhdl设计中地常见错误.docx_第6页
第6页 / 共14页
vhdl设计中地常见错误.docx_第7页
第7页 / 共14页
vhdl设计中地常见错误.docx_第8页
第8页 / 共14页
vhdl设计中地常见错误.docx_第9页
第9页 / 共14页
vhdl设计中地常见错误.docx_第10页
第10页 / 共14页
vhdl设计中地常见错误.docx_第11页
第11页 / 共14页
vhdl设计中地常见错误.docx_第12页
第12页 / 共14页
vhdl设计中地常见错误.docx_第13页
第13页 / 共14页
vhdl设计中地常见错误.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

vhdl设计中地常见错误.docx

《vhdl设计中地常见错误.docx》由会员分享,可在线阅读,更多相关《vhdl设计中地常见错误.docx(14页珍藏版)》请在冰点文库上搜索。

vhdl设计中地常见错误.docx

vhdl设计中地常见错误

一Vhdl语言中

1提示:

VHDLsyntaxerror:

expectedchoiceincasestatement

Case语句中没覆盖到所有的情况,要加whenothers=>null;

=============================================================

二.在vergehdl语句中

在QuartusII下进展编译和仿真的时候,会出现一堆warning,有的可以忽略,有的却需要注意,虽然按F1可以了解关于该警告的帮助,但有时候帮助解释的仍然不清楚,大家群策群力,把自己知道和了解的一些关于警告的问题都说出来讨论一下,免得后来的人走弯路.

下面是我收集整理的一些,有些是自己的经验,有些是网友的,希望能给大家一点帮助,如有不对的地方,请指正,如果觉得好,请版主给点威望吧,谢谢

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时间

措施:

在中间加个存放器可能可以解决问题

9.warning:

circuitmaynotoperate.detected46non-operationalpathsclockedbyclockclk44withclockskewlargerthandatadelay

原因:

时钟抖动大于数据延时,当时钟很快,而if等类的层次过多就会出现这种问题,但这个问题多是在器件的最高频率中才会出现

措施:

setting-->timingRequirements&Options-->Defaultrequiredfmax改小一些,如改到50MHZ

10.Designcontainsinputpin(s)thatdonotdrivelogic

原因:

输入引脚没有驱动逻辑(驱动其他引脚〕,所有的输入引脚需要有输入逻辑

措施:

如果这种情况是故意的,无须理会,如果非故意,输入逻辑驱动.

11.Warning:

Foundclockhightimeviolationat8.9nsonnode'TEST3.CLK'

原因:

FF中输入的PLS的保持时间过短

措施:

在FF中设置较高的时钟频率

12.Warning:

Found10node(s)inclockpathswhichmaybeactingasrippleand/orgatedclocks--node(s)analyzedasbuffer(s)resultinginclockskew

原因:

如果你用的CPLD只有一组全局时钟时,用全局时钟分频产生的另一个时钟在布线中当作信号处理,不能保证低的时钟歪斜(SKEW)。

会造成在这个时钟上工作的时序电路不可靠,甚至每次布线产生的问题都不一样。

措施:

如果用有两组以上全局时钟的芯片,可以把第二个全局时钟作为另一个时钟用,可以解决这个问题。

FPGA

13.CriticalWarning:

Timingrequirementswerenotmet.SeeReportwindowfordetails.

原因:

时序要求未满足,

措施:

双击pilationReport-->TimeAnalyzer-->红色局部〔如clocksetup:

'clk'等〕-->左键单击listpath,查看fmax的SLACKREPORT再根据提示解决,有可能是程序的算法问题或fmax设置问题

14.Warning:

Can'tfindsignalinvectorsourcefileforinputpin|whole|clk10m

原因:

这个时因为你的波形仿真文件〔vectorsourcefile〕中并没有把所有的输入信号(inputpin)加进去,对于每一个输入都需要有激励源的

15.Can'tachieveminimumsetupandholdrequirementalongpath(s).SeeReportwindowfordetails.

原因:

时序分析发现一定数量的路径违背了最小的建立和保持时间,与时钟歪斜有关,一般是由于多时钟引起的

措施:

利用pilationReport-->TimeAnalyzer-->红色局部〔如clockhold:

'clk'等〕,在slack中观察是holdtime为负值还是setuptime为负值,然后在:

Assignment-->AssignmentEditor-->To中增加时钟名(fromnodefinder),AssignmentName中增加和多时钟有关的Multicycle和MulticycleHold选项,如holdtime为负,可使Multicyclehold的值>multicycle,如设为2和1。

16:

Can'tanalyzefile--fileE:

//quartusii/*/*.vismissing

原因:

试图编译一个不存在的文件,该文件可能被改名或者删除了

措施:

不管他,没什么影响

17.Warning:

Can'tfindsignalinvectorsourcefileforinputpin|whole|clk10m

原因:

因为你的波形仿真文件〔vectorsourcefile〕中并没有把所有的输入信号(inputpin)加进去,对于每一个输入都需要有激励源的

18.Error:

Can'tnamelogicfunctionscfifo0ofinstance"inst"--functionhassamenameascurrentdesignfile

原因:

模块的名字和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中为相应的输出管脚指定负载电容,以消除警告

1Warning:

VHDLProcessStatementwarningatrandom.vhd(18):

signalresetisinstatement,butisnotinsensitivitylist

----没把singal放到process〔〕中

2Warning:

Foundpinsingasundefinedclocksand/ormemoryenables

Info:

AssumingnodeCLKisanundefinedclock

-=-----可能是说设计中产生的触发器没有使能端

3Error:

VHDLInterfaceDeclarationerrorinclk_gen.vhd(29):

interfaceobject"clk_scan"ofmodeoutcannotberead.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"maynotbeassignedanewineverypossiblepaththroughtheProcessStatement.Signalorvariable"dataout"holdsitspreviousineverypathwithnonewassignment,whichmaycreateabinationalloopinthecurrentdesign.

7Warning:

VHDLProcessStatementwarningatdivider_10.vhd(17):

signal"t"isreadinsidetheProcessStatementbutisn'tintheProcessStatement'ssensivititylist

-----缺少敏感信号

8Warning:

Noclocktransitionon"counter_bcd7:

counter_counter_clk|q_sig[3]"register

9Warning:

Reducedregister"counter_bcd7:

counter_counter_clk|q_sig[3]"withstuckclockporttostuckGND

10Warning:

Circuitmaynotoperate.Detected1non-operationalpath(s)clockedbyclock"class[1]"withclockskewlargerthandatadelay.SeepilationReportfordetails.

11Warning:

Circuitmaynotoperate.Detected1non-operationalpath(s)clockedbyclock"sign"withclockskewlargerthandatadelay.SeepilationReportfordetails.

12Error:

VHDLerroratcounter_clk.vhd(90):

actualport"class"ofmode"in"cannotbeassociatedwithformalport"class"ofmode"out"

------两者不能连接起来

13Warning:

Ignorednodeinvectorsourcefile.Can'tfindcorrespondingnodename"class_sig[2]"indesign.

------没有编写testbench文件,或者没有编辑输入变量的值testbench里是元件申明和映射

14Error:

VHDLBindingIndicationerroratfreqdetect_top.vhd(19):

port"class"indesignentitydoesnothavestd_logic_vectortypethatisspecifiedforthesamegenericintheassociatedponent

---在相关的元件里没有当前文件所定义的类型

15Error:

VHDLerrorattongbu.vhd(16):

can'tinferregisterforsignal"gate"becausesignaldoesnotholditsoutsideclockedge

16Warning:

Foundclockhightimeviolationat1000.0nsonregister"|fcounter|lpm_counter:

temp_rtl_0|dffs[4]"

17Warning:

pilerpacked,optimizedorsynthesizedawaynode"temp[19]".Ignoredvectorsourcefilenode.

---"temp[19]"被优化掉了

18Warning:

Reducedregister"gate~reg0"withstuckdata_inporttostuckGND

19Warning:

Designcontains2inputpin(s)thatdonotdrivelogic

Warning:

Nooutputdependentoninputpin"clk"

Warning:

Nooutputdependentoninputpin"sign"

------输出信号与输入信号无关,

20Warning:

Foundclockhightimeviolationat16625.0nsonregister"|impulp|gate1"

21Error:

VHDLerroratimpulp.vhd(19):

can'timplementclockenableconditionspecifiedusingbinaryoperator"or"

22Error:

VHDLAssociationListerroratperiod_counter.vhd(38):

actualparameterassignedtoformalparameter"alarm",butformalparameterisnotdeclared

-------连接表错误,形参"alarm"赋值给实参,形参没定义,可能是形参与实参的位置颠倒了,规定形参在实参之前。

23Error:

Ignoredconstructbehavieratperiod_counter.vhd(15)becauseofpreviouserrors

--------因为前一个错误而导致的错误

24Error:

VHDLerroratperiod_counter.vhd(38):

typeofidentifier"alarm"doesnotagreewithitsusageasstd_logictype

--------"alarm"的定义类型与使用的类型不一致

25Error:

VHDLerroratshift_reg.vhd(24):

can'tsynthesizelogicforstatementwithconditionsthattestfortheedgesofmultipleclocks

-------同一进程中含有两个或多个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

1.Foundclock-sensitivechangeduringactiveclockedgeattime

原因:

vectorsourcefile中时钟敏感信号〔如:

数据,允许端,清零,同步加

载等〕在时钟的边缘同时变化。

而时钟敏感信号是不能在时钟边沿变化的。

其后

果为导致结果不正确。

措施:

编辑vectorsourcefile

2.VerilogHDLassignmentwarningat:

truncated

withsizetomatchsizeoftarget

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2