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

下載本文檔

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

文檔簡介

1、一.Modelsim 實驗調(diào)試的問題1.編譯過程中的問題 1)M Add rtems to the ProjectD 匚New FileAdd Existng FileCreate Simulator!Create New Folder新建工程后:如果這里選擇是 creat new file ,r""聞 Cr«at? Project File一定記得這里把這里的 Add file as type 改為verilog因為這里默認是VHDL.2)如果是 add existing file :匚 re ate ProjectProject MarneProject Lo

2、cationEi /"eo unt e ta lxBrew 證Default Library MameCopy Settings From/node 1 te ch_0. 5 /ijodel 3 in, iniBrcrjse金 Copy Library Mappings 廠 Reference Ltorary MappingsOK Cancel要把所有的工程文件,包括仿真文件放在project location 里面或者在下面的選項卡中:選擇 copy to project directory !copy to,v拷注意了:由于我們用的軟件都是自己破解的,所有,有時候即便選擇了pro

3、ject directory有時候編譯還是會出錯,所有我們還是自己把工程文件貝到我們的工程目錄中吧。2仿真中出現(xiàn)的問題:當編譯成功之后我們就可以進行仿真了1)在仿真的時候有些版本的 modelsim 仿真出來的波形是直線原因是何 Start SimuljtionDesign LUDL Verdog Librari« £DF Oitwrs TNameType Patti血血血血血血血血血 +1廿寸-出廿廿廿廿少一WOfiLibraryE;/cq interfloatfbdt)LitMay5MODEL_TEC 出用mtfklibmtAuinLibrarvSWODEL_TECH/

4、./avmmtiOvnnLibrarySMODEL_TCC HAJovn-2-0.1mtiPALibrarySMODEL_TE 匚出.Jpa_litimtiUPFLihrsrySMODEL JE 匚 H 人 Jgfibsv_stdLitMarySMODEL_TCCHA7sv_stdvitalSDOOLibrarySMODEL_TECH/, ,tal2Q00ieeeLitjrarv5MODEL TEC H/, ,/iEEeResolutionD&ign Uni tfs)defaultOptimization麗 Enable optimisationOptinkizatioci Op>

5、;bons.CancelOK我們要注意把Optimization中的enable optimization的選項取消了:初 Start SimuldtjonType% th+J-JK workLibraryEjfoountersix/work+lA floatfixlib_ibrarySMODELjTCH/.ffioatfixlit>+ 血 rrtiAvrnLibrary$NODELJECH/,./avm+ 血 mtOvnnLibrarySMODELJECH/.Vovm'ZO, 1+,如 mtiPALibrarySWODELJTE 亡+ 血 mtilJPF_ibrary5MODE

6、L _TECH/” /up fjib+ jK sv_5tdLibrary5M0DELJTtCH/»/sv_std+j 血 vrtal2000LibrarySMODELJTKH/.擁國 200D± 如 ieee"Hl-_ibrarySMODELJTECH/./ieEeOeagri VHDL Verikg Libraries SDF Otherske solutionOptjmiE日pon Optjpns 口esign Uriitfs)OptiiYwz a ton廣 &iable optimiticnQK匸 ancel2)當我們編譯成功之后在仿真的過程中,還會

7、經(jīng)常碰到這樣的錯誤:“ #Error load ing desig n”解答:loading design 的問題 就是你對每個模塊編譯后的內(nèi)容,也就是你在 work庫里出現(xiàn)的東西提示你加載設(shè)計錯誤,就是說明你加載的東西在work 庫里沒有, 這的問題的原因有兩個:(1)testbench 沒有寫好(2)在modelsim 編譯的時候相關(guān)的文件沒有添加到 modelsim 中。所以我們的對應(yīng)的解決辦法也有兩個:A.雖然我們編譯通過了,但是可能有些字符拼寫錯誤。B.我們可以關(guān)掉軟件,再重新打開重新編譯,重新仿真3)仿真時遇到如圖所示的情況:11總t i軫Jlayovt SimulateII叫IT

8、 JJ 豐ION f J iir-Fi ?二不能看到全局時,可以通過工具欄里這兩個符號進行調(diào)節(jié),結(jié)果如圖:上面問題雖然解決了,但是result結(jié)果卻讓人頭疼,根本看不清是多少,此時,可以通過如下步驟把他修改成十進制數(shù)字,效果如下圖所示:是不是可以看得很清楚了還可以修改字體的大小和顏色,通過如下步驟:全選所有信號,右鍵選擇“properties ”,出現(xiàn)對話框(右邊的圖),可以在“ View ”欄里選擇顏色,在“Format ”欄選擇字體大小,默認的是17,我們改成37之后,效果如圖:tooocup.1 母ii $ Arvilurfftojl* /tr fixtTiocck /tryiictTk

9、it沁魅t e AryfijctTxMre石iloiuoVifrvCorrtUne Sigi i.«!Fqteb.NqFbtccCbdc.OfcKt gdar 詞 gmFcmatProterbeS-.可以看得更加清楚二.synplify實驗調(diào)試中出現(xiàn)的問題1第一個大問題就是大部分同學(xué),不明確synplify到底是干什么的,在新建工程 之后,當添加文件時竟然都把testbench也加入了工程中,導(dǎo)致run不通過! 解答:Synplify、Synplify Pro 和 Synplify Premier 是 Synplicity ( Synopsys 公司于2008年收購了 Synplic

10、ity公司)公司提供的專門針對FPGA和CPLD實 現(xiàn)的邏輯綜合工具,Synplicity 的工具涵蓋了可編程邏輯器件(FPGAs、PLDs 和CPLDs)的綜合,驗證,調(diào)試,物理綜合及原型驗證等領(lǐng)域。2. synplify不能綜合狀態(tài)機的“default ”狀態(tài):編碼風(fēng)格中要求對case語句的使 用要做到取值完全覆蓋,用case來判斷狀態(tài)機的狀態(tài),然而用synplify綜合時 出warning : OTHERS clause is not synthesized,這里什么沒有綜合的原因是什么?FSM分兩大類:米里型和摩爾型,組成要素有輸入(包括復(fù)位),狀態(tài)(包括當 前狀態(tài)的操作),狀態(tài)轉(zhuǎn)移條

11、件,狀態(tài)的輸出條件,圖1為狀態(tài)機結(jié)構(gòu)圖。設(shè)計 FSM的方法和技巧多種多樣,但是總結(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)的,之所以第二種比第一種編碼方式合理, 就在于 第二種編碼將同步時序和組合邏輯分別放到不同的程

12、序塊中實現(xiàn)。這樣做的好處不僅僅是便于閱讀、理解、維護,更重要的是利于綜合器優(yōu)化代碼,利于用戶添 加合適的時序約束條件,利于布局布線器實現(xiàn)設(shè)計。顯式的FSM描述方法可以描述任意的FSM (參考Verilog第四版P181有限 狀態(tài)機的說明)。兩個always模塊。其中一個是時序模塊,一個為組合邏輯。 時序模塊設(shè)計與書上完全一致,表示狀態(tài)轉(zhuǎn)移,可分為同步與異步復(fù)位。同步:always (posedge elk)if (!reset)always (posedge clk or n egedge reset)if (!reset)組合邏輯用case語句,sensitive list 包括當然狀態(tài)(c

13、urrent state )和輸入( a,b,c )。對于狀態(tài)機的輸出可以通過寄存器寄存一下,消除毛刺,這將另外需要一個always塊,也就是狀態(tài)機三個 always塊的寫法。編碼風(fēng)格:1) 參數(shù)定義用parameter狀態(tài)的定義用parameter定義,不推薦使用'define宏定義的方式,因為 define宏定義在編譯時自動替換整個設(shè)計中所定義的宏,而parameter僅僅定義模塊內(nèi)部的參數(shù),定義的參數(shù)不會與模塊外的其他狀態(tài)機混淆。2) 時序電路中一定要使用” <=”非阻塞賦值方式Verilog的非阻塞行賦值模擬的是實際硬件中串行寄存器的行為,排除了很多潛在的競爭冒險。在使用

14、非阻塞賦值的時候,很多設(shè)計者采用"in tra-assig nment timi ng delay"(在非3)Sy nplify 中狀態(tài)機設(shè)計:可以在Synplify中添加在state定義時添加如下約束屬性來限定狀態(tài)機的編碼:reg 2:0 state /* syn thesis syn_en cod ing = "on ehot" */;Synplify中包含一個強大的FSM編輯器,可以產(chǎn)生在時間和面積上均得到優(yōu) 化的狀態(tài)機設(shè)計,但這將忽略一些狀態(tài)機中未定義的狀態(tài)(in valid state), 如果必須在狀態(tài)機進入了未定義的狀態(tài)后能自動回到有效狀態(tài)

15、,可以在狀態(tài) 機生成時添加一個安全屬性(safe),使得到達無效狀態(tài)時能回到初始狀態(tài), 這對電路的時間和面積產(chǎn)生很小的影響:reg 2:0 state /* synthesissyn_en codi ng = "safe, on ehot" */;這種方法可能與源代碼中實際描述的不一致,對于大多數(shù)設(shè)計來說這不會產(chǎn) 生問題,但如果必須與源代碼中描述的狀態(tài)機流程圖相吻合,可以通過約束屬性關(guān)掉 FSM 編輯器:reg 4:0 state /* synthesis syn_preserve=1 */; 但 這將嚴重影響電路的時間和面積特性。2. synplify不能綜合packag

16、e庫文件所以不要自己寫一個用戶庫文件 (包含工 程中用到的自定義數(shù)據(jù)類型、函數(shù)、元件例化等,這樣其他模塊只要在開始處加上“ use work.*all; ”就可以使用用戶庫文件里的各種定義,類似于 c 里的“include ”),也有可能軟件的原因,synplify忽略自定義庫文件呢。3. 在生成technology view 的時候,一般生成的圖片都比較大,如下所示,用截圖工具一次截不完,其實這個軟件自帶有截圖工具,很好用的-ejSI選擇File >creat image,就可以使用自帶截圖工具,結(jié)果如下圖基十三,.a事-口 Synpli Pro F-20-12.03-SP2 - Sh«ef lof 1& Fi 亡 Edit Vrew P*roje<t import Rif; Neirtt-,ClH+Nr Open.CVl>QCost- £

溫馨提示

  • 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

提交評論