您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > quartus2-问题汇总
其实QuartusII自带对Error和Warning的解答。只需在Error或Warning上点击右键,然后选择“Help”,QuartusII的帮助就会告诉你发生这种错误或警告的原因与解决方法。当然了,是英文的,但是很简单,很容易理解。Warning(10235):VerilogHDLAlwaysConstructwarningatverilog_ctrl.v(109):variabletemp4isreadinsidetheAlwaysConstructbutisn'tintheAlwaysConstruct'sEventControl解释1:在Always结构中对一个变量进行了读写,但是Always的敏感列表中不包含这个变量。它不影响QuartusII的综合工具,但是可能引起仿真结果与综合逻辑行为的不符。解释2:把always@(dela_tempormod_unsign)改成边沿触发,修改敏感信号。解释3:如果把always@(state_rxd)改成always@(negedgesclk)或always@(posedgesclk)是没有警告但是data_rxd得到的数据会延时一个时钟周期或半个时钟周期。解释4:这个warning就是说你第二个always块是纯组合逻辑,但mosi作为输入没有被包含在敏感列表中,这样的话你的mosi变化不会影响你这段组合逻辑的输出,一定会生成锁存器,也就是latch。Warning(10230):VerilogHDLassignmentwarningatverilog_ctrl.v(111):truncatedvaluewithsize10tomatchsizeoftarget(8)解释1:数值不指定位宽的话,会被默认成32位,然后就有这个警告了解释2:因为没有指定位宽,所以系统提示默认为32位所以你将out=out+1改为out=out+1'b1就可以了。Warning(10240):VerilogHDLAlwaysConstructwarningatverilog_ctrl.v(105):inferringlatch(es)forvariableinterbus,whichholdsitspreviousvalueinoneormorepathsthroughthealwaysconstruct解释1:信号被综合成了latch,锁存器的EN和数据输入端口存在一个竞争的问题。措施:将计数器从里面抽出来解释2:把两个if改成if。。。else结构应伽i就不会出现警告了。解释3:Latch只是一个问题。你所报的warning是因为你把zq和xt在beginend里面都用上了。这完全是没有必要的,有些综合器认为时钟信号是不能用来测试的。什么叫做测试?就是if(zq)和case(xt)这种判定。解释4:原先的警告说明,你没有在所有状态给csn赋值,在这些状态csn将保持。Warning:Outputpinpre_syn.bp.inst8_DATA_13_drivenbybidirectionalpinSRAM_DATA[13]cannotbetri-stated解释1:你这个双向端口在作为输入的时候先要置成三态,然后再输入,输出的时候直接输出即可。未解决我的问题Warning:ClockmultiplexersarefoundandprotectedWarning:Foundclockmultiplexerfenpinqi2:inst16|mc16~synth解释1:取消你的时钟mux。如果不能取消,那么就用专门的时钟mux单元。如果时钟不是特别高要求,别管他。就是对时钟做了多路选择。一般的来说,系统时钟树的处理要特别注意。最好不要有组合逻辑掺杂其中。如果非得要有,对于FPGA来说,一般的会使用专用的时钟选择器来做,驱动能力比较强,所以也不要太担心。如果是特别高频的,要注意处理了。时序报告要好好检查。Warning:Removedfan-outsfromthefollowingalways-disabledI/Obuffers//警告:消除扇出从下面总是禁用的I/O缓冲区Warning:Removedfan-outfromthealways-disabledI/Obufferverilog_ctrl:inst10|SRAM_databus[0]tothenodepre_syn.bp.inst8_databus_0_Warning:Tri-statenode(s)donotdirectlydrivetop-levelpin(s)Warning:Convertedthefan-outfromthetri-statebuffersram_control:inst8|databus[0]tothenodeverilog_ctrl:inst10|temp7[0]intoanORgate解释1:FPGA内部的信号不能出现被赋值为高阻,只有顶层的信号才可以。解释2:在进行FPGA设计时,对于FPGA内部的信号不能出现被赋值为高阻的状态,只有顶层的信号,即输出的信号才可以赋值为高阻态。相信大家看到这,就应该知道解决方法了吧!找出这个信号,然后把赋值为x'bz改为x'b0或x'b1(具体是改为x'b0还是x'b1要根据实际情况确定)。在数字电路设计时,除0和1外,还有第三种状态即高阻态,这就是我们所说的“三态”,而在进行FPGA设计时,使用时要注意高阻态的使用。有些人认为高阻态,就是介于0和1之间的一种状态,但我觉得这种说法不完全正确,我认为应该这样理解:高阻态相当于该门和它连接的电路处于断开的状态。Warning:OutputpinsarestuckatVCCorGNDWarning(13410):PinSRAM_LBisstuckatGND解释1:这个的意思是您的这几个输出管脚直接接地了(意思是它们的值一直都是0)。当然如果这符合您的设计要求这种警告可以不管。CriticalWarning:Partiallyconnectedin-systemdebuginstanceauto_signaltap_0to176ofits177requireddatainputs,triggerinputs,acquisitionclocks,anddynamicpins.Therewere0illegal,0inaccessible,and1missingsourcesorconnections.解释1:如果某些SignalTap?II逻辑分析器信号在您的设计中没有正确地连接,那么可能会出现这个警告信息。措施:需执行以下步骤来找出是什么使SignalTapII逻辑分析器信号没有正确地连接:打开编译报告。展开Analysis&Synthesis部分。打开Debugsettingssummary部分,查看您设计中的SignalTapII逻辑分析器实例。检查In-systemdebugging表,来检查哪个信号没有正确地连接。CriticalWarning:FoundI/Opinsinlower-levelpartitionsthatarenotconnectedinthetop-leveldesignCriticalWarning:I/Ocellpre_syn.bp.inst8_ADDR_0_isnotconnectedtopartitionTopError(10028):Can'tresolvemultipleconstantdriversfornetsram_data[0]atverilog_ctrl.v(77)上面的代码在quartusII里面就会出现题目的错误提示,器原因就是在两个always语句里面都对out1,out2信号赋值了,而两个always是并行快,所以提示出现多重驱动的情况。。。两个进程里都有同一个条件判断的话,会产生并行信号冲突的问题。同一个信号不允许在多个进程中赋值,否则则为多驱动。进程的并行性决定了多进程不同能对同一个对象进行赋值。Warning:Portdatabus[0]doesnotexistinentitydefinitionofsram_control.Theport'srangediffersbetweentheentitydefinitionanditsactualinstantiation,sram_control:inst8.Warning:Outputpinpre_syn.bp.inst8_DATA_10_drivenbybidirectionalpinSRAM_DATA[10]cannotbetri-stated
本文标题:quartus2-问题汇总
链接地址:https://www.777doc.com/doc-4655037 .html