實驗調(diào)試中出現(xiàn)的問題_第1頁
實驗調(diào)試中出現(xiàn)的問題_第2頁
實驗調(diào)試中出現(xiàn)的問題_第3頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗調(diào)試中出現(xiàn)的問題Modelsim實驗調(diào)試的問題1.編譯過程中的問題1)新建工程后:如果這里選擇是creatnewfile,因為這里默認是VHDL.一定記得這里把這里的Addfileastype改為verilog2)如果是addexistingfile:要把所有的工程文件,包括仿真文件放在projectlocation里面或者在下面的選項卡中:選擇copytoprojectdirectory!注意了:由丁我們用的軟件都是自己破解的,所有,有時候即便選擇了copytoprojectdirectory有時候編譯還是會出錯,所有我們還是自己把工程文件,v拷貝到我們的工程目錄中吧。2.仿真中出現(xiàn)的問

2、題:當編譯成功之后我們就可以進行仿真了1)在仿真的時候有些版本的modelsim仿真出來的波形是直線原因是r':rMStartSinmjljtionDesignVHDLVerJogLifer麗tsSOFO-hersTlNarneTypePstfi血血血血血血血血血i±J-±J-Fh*i)-Fh±J-廿一woHtLit>rarvEi/cQirtersix/workfloatfixhbLilxaiy5MODEL_7ECH/./floatfixlibmtiAvinLibrary5MQDEL_TECH/.J/avmmtiOvnnLibrarySMODEL_I

3、ECHAJovn-2-0.1mtiPALibrary£MODEL_TECH/./pa_libmtiUPFLibrarySMODEL_TECHJ.sv_stdLibrarySMODEL_TECHA7sv_stdvitalZOQOLibrarySMOD£L_TECH/,JyiTZM。ieeeLitrary5MODELTECH/,./iceeDesignUnitfs)nResclutiondefaultOptirniraton7EnableoptimizetiorOKCancel我們要注意把Optimization中的enableoptimization的選項取消了:MStart

4、SimulationType%th葉低VfC*LibraryEjfoountersix/work+血floatfixlibJbrarySMODELjTCH/.ffioatfixlit>+服rrtiAvrnLibrary$WODELJECH/,./avm+皿mtOvnnLibrarySMODELJECH/.Vovm'ZO,1±j-jKmtiPALibrarysWODELjTECH/./pa_iib+血mtilJPFLibrary5MODELJECH/,Jupfjib+jKsv.stdLibrary5M0DELJtCH/»/sv_std+j匝vrtal2000Li

5、brarySMODELJTKHJ.加8200。+血ieee_ibrarySMODELJTECH/.,/ieEeHl-,OesignVHDLVerikgLibrariesSDFOthersJ2dDesignUriit(s)kesolutionOptiiTwzatonr"&iableptimiseticnQptiEiiEMonOptiDns.,KCancel2)經(jīng)常碰到這樣的錯誤:“#Errorloadingdesign”解答:loadingdesign的問題就是你對每個模塊編譯后的內(nèi)容,也就是你在work庫里出現(xiàn)的東西提示你加載設(shè)計錯誤,就是說明你加載的東西在庫里沒有,這的問題

6、的原因有兩個:(1) testbench沒有寫好(2) 在modelsim編譯的時候相關(guān)的文件沒有添加到modelsim中。所以我們的對應(yīng)的解決辦法也有兩個:A. 雖然我們編譯通過了,但是可能有些字符拼寫錯誤。B. 我們可以關(guān)掉軟件,再重新打開重新編譯,重新仿真。當我們編譯成功之后在仿真的過程中,還會work3)仿真時遇到如圖所示的情況:不能看到全局時,可以通過工具欄里這兩個符號進行調(diào)節(jié),結(jié)果如圖:II上面問題雖然解決了,但是result結(jié)果卻讓人頭疼,根本看不活是多少,此時,可以通過如下步驟把他修改成十進制數(shù)字,效果如下圖所示:是不是可以看得很活楚了。還可以修改字體的大小和顏色,通過如下步驟

7、:全選所有信號,右鍵選擇"properties”,出現(xiàn)對話框(右邊的圖),可以在“View”欄里選擇顏色,在“Format”欄選擇字體大小,默認的是17,我們改成37之后,效果如圖:可以看得更加活楚。二.synplify實驗調(diào)試中出現(xiàn)的問題1.第一個大問題就是大部分同學(xué),不明確synplify到底是干什么的,在新建工程之后,當添加文件時竟然都把testbench也加入了工程中,導(dǎo)致run不通過!解答:Synplify、SynplifyPro和SynplifyPremier是Synplicity(Synopsys公司丁2008年收購了Synplicity公司)公司提供的專門針對FPGA

8、ffiCPLD®現(xiàn)的邏輯綜合工具,Synplicity的工具涵蓋了可編程邏輯器件(FPGAsPLDs和cplds的綜合,驗證,調(diào)試,物理綜合及原型驗證等領(lǐng)域。2.synplify不能綜合狀態(tài)機的“default”狀態(tài):編碼風格中要求對case語句的使用要做到取值完全覆蓋,用case來判斷狀態(tài)機的狀態(tài),然而用synplify綜合時出warning:OTHERSclauseisnotsynthesized,這里什么沒有綜合的原因是什么?FSM分兩大類:米里型和摩爾型,組成要素有輸入(包括復(fù)位),狀態(tài)(包括當前狀態(tài)的操作),狀態(tài)轉(zhuǎn)移條件,狀態(tài)的輸出條件,圖1為狀態(tài)機結(jié)構(gòu)圖。設(shè)計FSM的方法

9、和技巧多種多樣,但是總結(jié)起來有兩大類:第一種,將狀態(tài)轉(zhuǎn)移和狀態(tài)的操作和判斷等寫到一個模塊中。另一種是將狀態(tài)轉(zhuǎn)移單獨寫成一個模塊,將狀態(tài)的操作和判斷等寫到另一個模塊中(在Verilog代碼中,相當丁使用兩個“always”block)。其中較好的方式是后者。其原因如下:首先FSM和其他設(shè)計一樣,最好使用同步時序方式設(shè)計,好處不再贅述。而狀態(tài)機實現(xiàn)后,狀態(tài)轉(zhuǎn)移是用寄存器實現(xiàn)的,是同步時序部分。狀態(tài)的轉(zhuǎn)移條件的判斷是通過組合邏輯判斷實現(xiàn)的,之所以第二種比第一種編碼方式合理,就在丁第二種編碼將同步時序和組合邏輯分別放到不同的程序塊中實現(xiàn)。這樣做的好處不僅僅是便丁閱讀、理解、維護,更重要的是利丁綜合器優(yōu)

10、化代碼,利丁用戶添加合適的時序約束條件,利丁布局布線器實現(xiàn)設(shè)計。顯式的FSM描述方法可以描述任意的FSM(參考Verilog第四版P181有限狀態(tài)機的說明)。兩個always模塊。其中一個是時序模塊,一個為組合邏輯。時序模塊設(shè)計與書上完全一致,表示狀態(tài)轉(zhuǎn)移,可分為同步與異步復(fù)位。同步:always(posedgeclk)if(!reset)異步:always(posedgeclkornegedgereset)if(!reset)組合邏輯用case語句,sensitivelist包括當然狀態(tài)(currentstate)和輸入(a,b,c)。對丁狀態(tài)機的輸出可以通過寄存器寄存一下,消除毛刺,這將另

11、外需要一個always塊,也就是狀態(tài)機三個always塊的寫法。編碼風格:1) 參數(shù)定義用parameter狀態(tài)的定義用parameter定義,不推薦使用'define宏定義的方式,因為define宏定義在編譯時自動替換整個設(shè)計中所定義的宏,而parameter僅僅定義模塊內(nèi)部的參數(shù),定義的參數(shù)不會與模塊外的其他狀態(tài)機混淆。2) 時序電路中一定要使用”<=”非阻塞賦值方式Verilog的非阻塞行賦值模擬的是實際硬件中申行寄存器的行為,排除了彳艮多潛在的競爭冒險。在使用非阻塞賦值的時候,很多設(shè)計者采用"intra-assignmenttimingdelay"(在

12、非3) Synplify中狀態(tài)機設(shè)計:可以在Synplify中添加在state定義時添加如下約束屆性來限定狀態(tài)機的編碼:reg2:0state/*synthesissyn_encoding="onehot"*/;Synplify中包含一個強大的FSM編輯器,可以產(chǎn)生在時間和面積上均得到優(yōu)化的狀態(tài)機設(shè)計,但這將忽略一些狀態(tài)機中未定義的狀態(tài)(invalidstate如果必須在狀態(tài)機進入了未定義的狀態(tài)后能自動回到有效狀態(tài),可以在狀態(tài)機生成時添加一個安全屆性(safe),使得到達無效狀態(tài)時能回到初始狀態(tài),這對電路的時間和面積產(chǎn)生很小的影響:reg2:0state/*synthesi

13、ssyn_encoding="safe,onehot"*/;這利萬法可能與源代碼中實際描述的不一致,對丁大多數(shù)設(shè)計來說這不會產(chǎn)生問題,但如果必須與源代碼中描述的狀態(tài)機流程圖相吻合,可以通過約束屆性關(guān)掉FSM輯器:reg4:0state/*synthesissyn_preserve=1*/;但這將嚴重影響電路的時間和面積特性。一2.3.synplify不能綜合package庫文件所以不要自己寫一個用戶庫文件(包含工程中用到的自定義數(shù)據(jù)類型、函數(shù)、元件例化等,這樣其他模塊只要在開始處加上“usework.*.all;”就可以使用用戶庫文件里的各種定義,類似丁c里的“include”),也有可能軟件的原因,synplify忽略自定義庫文件呢。在生成technologyview的時候,一般生成的圖片都比較大,如下所示,用截圖工具一次截不完,其實這個軟件自帶有截圖工具,很好用的。選擇File>creatimage,就可以使用自帶截圖工具,結(jié)果如下圖勺SyrplPro

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論