QuartusII增量編譯的個人學習_第1頁
QuartusII增量編譯的個人學習_第2頁
QuartusII增量編譯的個人學習_第3頁
QuartusII增量編譯的個人學習_第4頁
QuartusII增量編譯的個人學習_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、QuartusIIQuartusII增量編譯的個人學習(一)前幾天老師需要一個設(shè)計數(shù)據(jù),是有關(guān)一個大的FPGA工程中小模塊的編譯報告,由于時間有點久遠,之前的小模塊工程已經(jīng)不知道在哪里了(自己也覺得這里做的很不好,雖然模塊小,但設(shè)計之初也都是經(jīng)過仔細設(shè)計仿真驗證的,應該做好存檔才對)好吧,雖然沒了也沒關(guān)系,其實也很簡單,把大工程copy一下,然后把子模塊置頂,重新編譯不就好了嘛??删幾g后問題來了,報錯了!而且有點莫名其妙,一開始有點懵,不知道出在哪里為什么會注意到這些?很簡單,關(guān)鍵字PARTITION,還有出錯的各個模塊名稱。然后分析下這些命令才讓我想起來,原來這些是當時由于工程較大,采用了Q

2、uartus的增量編譯時進行邏輯區(qū)域劃分時設(shè)置的!找到錯誤就好辦了,把這部分命令注釋掉,再編譯就沒有問題了。本文暫時先不對Quartus的增量編譯介紹了,想先總結(jié)總結(jié)在這個問題里面,出現(xiàn)錯誤時應該遵循的某些分析方法和流程。第一、出錯后我們的第一反應都會是雙擊ERROR提示看看會跳到哪里的確,這是最直接的方法,而且一般設(shè)計上的大部分問題都可以通過這種方法來解決;第二、當自己對這個錯誤不熟悉的時候,可以在ERROR提示處右鍵-help,然后會彈出Altera給出的關(guān)于這類錯誤的解釋,不過它能做的只是解釋這個錯誤類型,但肯定不可能針對你的工程給出什么解釋;第三、對于錯誤提示的內(nèi)容,在不熟悉的時候應該

3、要看出里面的關(guān)鍵詞”,進而縮小我們分析的范圍;第四、學會查看qsf文件的命令內(nèi)容,當設(shè)計文件沒問題的時候,很可能是里面的某個命令導致了你的錯誤;最后,呵呵,大家都知道,利用網(wǎng)絡(luò)資源,有海量的大牛們都在網(wǎng)上呢!你解決不了的問題,肯定有人已經(jīng)遇到過或者解決了QuartusIIQuartusII增量編譯的個人學習(二)下面開始來仔細研究研究這個增量編譯。首先,得先看看QuartusII的編譯過程是個怎么樣的,要了解這個過程很簡單,看看下面這張圖,誰都不陌生:Task由TimeyjCompfleDesign00:01:31“,Analysis&Synthests00:00:06*fitter(

4、Ptace&Route)00:00:51YAssembler(Generateprogrammingfiles)00:00:10LTimeQuestTimingAnalysis00:00:09yEDANetiistWriter00:00:03電ProgramDevice(OpenProgrammer)3 3電工19Ut19Ut.Mt工tMlt我tftHttttia-t加士MtMtt t 1M1M-tmt(w-tmt(wttMtttMtMTtMTtt t斯七*Htfl*Htfl1 1R RiH-fliH-fl4e*14e*1+ +Hs-.1u1Hs-.1u13 3IIa4IIa4一nJn

5、JJ-1ft3J-1ft3JIXIdIXJIXIdIXJIJIX1.1-iJIJIX1.1-iJ J3 3i is sE E窿竄竄竄雷s s生j?sijjrjwiij?sijjrjwiir r扃手利打;田HiHi:4 44/4f4f學J4tighHPnlJ4tighHPnluEqrauEqramitmit“7iQRF*71147iQRF*7114 igig e enlnl*,叮44,上噂1 191rmJMiffVWlt91rmJMiffVWlt4 4,3&q3&q力工djivimnlJdjivimnlJ :P*P* JTET1:JTET1:/5-lqqE/5-lqqEi.11-

6、A1iTMti.11-A1iTMt|:工占4 4之士nrDnnsElBnrDnnsElB口口口的具fHTW,MSTtlSTEG 門丁 F-&es;M-FJmrrriCfi-CBIC*3H23*KtlD|i_LiPAHTXTtMMrrXXSTTTHE?WTFIT-*CtLIdPW7rTICIi-.0aU)l|lJjTT-94CI1014dftLruitl*.?aTTtt.?aTTtt S,77TTFKS,77TTFK方寸FITT*FITT*1 1kW;LIPTfkW;LIPTf”::鵬門(:,RMTITHMWIlIit(Md-iSctlenM w二fKiiaulPAPA- -7TTCKY

7、rr7TTCKYrr; T=T=:TTTTK K苦:FITwrt|rFITwrt|rk k|,-|*tn-aijr;tt.i|,-|*tn-aijr;tt.i:u us sLi:rLi:r?T TH H;1 1一氣一fc-fc-,rI7-rrciII7-rrciI- -iiRjwrrn口二-ETM51TmlraT_rrr-叮訃y r察好WUUTIM二百曲HlS?77t4xctlonblF 出,疝*conirlrliiJtPfcFTitlCaST:TTZfl_E5E.PatJCii_r.F-:.rL*T9SLW_*K7:囚口下丁的PJWTITI7Pirl*tSSJi,VA,T工餐匚HVILFlA

8、CEWIfT二JUfi匚N6TI&工:工,二FTmHiAF工R邛彳工有LV13EL*EMWT二啊_ROTT11KR-|AiLP.A7OSTLIVI:.-pCtJTl櫛fcFmflll二PT7TO_iI工EF7* : 1E : LZ7LFlA?DEXr : MIi :NCErfKPM*ifI-F:曾 升 一i打 后 匕1由 一tlAi&CEirr-lwp-no?Tt”子RJIMITiai二FI1:二fMMR料才工0二LML5之1?二0二01:蔣;相71:71,二 ? ;7?1二3寫 加 . 才 工E二 |. 五!11r4JhC9rrAhnCfiCT111.J10Wi&ii

9、-SieilCifiwid_*RMLLIJWfiliR_STATSUXnD-MICt工。4?nCTli9iid*HTFrr?nCTli9iid*HTFrr7亡tiCii13ddEttiCii13ddEt:-Mcticn2iO-Mcticn2iO*不_二-SiietliJild-SiietliJildb-sMMctLonb-sMMctLon_ii3*_ii3* rri-3Brri-3B tliiniaTsjtliiniaTsj ;=亡七11110n$WWwiowAft+DProperttK設(shè)定好了以后打開DesignPartitionWindow可看到如下圖: : :UftUftm;;*risd

10、nwnrisdnwn打.rcrTTTrcrTTT jfiwrwajfiwrwan n _Dr_Dr門EX是分區(qū)A的,哪部分邏輯是分區(qū)B的。之后用戶就可通過設(shè)定A、B分區(qū)的屬性類型來告訴編譯器,哪部分已經(jīng)不需要重新綜合、布局布線了;哪部分已經(jīng)修改了,需要重新進行綜合等等。而我們來看看LogicLock的作用,是對設(shè)計進行物理分區(qū)”,更準確的說,它是對目標器件進行物理分區(qū)”,然后將邏輯上的功能模塊分配到一定的分區(qū)內(nèi)。也就是說,我們先對目標器件進行物理區(qū)域劃分,把它分成幾個地盤”,然后選擇一個邏輯功能模塊分配到某個地盤里,告訴編譯器,以后這部分邏輯功能就只能在這個地盤”里面布局布線了。同樣的,用戶可

11、以對各個模塊進行屬性上的設(shè)定,告訴編譯器以什么樣的形式在地盤”里面進行布局布線。下面簡單介紹下LogicLock的使用,我們前面已經(jīng)用DesignPartition進行了邏輯分區(qū)”,我們可以用同樣的方法,在設(shè)計的樹形結(jié)構(gòu)里面右鍵,然后如下圖:把各個子模塊加入到LogicLockRegion里面之后如下圖:ftmftmaOHnOHneCMitreCMitrAFKJIUT崢也: :Wkiogr*i,Wkiogr*i,跋,LTWE惘ESTH門:AM1 1m mi i A A41cl41clj jM MQ QUuUu0Fhjuto4Fhjuto4HuinQPlpiAtCHuinQPlpiAtCOHOH

12、QHQH里面有兩個主要的參數(shù),Size和State:Size有兩個選項,Auto、Fixed;而State也有兩個選項,Locked、Floating。但是并不是有著四個組合,其實只有著下面三種狀態(tài):TypeTypeChipPlannerBehaviorFloatingAutoDottedlineCompilerchoosesappropriatesize&locationFloatingFixedDashedlineCompilerchooseslocation;userchoosessizeLockedFixedSolkilineUderchoosessize&1locat

13、ion第一種,Auto+Floating:由編譯器自動選擇區(qū)域大小和位置;(在ChipPlanner里面由虛線顯示)第二種,F(xiàn)ixed+Floating:由編譯器選擇位置,但由用戶設(shè)定區(qū)域大??;(在ChipPlanner里面由短實線顯示)第三種,F(xiàn)ixed+Locked:區(qū)域大小和位置都由用戶來設(shè)定。(在ChipPlanner里面由實線顯示)那我們來說說LogicLock在增量編譯里面有什么作用呢?還是需要強調(diào)一下,增量編譯不是一定非要用到LogicLock,但Quartus推薦在增量編譯時使用LogicLock!為什么呢?因為它可以讓增量編譯的思想貫徹得更徹底。我們想想在前面用DesignP

14、artition時出現(xiàn)的一種情況:改動后的模塊邏輯功能上變化比較大,影響了其它邏輯分區(qū)”的布局布線,這樣未改動部分也需要進行重新編譯了。但如果這個時候使用的是LogicLock,由于每個邏輯功能模塊都分配了一定的物理區(qū)域”,改動后的模塊再怎么變也是在它自己的地盤”里,不會影響到別的地盤”的布局布線。但LogicLock也會帶來一定的負面影響,最直接的,一般情況下,時序分析后的Fmax都要更低一些。這是為什么呢?其實想想也能知道,如果沒有使用LogicLock,編譯器可以自動從全局出發(fā)去做出做大的優(yōu)化,而我們?nèi)藶榈剡M行了物理分區(qū)限定,那即使可能每個小模塊做到了很好的優(yōu)化,但是由于各個區(qū)域之間的布

15、局布線受到了限制,那自然會有所影響。但也不能如此絕對地斷定,如果在占用資源很龐大的情況下,使用這種方法還能帶來意想不到的效果。Error:PartitionhierarchyPN_gen:inst2doesnotexistinthecurrentdesignorreferstoaninferredhierarchyError:PartitionhierarchyTS_gen:inst5doesnotexistinthecurrentdesignorreferstoaninferredhierarchy幾個錯誤都很相似,大致的意思就是說劃分的“*這些模塊不存在當前的設(shè)計里面。這里就覺得奇怪了,出

16、現(xiàn)錯誤的這些模塊本來就是原來大工程下的其它子模塊,當然不包括在現(xiàn)在的設(shè)計里面了,怎么還報錯呢?雙擊紅色的ERROR提示沒有反應,于是又再右鍵錯誤-help:VowVowatEKatEK塔I I* *SWHMWNMtSWHMWNMt= =切士!m4rm4r即M MWtlWMWtlWM管l l啊IRwrIRwrEwFBvMVHfREwFBvMVHfRrnrt4prnrt4p CNfl*CNfl*/ /Fip-WfiFip-Wfi rutiprutipEriMWguMEriMWguM XKXKIWKhMIWKhM*GT*GT ONONftprmftprm rCVfflKtrCVfflKtpVWrpVWr1 1匕f!西碑卦聘“中岑 A AHFNHFN. .修1 1工總AHg.AHg.C CE EN NL LM MH HMKCGMKCGW WU U1 或VTAMTIVTAMTIL L, ,n0n0nmnm& &大致意思就是設(shè)定的區(qū)域劃分沒有實體建議刪除或者重建區(qū)域劃分??赐曛?,還是一頭霧水原本該是個很簡單的操作,怎么出現(xiàn)這樣的錯誤呢?首先靜下來想想,不能慌,總結(jié)下這個問題,我個人獲得以下這些信息:(1)雙擊紅色ERR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論