培訓(xùn)文檔內(nèi)容_第1頁
培訓(xùn)文檔內(nèi)容_第2頁
培訓(xùn)文檔內(nèi)容_第3頁
培訓(xùn)文檔內(nèi)容_第4頁
培訓(xùn)文檔內(nèi)容_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1MODELSIM培訓(xùn)2培訓(xùn)文檔內(nèi)容培訓(xùn)文檔內(nèi)容1、建立項目2、建立庫3、編譯源代碼4、啟動仿真器5、執(zhí)行仿真6、前、后仿真區(qū)別7、do文件的介紹8、界面介紹9、設(shè)計調(diào)試10、其他相關(guān)內(nèi)容3建立項目建立庫編譯源代碼啟動仿真器執(zhí)行仿真執(zhí)行仿真過程需要的步驟執(zhí)行仿真過程需要的步驟41、建立項目、建立項目打開MODELSIM選擇File/New/Project, 出現(xiàn)右圖所示的界面。Project Name 項目名稱Project Location 項目存放路徑Default Library Name 缺省庫名(一般情況為work, 系統(tǒng)會在項目存放路徑自建work子目錄)52、建立庫建立庫Mode

2、lSim 庫庫需編譯的引入文件需編譯的引入文件n激勵文件n源文件n源文件調(diào)用的子模塊庫的兩種類型庫的兩種類型n 本次新建需編譯的庫本次新建需編譯的庫(缺省值 work)n包含當前被編譯的設(shè)計單元n編譯前必須建立一個work庫n每個項目只允許一個work庫n引用已有的庫引用已有的庫n包含能被當前編譯引用的設(shè)計單元n在編譯期間允許多個6建立庫建立庫建庫菜單操作建庫菜單操作從主菜單里面: Design - Create a New Library選擇 a new library and a logical mapping to it和輸入庫名7建立庫建立庫建庫命令行操作建庫命令行操作 從main窗口

3、提示行后敲入命令: ModelSim vlib 如: vlib work /建立庫名為work的庫 vlib work2 /建立庫名為work2的庫8建立庫建立庫庫的編譯庫的編譯 庫文件存放的庫名 庫文件存放的路徑 Xilinx:布局布線工具安裝目錄verilogsrc 其中: simprims(后仿真庫) uni9000,unisims,XilinxCorelib (前仿真庫) Altera:布局布線工具安裝目錄edasim_lib9建立庫建立庫映射邏輯新庫映射邏輯新庫菜單操作(從主菜單里面 ) Design - Create a New Library-a map to an existi

4、ng library命令行操作(從主窗口提示行后敲入)語法: vmap vmap my_work c:my_designmy_lib /將my_work庫的內(nèi)容映射到my_lib10建立庫建立庫映射現(xiàn)有的庫映射現(xiàn)有的庫Select a map to an existing library and type library nameBrowse to library directory使用這條命令映射到已經(jīng)編譯的使用這條命令映射到已經(jīng)編譯的庫庫vmap my_lib g:/software/model55crk/modelsim55f/simprim/映射my_lib到已經(jīng)編譯的庫g:/soft

5、ware/model55crk/modelsim55f/simprim建立庫建立庫刪除庫命令刪除庫命令作用:作用:從指定的庫中刪除一個完整的庫或者一個設(shè)計單元操作:操作: 菜單操作: Design - Library Browser /刪除庫完整的庫 命令行操作: vdel -lib /刪除庫中單元Use delete button to delete a library 12建立庫建立庫察看庫內(nèi)容察看庫內(nèi)容作用:作用:顯示指定庫的內(nèi)容操作:操作:菜單操作: Design - Library Browser命令行操作: vdir -lib Use view button to view a l

6、ibrary 133、編譯源代碼、編譯源代碼模塊激勵的產(chǎn)生(模塊激勵的產(chǎn)生(1)文件格式:文件格式:激勵文件基于Verilog的格式文件組成:文件組成: 精度時間確定精度時間確定 timescale 1ns/1ps /定義時間精度為1ps,時間單位為1ns 激勵文件變量的定義激勵文件變量的定義 定義變量的類型、數(shù)據(jù)寬度 激勵文件變量的初始化激勵文件變量的初始化 對變量復(fù)初值 如: initial begin fp=0; /在仿真起始時刻將fp賦0 clk=0; /在仿真起始時刻將clk賦0 rst_b=0; /在仿真起始時刻將rst_b賦0 #(100*clkth) rst_b=1; /在仿真

7、起始后(100*clkth)將rst_b賦1 end 14編譯源代碼編譯源代碼模塊激勵的產(chǎn)生(模塊激勵的產(chǎn)生(2)時鐘的產(chǎn)生時鐘的產(chǎn)生 :產(chǎn)生激勵時鐘如: always #clkth forever # clkth clk=clk; /在仿真起始經(jīng)過clkth時間后,時鐘每隔clkth翻轉(zhuǎn)一次模塊輸入激勵的產(chǎn)生模塊輸入激勵的產(chǎn)生: 產(chǎn)生模塊輸入(同源代碼中變量的產(chǎn)生方法一致)模塊的調(diào)用:模塊的調(diào)用: 同源文件中的模塊引用一致如下例所示: dcc_pos_gen dcc_pos_gen_1(.dcc_pos(dcc_pos),.fp(fp),.clk(clk),.rst_b(rst_b); /按

8、照名稱對應(yīng)的方式調(diào)用模塊dcc_pos_gen ,實例名為dcc_pos_gen_1仿真結(jié)束的時間限制仿真結(jié)束的時間限制: 確定仿真時間長度如: initial #(clkth*2*810*8) $finish; /仿真時間長clkth*2*810*8ns15編譯源代碼編譯源代碼加載源代碼加載源代碼源代碼的路徑源代碼的路徑和類型和類型通過菜單操作方式通過菜單操作方式需加載文件需加載文件 前仿真:前仿真:激勵文件、模塊文件、模塊引用的字模塊文件 后仿真(后仿真( Xilinx器件)器件) 激勵文件、time_sim.v、glbl.v(該文件在布局布布 線工具安 裝目錄下。 后仿真(后仿真( Al

9、tera器件)器件) 激勵文件、*.vo(布局布線產(chǎn)生的網(wǎng)表文件)16編譯源代碼編譯源代碼源代碼的編譯源代碼的編譯在Project窗口中,點擊右鍵,選中Compile All即可對Project中所有文件進行編譯,如下所示:17編譯源代碼編譯源代碼 Project窗口的調(diào)出窗口的調(diào)出View - Show Workspace即可在主窗口的左側(cè)出現(xiàn)即可在主窗口的左側(cè)出現(xiàn) 18編譯源代碼命令行編譯源代碼 語法語法 vlog -work .v .v 例如: vlog cpos77mv.v /編譯源文件cpos77mv.v文件按出現(xiàn)的順序被編譯文件的順序或者編輯的順序不重要缺省編譯到work庫編譯源代

10、碼編譯源代碼Error Messages主窗口錯誤顯示主窗口錯誤顯示雙擊主窗口錯誤消息雙擊主窗口錯誤消息會自動彈出源代碼窗會自動彈出源代碼窗口并定位在錯誤代碼口并定位在錯誤代碼處處204、啟動仿真器、啟動仿真器加載頂模塊加載頂模塊從主菜單里面: Design - Load Design選擇仿真器的分辨率選擇仿真器的分辨率選擇頂級選擇頂級module 或或 entity/architecture21啟動仿真器啟動仿真器加載庫文件加載庫文件前仿真加載的庫:前仿真加載的庫: Xilinx:如果模塊中用了core產(chǎn)生的代碼,需 要加入相應(yīng)的庫。如加載編譯有ram塊,fifo、bufg等文件的庫名 Al

11、tera:加載編譯有altera_mf.v和220model.v 的庫名后仿真加載的庫:后仿真加載的庫: Xilinx:需要添加后仿真的庫(參考庫的編譯) Altera:庫前仿真加載的庫外,還需加跟器件相關(guān)的庫,如:apexII_atoms.v編譯產(chǎn)生的庫22啟動仿真器啟動仿真器加載延時文件(后仿真專用)加載延時文件(后仿真專用)指定指定 SDF文件文件使用定時值的等級的使用定時值的等級的類型類型 (如果不是頂級如果不是頂級)Xilinx:延時文件*.sdf,由布局布線工具自動產(chǎn)生Altera:延時文件*.sdo,由布局布線工具自動產(chǎn)生23啟動仿真器精度選擇 命令行方式命令行方式-t 指定仿真

12、的時間分辨率單位可以是fs, ps, ns, ms, sec, min, hr如果用了 Verilog的 timescale指令, 將使用整個設(shè)計中的最小的時間精度可選項(缺省是 ns)菜單方式菜單方式245、執(zhí)行仿真執(zhí)行仿真MODELSIM的界面的界面25執(zhí)行仿真執(zhí)行仿真調(diào)出信號和波形窗口和源程序窗口調(diào)出信號和波形窗口和源程序窗口信號窗口信號窗口主窗口主窗口波形窗口波形窗口命令行方式命令行方式: View - Signals; View - Waves; View - Source26執(zhí)行仿真執(zhí)行仿真在波形窗口中加信號在波形窗口中加信號在signals窗口中: View - Wave ; 加

13、入加入signals窗口的信號到窗口的信號到wave窗口窗口加入設(shè)計中所有信號到加入設(shè)計中所有信號到wave窗口窗口加入加入signals窗口選中信號到窗口選中信號到wave窗口窗口27執(zhí)行仿真執(zhí)行仿真運行運行菜單方式:菜單方式: Run - Run-all命令行方式:命令行方式:run 例: run 100ns /從當前開始時刻運行100ns28執(zhí)行仿真執(zhí)行仿真菜單方式菜單方式選擇選擇 timesteps數(shù)量就數(shù)量就可以執(zhí)行仿真可以執(zhí)行仿真Restart 重裝任何已改動重裝任何已改動的設(shè)計元素并把仿真時間設(shè)的設(shè)計元素并把仿真時間設(shè)為零為零29執(zhí)行仿真執(zhí)行仿真仿真結(jié)果(前仿真)仿真結(jié)果(前仿真

14、)30執(zhí)行仿真執(zhí)行仿真仿真結(jié)果(后仿真)仿真結(jié)果(后仿真)31執(zhí)行仿真執(zhí)行仿真命令行方式命令行方式run 1000/從當前位置運行仿真 1000 時間單位run 2500 ns/從當前位置運行仿真2500 nsrun 3000/運行仿真到 3000時間單位32執(zhí)行仿真執(zhí)行仿真force命令命令force命令的使用對象:命令的使用對象: 簡單的模塊仿真force命令的輸入方式:命令的輸入方式: 直接從命令控制臺輸 .DO 文件 (宏文件)33執(zhí)行仿真執(zhí)行仿真force 命令(命令(1)常規(guī)語法常規(guī)語法: force , 例: force fp 1 4000ps , 0 8000ps /信號fp

15、在4000ps處置1,在8000ps處置0參數(shù):參數(shù):item_name強迫對象必需的可以使用通配符34執(zhí)行仿真執(zhí)行仿真force 命令(命令(2)其他參數(shù)valuen被強制的項的值n必須適合項的數(shù)據(jù)類型n必需的timen指定值的時間單位n相對于當前的仿真時間 用 符號指定絕對時間n時間單位能被指定 缺省值是仿真分辨率n可選的ValueDescription 1111 character sequence 2#1111 binary radix 10#15 decimal radix 16#F hexadecimal radix35執(zhí)行仿真執(zhí)行仿真force 命令舉例命令舉例force clr

16、 0/在當前仿真時間強制 clr 到 0,維持此狀態(tài)force clr 1 100 ns/在當前仿真時間后100ns強制 clr到 1,維持此狀態(tài)force bus2 16#4F 200/仿真啟動后強制 bus2到 4F直到200時間單位 ,分辨率在仿真啟動時選擇force clk 0 0, 1 20 -repeat 50 -cancel 1000/在當前仿真后0時間單位強制clk到0和在20時間單位強制到1. 每50時間單位重復(fù)直到1000. 因此, 下一個 1 將在70時間單位發(fā)生366、執(zhí)行仿真、執(zhí)行仿真前仿真和后仿真的區(qū)別前仿真和后仿真的區(qū)別 Altera(前仿真)前仿真)Altera

17、(后仿真后仿真)Xilinx(前仿真前仿真)Xilinx(后仿真后仿真)引入文件引入文件(見(見14p)編寫的源文件、激勵文件產(chǎn)生的網(wǎng)表文件、激勵文件編寫的源文件、激勵文件產(chǎn)生網(wǎng)表文件,激勵文件,glbl.v加載的庫加載的庫(見(見20p)加載編譯有altera_mf.v和220model.v 的庫名多器件相關(guān)的庫前仿真的庫后仿真的庫加載的延加載的延時文件時文件(見見21p)無*.sdo無*.sdf377、Do文件介紹文件介紹DO 文件文件自動完成仿真步驟的宏文件自動完成仿真步驟的宏文件庫設(shè)置編譯仿真強制仿真激勵能在所有的能在所有的ModelSim 模式里被調(diào)用模式里被調(diào)用菜單操作 Macro

18、 - Execute命令行操作 do .do能調(diào)用其他的能調(diào)用其他的DO文件文件Do文件示例cd c:mydirvlib workvlog counter.vvsim counterview *add wave /*add list /*do run.do38Do文件介紹文件介紹DO 文件舉例文件舉例add wave /clkadd wave /clradd wave /loadadd wave -hex /dataadd wave /qforce /clk 0 0, 1 50 -repeat 100force /clr 0 0, 1 100run 500force /load 1 0, 0

19、100force /data 16#A5 0force /clk 0 0, 1 50 -repeat 100run 1000cd c:mydirvlib workvlog counter.vvsim counterview *do stimulus.domy_sim.dostimulus.do398、界面介紹、界面介紹ModelSim 用戶界面特征(用戶界面特征(1)有九個窗口有九個窗口: main, structure, source, signals, process, variables, dataflow, wave, list支持任何窗口的多個副本支持任何窗口的多個副本拖放拖放n在一

20、個窗口選擇HDL項后, 用鼠標左鍵,這些項能被從一個窗口拖和放到另一個窗口.nHDL項可從 Dataflow, List, Signals, Source, Structure, Variables, 和 Wave窗口拖出.n可把它們放到 List 或者 Wave 窗口40界面介紹界面介紹ModelSim 用戶界面特征(用戶界面特征(2) 自動更新窗口自動更新窗口nDataflow 窗口: 當一個進程被選到這個窗口的中央, Process, Signals, Source, Structure, 和 Variables 窗口會被更新.nProcess 窗口: 當一個進程被選擇, Dataflo

21、w, Signals, Structure, 和Variables窗口被更新.nSignals 窗口: 當Signals窗口被選擇,Dataflow 窗口是唯一被更新的窗口.nStructure 窗口: 當從你的設(shè)計結(jié)構(gòu)中層次瀏覽中的一個被選擇, Signals 和 Source 窗口將自動更新.41界面介紹界面介紹ModelSim 用戶界面特征(用戶界面特征(3)查找名稱或搜索值查找名稱或搜索值n除兩個窗口外其他窗口都允許用戶通過菜單EditFind查找項名稱 。 只有 Main 和 Dataflow 窗口沒有這個功能。n在List 和Wave 窗口, 能通過EditSearch 搜索HDL

22、項值。排序排序HDL 項項n用EditSort 菜單選項, HDL項能被排序(按升序,降序, 或聲明順序)。n缺省, 這些項按被聲明的順序排序。多個窗口副本多個窗口副本n從主窗口, 用ViewNew菜單選項建立額外的相同窗口的副本42界面介紹界面介紹 Main 窗口(窗口(1) ModelSim 這是設(shè)計加載前的提示符 能瀏覽幫助, 編輯庫, 編輯源代碼VSIM 設(shè)計加載后顯示的提示符 告訴我們仿真器的行為動作命令信息聲明43界面介紹界面介紹 Main 窗口窗口(2)Options - Simulation 44界面介紹界面介紹 Structure窗口窗口設(shè)計的結(jié)構(gòu)多層瀏覽設(shè)計的結(jié)構(gòu)多層瀏覽n

23、Verilog () 模塊實例, 有名的 fork, begin, task, 和 functionn項目的層次關(guān)系n成為當前層 for Source 和 Signals 窗口, 更新 Process 和Variables 窗口COM) view structure45界面介紹界面介紹 Source窗口(窗口(1)從從Structure窗口選擇窗口選擇Options 菜單菜單 (源代碼的控制瀏覽源代碼的控制瀏覽)Color-codedn注釋, 關(guān)鍵字, 字符串, 數(shù)字, 執(zhí)行行, 標識符, 系統(tǒng)任務(wù), 文本完全的編輯能力完全的編輯能力n保存 編譯和重啟拖放拖放描述描述/檢查檢查nVHDL 信號

24、, 變量和常數(shù)COM) view source46界面介紹界面介紹 Source窗口(窗口(2)描述描述n顯示所選的HDL項的信息檢查檢查n顯示所選HDL項當前仿真值1) 高亮信號, 變量, 常數(shù), 線網(wǎng), 或寄存器2) 右擊鼠標并選擇 Now 或 Object Menu - Examine/Description47界面介紹界面介紹 Process窗口窗口顯示外部和內(nèi)部的處理顯示外部和內(nèi)部的處理View - Activen顯示當前仿真所有處理日志View - In Regionn顯示Structure 窗口選擇模塊的處理信號的名字指示器指示器nProcess is scheduled to

25、be executedn處理正等待 VHDL 信號或Verilog 線網(wǎng)改變 或等待超時nProcess has executed a VHDL wait statement without a time-out or sensitivity listCOM) view process48界面介紹界面介紹 Signals窗口窗口緊跟緊跟Structure窗口窗口顯示Structure窗口的當前層HDL項的名稱和值排序排序 升序,降序或聲明順序升序,降序或聲明順序?qū)哟螌哟?- (+)可展開的可展開的, (-)已展開的已展開的“拖放拖放” Wave和List窗口COM) view signals4

26、9界面介紹界面介紹 Dataflow窗口窗口Verilog線網(wǎng)的圖形描繪線網(wǎng)的圖形描繪n信號或線網(wǎng)在窗口中央nProcesses that drive signal or net on the leftnProcesses that read the signal or are triggered by the net on the rightCOM) view dataflow50界面介紹界面介紹 Wave窗口窗口用波形瀏覽仿真結(jié)果圖形化的歷史記錄用波形瀏覽仿真結(jié)果圖形化的歷史記錄 Verilog 線網(wǎng), 寄存器變量, 已命名事件對于更多的邏輯信號多個波形窗口用于對于更多的邏輯信號多個波形窗

27、口用于更多的邏輯信號更多的邏輯信號 可以啟動仿真,停止仿真,單步運行等可以啟動仿真,停止仿真,單步運行等 放大、縮小、增加鼠標等便于波形觀察、放大、縮小、增加鼠標等便于波形觀察、分析波形的正確性分析波形的正確性COM) view wave51界面介紹界面介紹 List窗口窗口用表格顯示仿真結(jié)果用表格顯示仿真結(jié)果 Verilog 線網(wǎng)和寄存器變量從這個窗口或到這個窗口從這個窗口或到這個窗口“拖放拖放”編輯功能編輯功能 查找查找建立用戶定義的總線建立用戶定義的總線 EditCombine設(shè)置觸發(fā)和選通設(shè)置觸發(fā)和選通 Write List - Tabular, Event or TSSI Marker - Add, Delete or GotoCOM) view list529、設(shè)計調(diào)試、設(shè)計調(diào)試斷點設(shè)置斷點設(shè)置什么時候調(diào)試什么時候調(diào)試?n編譯失敗n不正確或意外的仿真結(jié)果支持兩種類型的斷點支持兩種類型的斷點n在源代碼窗口設(shè)置斷點在源代碼窗口設(shè)置斷點

溫馨提示

  • 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

提交評論