




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
數(shù)字電路設計與仿真---陳俊銳ContentsNCverilog仿真器,Verilog-XL仿真器及NClaunch簡介1SimVision簡介2設計過程簡介3實例解說及演示4NCverilog仿真器,Verilog-XL仿真器及NClaunch簡介NCverilog簡介NCVerilog仿真器都是基于事件算法的仿真器。仿真器讀入VerilogHDL描述并進行仿真以反映實際硬件的行為。NCVerilog是全編譯仿真器,它直接將Verilog代碼編譯為機器碼執(zhí)行。其過程為:ncvlog編譯Verilog源文件,按照編譯指導(compiledirective)檢查語義及語法,產(chǎn)生中間數(shù)據(jù)。ncelab按照設計指示構(gòu)造設計的數(shù)據(jù)結(jié)構(gòu),產(chǎn)生可執(zhí)行代碼。除非對優(yōu)化進行限制,否則源代碼中的元件(element)可能被優(yōu)化丟失。產(chǎn)生中間數(shù)據(jù)。ncsim啟動仿真核。核調(diào)入設計的數(shù)據(jù)結(jié)構(gòu),構(gòu)造事件序列(時輪),調(diào)度并執(zhí)行事件的機器碼。有些事件可能消失(從不執(zhí)行)除非限制優(yōu)化過程。編譯后的所有代碼的執(zhí)行使用同一個核。在交互模式下,可以使用Tcl命令及其針對NCVerilog的擴展命令來修改設計和控制仿真。這將在后面進行詳細描述Verilog-XL簡介Verilog-XL是一個交互式仿真器,過程如下:讀入Verilog描述,進行語義語法檢查,處理編譯指導(compilerdirective)在內(nèi)存中將設計編譯為中間格式,將所有模塊和實例組裝成層次結(jié)構(gòu)(設計數(shù)據(jù)結(jié)構(gòu))。源代碼中的每個元件都被重新表示并能在產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)找到。決定仿真的時間精度,在內(nèi)存中構(gòu)造一個事件隊列的時間數(shù)據(jù)結(jié)構(gòu)(時輪)。讀入、調(diào)度并根據(jù)事件執(zhí)行每一個語句。Verilog-XL采用多種加速算法提高各種抽象級的仿真速度。每次重新啟動Verilog-XL,將重復上述步驟。當進入交互模式時,可以輸入VerilogHDL語句并加到設計的數(shù)據(jù)結(jié)構(gòu)中。NClaunch簡介NCLaunch,是一個圖形界面的用戶接口,能幫助你管理大型的設計工程。配置和啟動編譯器NCverilogcomplier,描述器NCverilogelaborator以及仿真器Simulator還可以在NCLaunch上運行像SDFcompiler,HDLAnalysisandLint,CodeCoverageAnalyzer,NCBrowse,andComparescan.之類的工具NClaunch啟動的界面Nclaunch–new&NClaunch運行模式MultipleStepmode
一步步運行compile,elaborate,andsimulate。如果我們要仿真的文件是VHDL或者混合語言設計,我們必須選用多步模式。當然對于verilog
設計也可以用多步模式。usesthencvlogandncelabcommands
SingleStepmode
一步完成compile,elabrate,simulate。但必須整個設計是用verilog的。
ncverilogcommandNClaunch的圖形界面I/ORegionToolsbarFilebrowserMenubarDesignbrowserNClaunch中的toolsNClaunch中的utilitiesNCLaunchToolbarButtonsNC-VHDLCompiler(VHDL編譯器)—LaunchesncvhdltocompiletheVHDLsourcefilesthatyouhaveselectedintheFileBrowserNC-VerilogCompiler(Verilog
編譯器)—LaunchesncvlogtocompiletheVerilogsourcefilesthatyouhaveselectedintheFileBrowserElaborator(描述器)—LaunchesncelabtoelaboratethecompiledVHDLorVerilogdesignunitsSimulator(仿真/仿真器)—LaunchesncsimtosimulatethedesignNCBrowse(NC瀏覽)—LaunchesncbrowsetoexaminethemessagesinthelogfilethatyouhaveselectedintheFileBrowser
波形察看窗口(WaveformWindow)NCLaunch下使用ncverilog的方式一、終端命令輸入二、圖形用戶界面終端命令輸入ncvlog
編譯Verilog源文件(ncvhdl對于vhdl)?ncelab
描述設計并且生成仿真的snapshotncsim
對snapshot進行仿真仿真或ncverilog–csource_filencverilog
source_file(runbothcomplierandsimulator)?
ncsim[options][lib.]cell[:view]Ncvlog命令ncvlog[options]source_file...Options:-DEFINE<arg>
--Definesamacr-FILE<arg>
--Loadcommandlineargumentsfrom<arg>rmation
-MESSAGES
--Specifiesprintingofinformativemessages-NOCOPYRIGHT
--Suppressesprintingofcopyrightbanner-NOWARN<arg>
--DisablesprintingofthespecifiedwarningmessageNcvlog命令ncvlogfilename1.vfilename2.v…注意:有時候這些文件存在依存關(guān)系,如在filename2中要用到在filename1中定義的變量,這時候就要注意其編譯的順序是從后到前,就先編譯file1然后才是file2.
注意層次結(jié)構(gòu)Ncelab命令ncelab用描述器(elaborator)把設計描述成snapshot的形式,Snapshot是仿真器將調(diào)用的你的設計的表述,它和其它由compiler和elaborator產(chǎn)生的中間目標一起保存在庫中ncelab-access+rwc
worklib.topmodulename:module這里我們必須輸入-access命令來啟動elaborator+rwc表示讀,寫,連接探測
Ncelab命令ncelab[options][lib.]cell[:view]
Options:
-MESSAGES
--Specifiesprintingofinformativemessages
-NOCOPYRIGHT
--Suppressesprintingofcopyrightbanner
-NOSTDOUT
--Turnoffoutputtoscreen
-TIMESCALE<arg>
--SetdefaulttimescaleonVerilogmodules.
-ACCESS<arg>
--Setdefaultaccessvisibility.{+rwc}turnonread/write/connectivity.
-FILE<arg>
--Loadcommandlineargumentsfrom<arg>
-LOADPLI1<arg>
--Specifythelibrary_name:boot_routine(s)todynamicallyloadaPLI1.0application
Ncsim命令ncsim[options][lib.]cell[:view]Options:
-FILE<arg>
--Loadcommandlineargumentsfrom<arg>
-GUI
--Enterwindowmodebeforerunningsimulation
-INPUT<arg>
--Scripttobeexecutedduringinitialization
-MESSAGES
--Specifiesprintingofinformativemessages
-NOCOPYRIGHT
--Suppressesprintingofcopyrightbanner
-NONTCGLITCH
--Suppressdelayednetglitchsuppressionmessages
-NOSTDOUT
--Turnoffoutputtoscreen
-NOWARN<arg>
--Disablesprintingofthespecifiedwarningmessage
-SDF_NO_WARNINGS
--DonotreportSDFwarningsNClaunch的圖形界面NCLaunchToolbarButtonsNC-VHDLCompiler(VHDL編譯器)—LaunchesncvhdltocompiletheVHDLsourcefilesthatyouhaveselectedintheFileBrowserNC-VerilogCompiler(Verilog
編譯器)—LaunchesncvlogtocompiletheVerilogsourcefilesthatyouhaveselectedintheFileBrowserElaborator(描述器)—LaunchesncelabtoelaboratethecompiledVHDLorVerilogdesignunitsSimulator(仿真/仿真器)—LaunchesncsimtosimulatethedesignNCBrowse(NC瀏覽)—LaunchesncbrowsetoexaminethemessagesinthelogfilethatyouhaveselectedintheFileBrowser
波形察看窗口(WaveformWindow)Simvision簡介Simvision簡介SimVision是一個candence
仿真器統(tǒng)一的圖形化的調(diào)試環(huán)境。SimVision可以用于調(diào)試用verilog,vhdl,SystemC或者它們混合寫成的數(shù)字,仿真,或數(shù)?;旌想娐返脑O計。你可以在以下幾種模式運行SimVision:·Simulate模式·Post-processingenvironment(PPE)模式Simulate模式
在Simulate模式下你可以實時的看到仿真的數(shù)據(jù)。也就是說,你可以在仿真仿真的過程中就進行數(shù)據(jù)的分析。你可以通過對設計設置斷點和分步來達到控制仿真的。為了幫助你追蹤整個仿真過程,SimVision提供了幾個工具:·控制臺窗口ConsoleWindow·源瀏覽器SourceBrowser·設計瀏覽器DesignBrowser·循環(huán)閱讀器CycleViewer·原理圖追蹤SchematicTracer·信號流瀏覽器SignalFlowBrowser·波形窗口WaveformWindow·寄存器窗口RegisterWindow這些窗口之間是連接了的,所以如果你在一個窗口中選中了一個對象,那么在其它窗口中也會被選中。·Post-processingenvironment(PPE)模式
在PPE模式下,對仿真結(jié)果數(shù)據(jù)的分析是在仿真過程結(jié)束了后進行的。除了仿真器之外,你能訪問所有的SimVision的工具。就像Simulator模式中一樣,這里所有的窗口也是連接了的,你在一個窗口中選擇了的目標也會在其它窗口中選中。要在PPE模式下運行,你必須先對設計進行仿真,然后把仿真的資料存到一個文件中,你可以隨時從simulation模式切換到PPE模式,但是不能在PPE模式切換到simulation模式中去。Simvision使用的方式一、終端命令輸入二、圖形用戶界面終端命令輸入
圖形用戶界面Tools主要ToolsButton介紹控制臺Consolewindow:Consolewindow允許你輸入tcl仿真的命令和SimVision的命令。DesignBrowser:DesignBrowser讓你進入設計的各層,以及信號和變量的數(shù)據(jù)庫。Registerwindow:Registerwindow讓你可以使用一個開放式的圖形編輯器來定義一些記錄簿,每個都包含了一個自定義的仿真數(shù)據(jù)的觀點。SignalFlowBrowser:SignalFlowBrowser讓你追蹤信號的變化。SourceBrowser:SourceBrowser讓你可以看到設計的源代碼。Waveformwindow:Waveformwindow把仿真的資料在X-Y坐標系里面描繪出來。數(shù)據(jù)通常被顯示為值和時間的關(guān)系,但是它也可以是已經(jīng)記錄下了的數(shù)據(jù)。原理描述器顯示了用Verilog或者Vhdl編寫的設計的原理圖,可以讓你描述在設計中的信號。
設計過程簡介設計過程簡介描述設計將在設計的實例化,結(jié)構(gòu)化信息的基礎上建立設計的層次結(jié)構(gòu),建立信號的連接,計算所有對象的初始值調(diào)用編譯器對verilog源程序進行編譯,編譯過程將把源文件中的用HDL編寫的單元編譯成內(nèi)在的描述對描述器生成的snapshot進行仿真編譯描述仿真設計路徑結(jié)構(gòu)NcvlogNcelabNcsim實例解說及演示實例解說仿真一個51單片機的定時器,包括2個源文件:51_timer.vTimer_test.v通過啟動仿真器,來仿真其工作的四種模式。本例的所有源文件包含在/home/chen/51_timer下。啟動終端,用cd命令切換到此目錄,并運用nclaunch–new&命令來啟動nclaunch-new選項指名你想要在一個新的設計(design)啟動后如圖:工程存放路徑我們建立了一個文件夾之后,在這個文件夾下啟動NCLaunch就會默認存放在這個文件夾里面LibMappingFile的存放路徑Worklib默認的工作庫若用VHDL或者混合語言設計,就選擇默認library或IEEE的Library;Verilog的就不需要任何library設計源文件包含在庫中在你仿真仿真你的設計以前,你必須用編譯器編譯源文件,并且用描述器(elaborator)把設計描述成snapshot的形式。Snapshot是仿真器將調(diào)用的你的設計的表述,它和其它由compiler和elaborator產(chǎn)生的中間目標一起保存在庫中。NCLaunch的主窗口讓你可以連接你編譯和描述設計所需要的工具,當然還有其它的程序。你利用Tools和Utilities菜單,或者你也可以利用工具欄里面的工具按鈕,你可以打開工具和其它程序。對編譯器的設置選上可以在大的設計中節(jié)省時間,在重新編譯的時候只對有修改過的units進行編譯如果要預編library和cell,就選上,如`celldefine和`endcelldefine預編譯指令如果用systemverilog,就選上檢測源代碼與IEEE1364的兼容性。若我們要用另一些仿真器或者綜合器,就選上編譯(compiling)源文件我們必須先對兩個源文件進行編譯,在編譯過程中,ncverilog會自動查找設計中的錯誤,并在I/ORegion中顯示出紅字,提示錯誤的原因。先人為的往設計源文件中加入錯誤,讓編譯器去查找。通過在終端鍵入geidt51_timer.v打開源文件,并加入錯誤如下圖:提示出錯的原因編譯命令按鈕通過編譯的源文件加入到worklib中描述(elaborate)你的設計要描述(elabrate)你的設計,典型的你要展開你的庫(worklib),選擇頂層(top-level)的單元,然后選擇描述(elabrate)按鈕。對描述器進行設置若只有一個模塊包含了時間表的編譯指示。因為其它模塊都沒有定義時間表,為了防止elaborator報錯,這里啟動OtherOption選項然后再文本框輸入-timescale1ns/1ns
-timescale1ns/1nsAccessVisibility按鈕選中并且它的值是All,這個選項意味著全部存?。ㄗx,寫,連接探測)來仿真目標,這樣你就可以在仿真的數(shù)據(jù)庫里面探測目標和范圍,調(diào)試你的設計。選擇描述(elabrate)按鈕仿真的snapshot
啟動Simulator1.展開Snapshots文件夾,以顯示在你的庫中你可以選擇的snapshot。
2.選中你想要仿真的snapshot
3.按下仿真按鈕就會自動跳出仿真器,會出來兩個瀏覽器設計瀏覽器(DesignBrowser)和控制窗口(Consolewindow)
控制窗口(Consolewindow)
可以運行tcl命令和simvison命令,自由選擇可以運行tcl命令和simvison命令,自由選擇設計瀏覽器(DesignBrowser)設計仿真Simulator命令在仿真過程中對設計進行探測,然后它把探測目標的值存入數(shù)據(jù)庫。有兩種類型探測的命令:·探測一個特殊的目標或多個目標。這些特殊目標的值存在數(shù)據(jù)庫中。·探測一個特殊的范圍或多個范圍。你可以選擇你想存儲的信息類型,比如說,這個范圍內(nèi)的輸入信號,你能決定探測的是探測一些還是全部的范圍。輸入,輸出,內(nèi)部寄存器展開可以看到設計的層次結(jié)構(gòu)選擇菜單Simulation--〉CreateProbeSimVision打開Probe的設置窗口,這個窗口允許你選擇一層或者多層子范圍,選擇你要探測的信號類型,然后記錄探測信息到任何數(shù)據(jù)庫。選擇Includesub-scopes下拉菜單中的all選項以包含所有設計的子域
選擇Includewithineachscope下拉菜單中的all選項以包含輸入,輸出和端口
點擊run提示當你完成了這些步驟,你的工作目錄下面將會出現(xiàn)一個新的名為waves.shm
的目錄,它里面包含了waves.dsn和waves.trn兩個文件。如果它們的大小分別遠小于65500bytes和360bytes,那么在仿真過程中你就沒有探測到了所有的目標。為了糾正問題,在控制窗口(consolewindow)中選擇Simulation—〉ReinvokeSimulator重新啟動simulator或者退出simulator再用下面的命令重新啟動simulator:ncsim-gui
worklib.timer_test:module然后重新執(zhí)行剛才講的幾個步驟。SHM:波形數(shù)據(jù)庫SHM:波形數(shù)據(jù)庫仿真歷史管理器(SimulationHistoryManager,SHM)數(shù)據(jù)庫記錄用戶的設計在仿真時數(shù)據(jù)信號的變化。只記錄用戶要觀察(probe)的信號。
用戶必須在仿真前(時間0前)設置探針信號才能看到信號在仿真過程中全部變化。如果沒有對其進行設置,仿真器會默認產(chǎn)生一個波形數(shù)據(jù)庫waves.shm.里面探測的信號是加到波形窗口上的信號。在波形窗口(waveformwindow)中,在波形數(shù)據(jù)的上方,你可以看到當前窗口中仿真的數(shù)據(jù)的啟始和終止時間。在波形數(shù)據(jù)的下方的滾動條顯示的是整個仿真的時間。你可以通過輸入一個新的時間范圍來調(diào)整當前窗口中顯示的波形數(shù)據(jù)的范圍。在TimeRange文本框中輸入一個時間段.在這個例子中,輸入的是0:2000
在TimeRange文本框中輸入一個時間段.在這個例子中,輸入的是0:3000
菜單中選擇Keepthisview,這樣你就可以保存你的縮放設置,下次可以直接觀察在波形數(shù)據(jù)上方的下拉菜單中選擇Keepthisview,這樣你就可以保存你的縮放設置。任意時刻,你能通過下拉菜單選擇來快速地回到顯示這個縮放段可拖動指標到想要探測的時間點
輸入一個新的仿真時間:
·可拖動指標到想要探測的時間點,也可以在指標時間輸入文本框中輸入一個仿真時間來實現(xiàn)目的??刂撇ㄐ螖?shù)據(jù)的顯示方式(進制or顏色)控制波形數(shù)據(jù)的顯示當觀察一個波形的時候,有時候把信號的值顯示成ASCII碼串很有用。本設計中為了觀察2個定時器的工作模式,用ASCII碼更直觀高效。要把信號定義信號值為ASCII串,需要定義一個mnemonicmap。1.選擇Windows—〉Tools—〉MnemonicMaps打開MnemonicMaps的屬性設置窗口設置得到顯示結(jié)果設計的調(diào)試波形顯示窗口(waveformwindow)可以幫助你找到設計中的錯誤。通過定義環(huán)境,情況來觀察波形數(shù)據(jù),從而找到錯誤發(fā)生的地方。當你找到了錯誤的地點,你就可以對設計的源文件進行編輯,然后再運行simulator來檢驗你改變后的程序。搜尋波形中的環(huán)境,情況環(huán)境,情況是一個你想要觀察的在波形窗口(waveformwindow)中的信號的值的組合。比如說,你可以定義一個環(huán)境發(fā)生的條件是TF0信號和TF1信號的值是一樣的時候:1.在波形窗口(waveformwindow)中選擇TF0和TF1信號,然后選擇Edit–〉Create—〉Condition.2.ExpressionCalculator創(chuàng)建一個默認的由AND(與)邏輯組成的等式3.命名新加的調(diào)試信號,并按 把信號加到波形中去TF1ANDTF0先選中加入的信號,然后再search選value=1,即可查到創(chuàng)建自定義的仿真數(shù)據(jù)查看另一個分析仿真結(jié)果的方法是運用Register窗口,在那里可創(chuàng)建自定義的仿真數(shù)據(jù)的查看,包括自由形式的文本輸入以及圖形化的要素。一個Register窗口可以有幾頁,每頁都有自己的顯示方式。
在Register窗口中創(chuàng)建頁:1.在波形窗口(waveformwindow)中選擇你想要分析的信號2.點擊ClicktheRegister按鈕,以便把信號送入到Register窗口中去使用schematictracer對設計進行觀察選擇Windows—〉Tools—〉schematictracer打開schematictracer窗口或點擊修改源代碼中的錯誤你可以利用SimVision按照以下的步驟來查找有源文件有錯誤的地方:在波形窗口(waveformwindow),選擇M1M0_0變
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 離婚財產(chǎn)合同范本模板
- 合股餐廳合同范本
- 輪胎店轉(zhuǎn)讓合同范本
- 醫(yī)美會員合同范本模板
- 紡織原料采購合同范本
- 企業(yè)向個人租房合同范本
- 危險廢物管理處理合同范本
- 單位采購空調(diào)合同范本
- 個人債權(quán)轉(zhuǎn)讓合同范本
- 裝飾設計合同范本
- 小學二年級有余數(shù)的除法口算題(共300題)
- 北京市矢量地圖-可改顏色
- 幼兒園故事繪本《賣火柴的小女孩兒》課件
- 【冠心病探究文獻綜述2000字】
- 幼兒園大班音樂活動《小籬笆》
- 高中化學競賽-中級無機化學--金屬原子簇word版本
- 銀行對賬單(共9頁)
- 企業(yè)職工流動登記表格模板(最新)
- KET核心詞匯中文加音標_完整版
- 從聚焦課堂到關(guān)注教育教學全過程PPT課件
- 江蘇雨水泵站工程深基坑土方開挖施工專項方案
評論
0/150
提交評論