关闭

关闭

关闭

封号提示

内容

首页 FPGA警告大全.doc

FPGA警告大全.doc

FPGA警告大全.doc

上传者: 花开墨墨尘音 2018-02-14 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《FPGA警告大全doc》,可适用于IT/计算机领域,主题内容包含FPGA警告大全一个高人写的Quartus警告分析大全Quartus警告分析~Foundclocksensitivechangeduringacti符等。

FPGA警告大全一个高人写的Quartus警告分析大全Quartus警告分析~Foundclocksensitivechangeduringactiveclockedgeattime<time>onregister"<name>"原因:vectorsourcefile中时钟敏感信号(如:数据允许端清零同步加载等)在时钟的边缘同时变化。而时钟敏感信号是不能在时钟边沿变化的。其后果为导致结果不正确。措施:编辑vectorsourcefileVerilogHDLassignmentwarningat<location>:truncatedwithsize<number>tomatchsizeoftarget(<number>原因:在HDL设计中对目标的位数进行了设定,如:reg:a而默认为位,将位数裁定到合适的大小措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数Allreachableassignmentstodataout()assign'',registerremovedbyoptimization原因:经过综合器优化后输出端口已经不起作用了Followingpinshavenothing,GND,orVCCdrivingdatainportchangestothisconnectivitymaychangefittingresults原因:第脚空或接地或接上了电源措施:有时候定义了输出端口但输出端直接赋„便会被接地赋„接电源。如果你的设计中这些端口就是这样用的那便可以不理会这些warningFoundpinsingasundefinedclocksandormemoryenables原因:是你作为时钟的PIN没有约束信息。可以对相应的PIN做一下设定就行了。主要是指你的某些管脚在电路当中起到了时钟管脚的作用比如flipflop的clk管脚而此管脚没有时钟约束因此QuartusII把“clk”作为未定义的时钟。措施:如果clk不是时钟可以加“notclock”的约束如果是可以在clocksetting当中加入在某些对时钟要求不很高的情况下可以忽略此警告或在这里修改:Assignments>Timinganalysissettings>Individualclocks>TimingcharacteristicsofdeviceEPMTCarepreliminary原因:因为MAXII是比較新的元件在QuartusII中的時序并不是正式版的,要等ServicePack措施:只影响Quartus的WaveformWarning:ClocklatencyanalysisforPLLoffsetsissupportedforthecurrentdevicefamily,butisnotenabled措施:将setting中的timingRequirementsOption>MoreTimingSetting>setting>EnableClockLatency中的on改成OFFFoundclockhightimeviolationatnsonregister"|counter|lpmcounter:countrtl|dffs"原因:违反了steuphold时间应该是后仿真看看波形设置是否和时钟沿符合steuphold时间措施:在中间加个寄存器可能可以解决问题warning:circuitmaynotoperatedetectednonoperationalpathsclockedbyclockclkwithclockskewlargerthandatadelay原因:时钟抖动大于数据延时,当时钟很快而if等类的层次过多就会出现这种问题,但这个问题多是在器件的最高频率中才会出现措施:setting>timingRequirementsOptions>Defaultrequiredfmax改小一些如改到MHZDesigncontains<number>inputpin(s)thatdonotdrivelogic原因:输入引脚没有驱动逻辑(驱动其他引脚),所有的输入引脚需要有输入逻辑措施:如果这种情况是故意的,无须理会,如果非故意,输入逻辑驱动Warning:Foundclockhightimeviolationatnsonnode'TESTCLK'原因:FF中输入的PLS的保持时间过短措施:在FF中设置较高的时钟频率Warning:Foundnode(s)inclockpathswhichmaybeactingasrippleandorgatedclocksnode(s)analyzedasbuffer(s)resultinginclockskew原因:如果你用的CPLD只有一组全局时钟时用全局时钟分频产生的另一个时钟在布线中当作信号处理不能保证低的时钟歪斜(SKEW)。会造成在这个时钟上工作的时序电路不可靠甚至每次布线产生的问题都不一样。措施:如果用有两组以上全局时钟的FPGA芯片可以把第二个全局时钟作为另一个时钟用可以解决这个问题。CriticalWarning:TimingrequirementswerenotmetSeeReportwindowfordetails原因:时序要求未满足措施:双击CompilationReport>TimeAnalyzer>红色部分(如clocksetup:'clk'等)>左键单击listpath,查看fmax的SLACKREPORT再根据提示解决,有可能是程序的算法问题Can'tachieveminimumsetupandholdrequirement<text>along<number>path(s)SeeReportwindowfordetails原因:时序分析发现一定数量的路径违背了最小的建立和保持时间与时钟歪斜有关,一般是由于多时钟引起的措施:利用CompilationReport>TimeAnalyzer>红色部分(如clockhold:'clk'等)在slack中观察是holdtime为负值还是setuptime为负值然后在:Assignment>AssignmentEditor>To中增加时钟名(fromnodefinder)AssignmentName中增加和多时钟有关的Multicycle和MulticycleHold选项如holdtime为负可使Multicyclehold的值>multicycle,如设为和。:Can'tanalyzefilefileE:quartusii**vismissing原因:试图编译一个不存在的文件该文件可能被改名或者删除了措施:不管他没什么影响Warning:Can'tfindsignalinvectorsourcefileforinputpin|whole|clkm原因:因为你的波形仿真文件(vectorsourcefile)中并没有把所有的输入信号(inputpin)加进去对于每一个输入都需要有激励源的Error:Can'tnamelogicscfifoofinstance"inst"hassamenameascurrentdesignfile原因:模块的名字和project的名字重名了措施:把两个名字之一改一下一般改模块的名字Warning:Usingdesignfilelpmfifov,whichisnotspecifiedasadesignfileforthecurrentproject,butcontainsdefinitionsfordesignunitsandentitiesinprojectInfo:Foundentity:lpmfifo原因:模块不是在本项目生成的而是直接copy了别的项目的原理图和源程序而生成的而不是用QUARTUS将文件添加进本项目措施:无须理会不影响使用Timingcharacteristicsofdevice<name>arepreliminary原因:目前版本的QuartusII只对该器件提供初步的时序特征分析措施:如果坚持用目前的器件无须理会该警告。关于进一步的时序特征分析会在后续版本的Quartus得到完善。TimingAnalysisdoesnotsupporttheanalysisoflatchesassynchronouselementsforthecurrentlyselecteddevicefamily原因:用analyzelatchesassynchronouselementssetting可以让QuarutsII来分析同步锁存但目前的器件不支持这个特性措施:无须理会。时序分析可能将锁存器分析成回路。但并不一定分析正确。其后果可能会导致显示提醒用户:改变设计来消除锁存器Warning:Foundxxoutputpinswithoutoutputpinloadcapacitanceassignment(网友:gucheng提供)原因:没有给输出管教指定负载电容措施:该功能用于估算TCO和功耗可以不理会也可以在AssignmentEditor中为相应的输出管脚指定负载电容以消除警告Warning:Foundnode(s)inclockpathswhichmaybeactingasrippleandorgatedclocksnode(s)analyzedasbuffer(s)resultinginclockskew原因:使用了行波时钟或门控时钟把触发器的输出当时钟用就会报行波时钟将组合逻辑的输出当时钟用就会报门控时钟措施:不要把触发器的输出当时钟不要将组合逻辑的输出当时钟如果本身如此设计则无须理会该警告Warning():VerilogHDLinformationatlcdv():AlwaysConstructcontainsbothblockingandnonblockingassignments原因:一个always模块中同时有阻塞和非阻塞的赋值Quartus常见错误分析Warning:VHDLProcessStatementwarningatrandomvhd():signalresetisinstatement,butisnotinsensitivitylist没把singal放到process()中Warning:FoundpinsingasundefinedclocksandormemoryenablesInfo:AssumingnodeCLKisanundefinedclock=可能是说设计中产生的触发器没有使能端Error:VHDLInterfaceDeclarationerrorinclkgenvhd():interfaceobject"clkscan"ofmodeoutcannotbereadChangeobjectmodetobufferorinout信号类型设置不对out当作buffer来定义Error:Nodeinstance"clkgen"instantiatesundefinedentity"clkgen"引用的例化元件未定义实体,,entity"clkgen"Warning:Foundnode(s)inclockpathswhichmaybeactingasrippleandorgatedclocksnode(s)analyzedasbuffer(s)resultinginclockskewInfo:Detectedrippleclock"clkgen:clkgen|clkincr"asbufferInfo:Detectedrippleclock"clkgen:clkgen|clkscan"asbufferWarning:VHDLProcessStatementwarningatledmuxvhd():signalorvariable"dataout"maynotbeassignedanewineverypossiblepaththroughtheProcessStatementSignalorvariable"dataout"holdsitspreviousineverypathwithnonewassignment,whichmaycreateacombinationalloopinthecurrentdesignWarning:VHDLProcessStatementwarningatdividervhd():signal"cnt"isreadinsidetheProcessStatementbutisn'tintheProcessStatement'ssensivititylist缺少敏感信号Warning:Noclocktransitionon"counterbcd:countercounterclk|qsig"registerWarning:Reducedregister"counterbcd:countercounterclk|qsig"withstuckclockporttostuckGNDWarning:CircuitmaynotoperateDetectednonoperationalpath(s)clockedbyclock"class"withclockskewlargerthandatadelaySeeCompilationReportfordetailsWarning:CircuitmaynotoperateDetectednonoperationalpath(s)clockedbyclock"sign"withclockskewlargerthandatadelaySeeCompilationReportfordetailsError:VHDLerroratcounterclkvhd():actualport"class"ofmode"in"cannotbeassociatedwithformalport"class"ofmode"out"两者不能连接起来Warning:IgnorednodeinvectorsourcefileCan'tfindcorrespondingnodename"classsig"indesign没有编写testbench文件或者没有编辑输入变量的值testbench里是元件申明和映射Error:VHDLBindingIndicationerroratfreqdetecttopvhd():port"class"indesignentitydoesnothavestdlogicvectortypethatisspecifiedforthesamegenericintheassociatedcomponent在相关的元件里没有当前文件所定义的类型Error:VHDLerrorattongbuvhd():can'tinferregisterforsignal"gate"becausesignaldoesnotholditsoutsideclockedgeWarning:Foundclockhightimeviolationatnsonregister"|fcounter|lpmcounter:temprtl|dffs"Warning:Compilerpacked,optimizedorsynthesizedawaynode"temp"Ignoredvectorsourcefilenode"temp"被优化掉了Warning:Reducedregister"gate~reg"withstuckdatainporttostuckGNDWarning:Designcontainsinputpin(s)thatdonotdrivelogicWarning:Nooutputdependentoninputpin"clk"Warning:Nooutputdependentoninputpin"sign"输出信号与输入信号无关Warning:Foundclockhightimeviolationatnsonregister"|impulcomp|gate"Error:VHDLerroratimpulcompvhd():can'timplementclockenableconditionspecifiedusingbinaryoperator"or"Error:VHDLAssociationListerroratperiodcountervhd():actualparameterassignedtoformalparameter"alarm",butformalparameterisnotdeclared连接表错误形参"alarm"赋值给实参形参没定义可能是形参与实参的位置颠倒了规定形参在实参之前。Error:Ignoredconstructbehavieratperiodcountervhd()becauseofpreviouserrors,,,,,,,,因为前一个错误而导致的错误Error:VHDLerroratperiodcountervhd():typeofidentifier"alarm"doesnotagreewithitsusageasstdlogictype,,,,,,,,"alarm"的定义类型与使用的类型不一致Error:VHDLerroratshiftregvhd():can'tsynthesizelogicforstatementwithconditionsthattestfortheedgesofmultipleclocks同一进程中含有两个或多个if(edge)条件(一个进程中之能有一个时钟沿)Error:Can'tresolvemultipleconstantdriversfornet"datainreg"atshiftregvhd()can'tinferregisterforsignal"num"becausesignaldoesnotholditsoutsideclockedgeError:Can'telaboratetopleveluserhierarchyError:Can'tresolvemultipleconstantdriversfornet"csin"atledkeyvhd()有两个以上赋值语句不能确定“csin”的值Warning:IgnorednodeinvectorsourcefileCan'tfindcorrespondingnodename"over"indesign在源文件中找不到对应的节点“over”。Error:Can'taccessJTAGchain无法找到下载链Info:Assumingnode"clk"isanundefinedclock(原創)如何解決warning:『PLLoutputportfeedsoutputpinvianondedicatedroutingjitterperformancedependsonswitchingrateofotherdesignelementsUsePLLdedicatedclockoutputstoensurejitterperformance』(SOC)(QuartusII)(DE)Abstract無論是自己開發的project或者是DECD上的範例只要QuartusII編譯後幾乎大家都會遇到這個warning到底是什麼意思呢該如何解決這個warning呢Introduction使用環境:QuartusIIDE(CycloneIIEPCFCN)小美與阿帥在(原創)如何使用PipelineBridge增進NiosII系統的Fmax(SOC)(QuartusII)(NiosII)(SOPCBuilder)(DE)成功解掉個criticalwarning後也開始對QuartusII其他warning感興趣基本上大部分的warning的意義都很明確也都能解掉但對於以下這個warning阿帥卡了很久還是解不掉:查了一下QuartusII的Help這是Altera的官方回答並不是英文看不懂只是看來看去還是不知道該怎麼解決最後小美與阿帥打算去請教無雙學長。『小美與阿帥不錯喔已經會開始注意QuartusII的warning了!!』『哈哈哈深入研究才發現其實QuartusIIwarning很多都是蠻貼心的警告就像寫VisualC與gcc時都會盡量讓warning不要出現所以現在也希望盡量能解掉QuartusII的warning』阿帥很自豪的回答。『這樣的習慣不錯這樣會讓你更了解QuartusII在做什麼。』不過無雙學長話鋒一轉『你問的這個問題其實也困擾我很久因為找不到解決方法又暫時不影響結果就先擱在一旁不管了今天你又問起我又仔細的研究了一番。』『在AlteraForum有人討論過這個問題Ben與Brad講解的很清楚你們兩個待會可以仔細閱讀他們的解釋大至上的意思是說:由pll產生的clk要ouput到專屬提供pllouput的port若output到非專屬plloutput的portQuartusII就會產生這個warning。』『這樣好抽像喔學長可以講的更清楚些嗎』小美有聽沒有懂還是滿臉疑惑。『就用你們寫的code來講解好了』DEvVerilog*(C)OOMusouFilename:DEvCompiler:QuartusIIDescription:DemohowtouseTRDBDMwithLTMonDEwithNiosIIRelease:*`defaultnettypenonemoduleDE(ClockInputinputiCLK,MHzinputiCLK,MHzinputiCLK,MHzinputiCLK,MHzinputiCLK,MHzinputiEXTCLOCK,ExternalClockPushButtoninput:iKEY,Pushbutton:DPDTSwitchinput:iSW,ToggleSwitch:SEGDispalyoutput:oHEXD,SevenSegmentDigitoutput:oHEXD,SevenSegmentDigitoutput:oHEXD,SevenSegmentDigitoutput:oHEXD,SevenSegmentDigitoutput:oHEXD,SevenSegmentDigitoutput:oHEXD,SevenSegmentDigitoutput:oHEXD,SevenSegmentDigitoutput:oHEXD,SevenSegmentDigitLEDoutput:oLEDG,LEDGreen:output:oLEDR,LEDRed:SDRAMInterfaceinout:DRAMDQ,SDRAMDatabusBitsoutput:oDRAMA,SDRAMAddressbusBitsoutput:oDRAMA,SDRAMAddressbusBitsoutputoDRAMLDQM,SDRAMLowbyteDataMaskoutputoDRAMLDQM,SDRAMLowbyteDataMaskoutputoDRAMUDQM,SDRAMHighbyteDataMaskoutputoDRAMUDQM,SDRAMHighbyteDataMaskoutputoDRAMWEN,SDRAMWriteEnableoutputoDRAMWEN,SDRAMWriteEnableoutputoDRAMCASN,SDRAMColumnAddressStrobeoutputoDRAMCASN,SDRAMColumnAddressStrobeoutputoDRAMRASN,SDRAMRowAddressStrobeoutputoDRAMRASN,SDRAMRowAddressStrobeoutputoDRAMCSN,SDRAMChipSelectoutputoDRAMCSN,SDRAMChipSelectoutput:oDRAMBA,SDRAMBankAddressoutput:oDRAMBA,SDRAMBankAddressoutputoDRAMCLK,SDRAMClockoutputoDRAMCLK,SDRAMClockoutputoDRAMCKE,SDRAMClockEnableoutputoDRAMCKE,SDRAMClockEnableFlashInterfaceinout:FLASHDQ,FLASHDatabusBits(to)inoutFLASHDQAM,FLASHDatabusBitorAddressAoutput:oFLASHA,FLASHAddressbusBitsoutputoFLASHWEN,FLASHWriteEnableoutputoFLASHRSTN,FLASHResetoutputoFLASHWPN,FLASHWriteProtectProgrammingAccelerationinputiFLASHRYN,FLASHReadyBusyoutputoutputoFLASHBYTEN,FLASHByteWordModeConfigurationoutputoFLASHOEN,FLASHOutputEnableoutputoFLASHCEN,FLASHChipEnableSRAMInterfaceinout:SRAMDQ,SRAMDataBusBitsinout:SRAMDPA,SRAMParityDataBusoutput:oSRAMA,SRAMAddressbusBitsoutputoSRAMADSCN,SRAMControllerAddressStatusoutputoSRAMADSPN,SRAMProcessorAddressStatusoutputoSRAMADVN,SRAMBurstAddressAdvanceoutput:oSRAMBEN,SRAMByteWriteEnableoutputoSRAMCEN,SRAMChipEnableoutputoSRAMCE,SRAMChipEnableoutputoSRAMCEN,SRAMChipEnableoutputoSRAMCLK,SRAMClockoutputoSRAMGWN,SRAMGlobalWriteEnableoutputoSRAMOEN,SRAMOutputEnableoutputoSRAMWEN,SRAMWriteEnableGPIOinout:GPIO,GPIOConnectionIOinputGPIOCLKINN,GPIOConnectionClockInputinputGPIOCLKINP,GPIOConnectionClockInputinoutGPIOCLKOUTN,GPIOConnectionClockOutputinoutGPIOCLKOUTP,GPIOConnectionClockOutputinout:GPIO,GPIOConnectionIOinputGPIOCLKINN,GPIOConnectionClockInputinputGPIOCLKINP,GPIOConnectionClockInputinoutGPIOCLKOUTN,GPIOConnectionClockOutputinoutGPIOCLKOUTP,GPIOConnectionClockOutputSDCardInterfaceinoutSDDAT,SDCardDatainoutSDDAT,SDCardDatainoutSDCMD,SDCardCommandSignaloutputoSDCLKSDCardClock)ltmwire:ltmrltmreddatabitswire:ltmgltmgreendatabitswire:ltmbltmbluedatabitswireltmnclkltmclcokwireltmhdltmhsyncwireltmvdltmvsyncwireltmdenltmdataenableltmconfigwireltmsclkltmISclkwireltmscenltmIsclkenablewireadcltmsclkacdltmIsclkenablewireltmgrstltmresetassignltmgrst=iKEYltmrestassignadcltmsclk=ltmsclkltmisclkenableassignGPIO=adcltmsclkacdltmisclkenableassignGPIO=ltmbltmbluedatabitsassignGPIO=ltmbltmbluedatabitsassignGPIO=ltmbltmbluedatabitsassignGPIO=ltmbltmbluedatabitsassignGPIO=~ltmnclkltmclcokassignGPIO=ltmdenltmdataenableassignGPIO=ltmhdltmhsyncassignGPIO=ltmvdltmvsyncassignGPIO=ltmbltmbluedatabitsassignGPIO=ltmbltmbluedatabitsassignGPIO=ltmbltmbluedatabitsassignGPIOCLKOUTN=ltmbltmbluedatabitsassignGPIO=ltmgltmbluedatabitsassignGPIOCLKOUTP=ltmgltmbluedatabitsassignGPIO=ltmgltmbluedatabitsassignGPIO=ltmgltmbluedatabitsassignGPIO=ltmgltmbluedatabitsassignGPIO=ltmgltmbluedatabitsassignGPIO=ltmgltmbluedatabitsassignGPIO=ltmgltmbluedatabitsassignGPIO=ltmrltmreddatabitsassignGPIO=ltmrltmreddatabitsassignGPIO=ltmrltmreddatabitsassignGPIO=ltmrltmreddatabitsassignGPIO=ltmrltmreddatabitsassignGPIO=ltmrltmreddatabitsassignGPIO=ltmrltmreddatabitsassignGPIO=ltmrltmreddatabitsassignGPIO=ltmgrstltmreddatabitsassignGPIO=ltmscenltmsclkenableresetdelaywiredlyrstresetdelaywiredlyrstresetdelaywiredlyrstresetdelayResetDelayreset(iCLK(iCLK),MHziRST(iKEY),PushbuttonoRST(dlyrst),resetdelayoRST(dlyrst),resetdelayoRST(dlyrst)resetdelay)flashwireflashbitipaassignoFLASHBYTEN='bflashbytewordmodeconfigurationassignoFLASHRSTN='bflashresetassignoFLASHWPN='bflashwriteprotectprogrammingaccelerationssramwiresramclksramclockwire:sramdummyaddrusedtoignoretheaapinfromcypressssramipcorewiresramdummyaddrusedtoignoremsbofsramaddressassignoSRAMCLK=sramclksramclockassignoSRAMA='bzignoreoSRAMAassignoSRAMADSPN='bsramprocessoraddressstatusassignoSRAMADVN='bsramburstaddressadvanceassignoSRAMCE=~oSRAMCENsramchipenableassignoSRAMCEN=oSRAMCENsramchipenableassignoSRAMGWN='bsramglobalwriteenablesdram(dualchannel)thesdramissharedwithHwandSWwire:dramasdramaddresswire:drambasdrambankaddresswiredramcasnsdramcolumnaddressstrobewiredramckesdramclockenablewiredramcsnsdramchipselectwire:dramdqmsdramdatamaskwiredramrasnsdramrowaddressstrobewiredramwensdramwriteenablesdramassignoDRAMCLK=sramclksdramclockassignoDRAMA=dramasdramaddressbusbitsassignoDRAMBA=drambasdrambankaddressassignoDRAMCASN=dramcasnsdramcolumnaddressstrobeassignoDRAMCKE=dramckesdramclockenableassignoDRAMCSN=dramcsnsdramchipselectassignoDRAMLDQM=dramdqmsdramlowbytedatamaskassignoDRAMUDQM=dramdqmsdramhighbytedatamaskassignoDRAMRASN=dramrasnsdramrowaddressstrobeassignoDRAMWEN=dramwensdramwriteenablesdramassignoDRAMCLK=sramclksdramclockassignoDRAMA=dramasdramclockassignoDRAMBA=drambasdramaddressbusbitsassignoDRAMCASN=dramcasnsdrambankaddressassignoDRAMCKE=dramckesdramcolumnaddressstrobeassignoDRAMCSN=dramcsnsdramclockenableassignoDRAMLDQM=dramdqmsdramchipselectassignoDRAMUDQM=dramdqmsdramlowbytedatamaskassignoDRAMRASN=dramrasnsdramhighbytedatamaskassignoDRAMWEN=dramwensdramrowaddressstrobesdramwriteenableLEDassignoLEDG='bnouseofledgassignoLEDR:='hnouseofledr:NIOSIICPUwirecpuclkcpuclkwirecpuresetncpuresetassigncpuresetn=dlyrstcpuresetniosiinios()globalsignals:clk(iCLK),MHzpllcsystem(cpuclk),cpuclkpllcmemory(sramclk),sramclkresetn(cpuresetn),cpuresetthesdramzsaddrfromthesdram(drama),sdramaddresszsbafromthesdram(dramba),sdrambankaddresszscasnfromthesdram(dramcasn),sdramcolumnaddressstrobezsckefromthesdram(dramcke),sdramclockenablezscsnfromthesdram(dramcsn),sdramchipselectzsdqtoandfromthesdram(DRAMDQ),sdramdatabusbitszsdqmfromthesdram(dramdqm),sdramdatamaskzsrasnfromthesdram(dramrasn),sdramrowaddressstrobezswenfromthesdram(dramwen),sdramwriteenableflashaddresstothecfiflash({oFLASHA:,flashbitipa}),flashaddressbusbitsdatatoandfromthecfiflash({FLASHDQAM,FLASHDQ}),flashdatabusbits(to)readntothecfiflash(oFLASHOEN),flashoutputenableselectntothecfiflash(oFLASHCEN),flashchipenablewritentothecfiflash(oFLASHWEN),flashwriteenablethetristatebridgeavalonslave(ssram)addresstothessram({sramdummyaddr,oSRAMA:,sramdummyaddr}),sramaddressbusbitsadscntothessram(oSRAMADSCN),sramcontrolleraddressstatusbwntothessram(oSRAMBEN),srambytewriteenablebwentothessram(oSRAMWEN),sramwriteenablechipenablentothessram(oSRAMCEN),sramchipenabledatatoandfromthessram((SRAMDQ)),sramdatabusbitsoutputenablentothessram(oSRAMOEN),sramoutputenabletheltmcoeltmexportiCLKtotheltm(iCLK),MHzcoeltmexportiRSTtotheltm(dlyrst),resetdelaycoeltmexportiRSTtotheltm(dlyrst),resetdelaycoeltmexportoLTMCLKfromtheltm(ltmnclk),ltmclcokcoeltmexportoRfromtheltm(ltmr),ltmreddatabitscoeltmexportoGfromtheltm(ltmg),ltmgreendatabitscoeltmexportoBfromtheltm(ltmb),ltmbluedatabitscoeltmexportoHDfromtheltm(ltmhd),ltmhsynccoeltmexportoVDfromtheltm(ltmvd),ltmvsynccoeltmexportoDENfromtheltm(ltmden),ltmdataenablecoeltmexportoSCLKfromtheltm(ltmsclk),ltmsclkcoeltmexportioSDATtoandfromtheltm(GPIO),ltmISdatacoeltmexportoSCENfromtheltm(ltmscen),ltmISclkenablecoeltmexportoFIFOEMPTYfromtheltm(oLEDR),fordebuguseonly(ltmfifoempty)coeltmexportoFIFOFULLfromtheltm(oLEDR),fordebuguseonly(ltmfifofull)SDoutportfromthesdclk(oSDCLK),SDCardClockbidirporttoandfromthesdcmd(SDCMD),SDCardCommandSignalbidirporttoandfromthesddat(SDDAT),SDCardDatabidirporttoandfromthesddat(SDDAT)SDCardData)endmodule『行的sramclk是由pll所產生的。』niosiinios()globalsignals:clk(iCLK),MHzpllcsystem(cpuclk),cpuclkpllcmemory(sramclk),sramclk『而QuartusII的warning主要是來自於以下這幾行:』行assignoSRAMCLK=sramclksramclock行assignoDRAMCLK=sramclksdramclock行assignoDRAMCLK=sramclksdramclock行assignGPIO=~ltmnclkltmclcok『因為你將sramclk這個由pll產生的clkoutput到oSRAMCLK、oDRAMCLK、oDRAMCLK、GPIO這些非pll專屬的outputport所以QuartusII才有以上這些warning』『DE有這些pll專屬的outputport嗎』阿帥還是很懷疑。『有你看一下DEUserManualpGPIO就有提供pll專屬的input與outputportQuartusII就是希望你pll產生的clk能output到這種專屬的port以避免jitter。』『可是在DE上SDRAM與SRAM都沒有專屬plloutputport的設計怎麼辦』小美仔細的查過DEUserManual發現只有GPIO提供plloutputport。『對這就牽涉到開發版的設計了或許當初認為GPIO主要是外接自己的周邊所以使用到pll的機會很大因此設計了專屬的plloutputport不過在中Brad最後也做了結論若你的clkport能接受pll的jitter的話就可忽略這個warning。』『那看來這個warning是解不掉了』阿帥覺得有點失望。『雖然如此也讓我們更了解QuartusIIwarning的意義所以未嘗不是一件好事畢竟只是warning只要我們知道自己在幹什麼能確保整個設計正常就可放心的忽略這個warning。』無雙學長還是對小美與阿帥的研究精神加以肯定。Conclusion注意QuartusIIwarning是一個很好的習慣就算可能不能完全解掉但最少要知道這個warning在幹什麼。SeeAlso(原創)如何使用PipelineBridge增進NiosII系統的Fmax(SOC)(QuartusII)(NiosII)(SOPCBuilder)(DE)Warning:FoundxxoutputpinswithoutoutputpinloadcapacitanceassignmentWarning:Foundxxoutputpinswithoutoutputpinloadcapacitanceassignment原因:没有给输出管教指定负载电容解决方法:该功能用于估算TCO和功耗可以不理会也可以在AssignmentEditor中为相应的输出管脚指定负载电容以消除警告网上都是这样说的可没有一个人说怎样实现。这个警告怎么消除我要的是具体方法。请选择下拉菜单Assignments>AssignmentEditor,然后在Category中选择"IOFeatures",在Edit这一栏的“To”里选择你要设置的节点“Assignmentname”里选择“OutputPinLoad”,在“Value”中填入你的设定值Enabled里选“Yes”就好了。你可以看到中间quartus的解释:Specifiesthecapacitiveload,inpicofarads(pF),onoutputpinsforeachIOstandardNote:ThesesettingsaffectFPGApinsonlyTospecifyboardtrace,termination,andcapacitiveloadparametersforusewithAdvancedIOTiming,usetheBoardTraceModeltabCapacitiveloadingisignoredifappliedtoanythingotherthananoutputorbidirectionalpin,orifAdvancedIOTimingisenabled这种警告怎么解决,OutputpinsarestuckatVCCorGND这两个警告说明你的输出是固定值这样的输出没有什么意义除非你就要这样的输出不过也没有很大的影响但你的代码确实存在一些问题:、count计数没有初值需要复位成或者置位为某个值在always里描述时序电路应该用非阻塞赋值(<=)这样写是不是好点always(posedgeclkornegedgerstn)定义clk信号上升沿触发beginif(!rstn)count<='belsecount<=count'b计数器值加end、slreg的值确实是一直为零你的赋值语句如下:alwaysbeginslreg='bend你在一个always中无条件的给slreg赋值所以slreg的值一直为零后面也没有用到这个信号不知道你使用它的目的。(就赋值而言我想你的本意可能是想给它赋初值但是用initial不能综合你就用了always但是这样做的结果和你想的不一样。)、always的敏感信号列表不能为空且不能作为输出容易形成组合环alwaysbegindispdat=count:显示数值if(dispdat>)dispdat='b只显示~十个数end建议改为:always(count:)beginif(count:>'h)只显示~十个数dispdat='belsedispdat=count:显示数值end、case语句不完整会综合成锁存器。建议改为:always(dispdat)显示译码输出begincase(dispdat)选择输出数据'h:segreg='hc显示'h:segreg='hf显示'h:segreg='ha显示'h:segreg='hb显示'h:segreg='h显示'h:segreg='h显示'h:segreg='h显示'h:segreg='hf显示'h:segreg='h显示'h:segreg='h显示default:segreg='hee显示erorrendcaseend从这段代码可以看出seg确实一直为即电源VCC可以考虑对其进行优化不要这一位。

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/28
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部