




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。VerilogtutorialCE309B5-CandenceNC-Verilogsimulatortutorial第一章介紹這個(gè)手冊將向你介紹使用NC-Verilogsimulator和SimVision。本文使用的是一個(gè)用Veilog硬件編程語言編寫的一個(gè)飲料分配機(jī),通過這個(gè)例子你將學(xué)會:編譯Verilog源文件,描述設(shè)計(jì),在NC-Launch(用于管理你的大型設(shè)計(jì)的圖形交互接口)上進(jìn)行設(shè)計(jì)的仿真。NCLaunch幫助你配置和啟動編譯器,描述器和仿真器。當(dāng)然你還可以在NCLaunch上運(yùn)行像SDFc
2、ompiler,HDLAnalysisandLint,CodeCoverageAnalyzer,NCBrowse,andComparescan.之類的工具。在SimVision分析環(huán)境下進(jìn)行對設(shè)計(jì)中的問題的調(diào)試。SimVision是一個(gè)candence仿真器統(tǒng)一的圖形化的調(diào)試環(huán)境。SimVision可以用于調(diào)試用verilog,vhdl,SystemC或者它們混合寫成的數(shù)字,仿真,或數(shù)?;旌想娐返脑O(shè)計(jì)。你可以在以下幾種模式運(yùn)行SimVision:Simulate模式在Simulate模式下你可以實(shí)時(shí)的看到仿真的數(shù)據(jù)。也就是說,你可以在仿真仿真的過程中就進(jìn)行數(shù)據(jù)的分析。你可以通過對設(shè)計(jì)設(shè)置斷點(diǎn)和
3、分步來達(dá)到控制仿真的。為了幫助你追蹤整個(gè)仿真過程,SimVision提供了幾個(gè)工具:控制臺窗口ConsoleWindow源瀏覽器SourceBrowser設(shè)計(jì)瀏覽器DesignBrowser循環(huán)閱讀器CycleViewer原理圖追蹤SchematicTracer信號流瀏覽器SignalFlowBrowser波形窗口WaveformWindow寄存器窗口RegisterWindow這些窗口之間是連接了的,所以如果你在一個(gè)窗口中選中了一個(gè)對象,那么在其它窗口中也會被選中。Post-processingenvironment(PPE)模式在PPE模式下,對仿真結(jié)果數(shù)據(jù)的分析是在仿真過程結(jié)束了后進(jìn)行的
4、。除了仿真器之外,你能訪問所有的SimVision的工具。就像Simulator模式中一樣,這里所有的窗口也是連接了的,你在一個(gè)窗口中選擇了的目標(biāo)也會在其它窗口中選中。要在PPE模式下運(yùn)行,你必須先對設(shè)計(jì)進(jìn)行仿真,然后把仿真的資料存到一個(gè)文件中,你可以隨時(shí)從simulation模式切換到PPE模式,但是不能在PPE模式切換到simulation模式中去。本指南將向你介紹SimVision的主要幾個(gè)工具:控制臺Consolewindow:Consolewindow允許你輸入tcl仿真的命令和SimVision的命令。DesignBrowser:DesignBrowser讓你進(jìn)入設(shè)計(jì)的各層,以及信
5、號和變量的數(shù)據(jù)庫。Registerwindow:Registerwindow讓你可以使用一個(gè)開放式的圖形編輯器來定義一些記錄簿,每個(gè)都包含了一個(gè)自定義的仿真數(shù)據(jù)的觀點(diǎn)。SignalFlowBrowser:SignalFlowBrowser讓你追蹤信號的變化。SourceBrowser:SourceBrowser讓你可以看到設(shè)計(jì)的源代碼。Waveformwindow:Waveformwindow把仿真的資料在X-Y坐標(biāo)系里面描繪出來。數(shù)據(jù)通常被顯示為值和時(shí)間的關(guān)系,但是它也可以是已經(jīng)記錄下了的數(shù)據(jù)。飲料機(jī)的例子飲料機(jī)由以下幾個(gè)模塊組成:Drink-machine:用于計(jì)算用戶給了的錢,對飲料進(jìn)行
6、分發(fā),并且給用戶找錢。Coin-counter:用硬幣和機(jī)器相連,并且確定機(jī)器什么時(shí)候沒有找頭了。Can-counter:用飲料和機(jī)器相連,并且確定機(jī)器什么時(shí)候沒有飲料了。這個(gè)例子同樣有一個(gè)測試模塊,它用于初始化飲料機(jī)并且用nickel(五美分),dime(十美分),quarter(二十五美分)的不同組合對機(jī)器進(jìn)行投幣來買飲料。對于接受硬幣和分發(fā)飲料的行為被建模成一個(gè)狀態(tài)機(jī)。用戶已經(jīng)投入的硬幣總量決定了當(dāng)前的狀態(tài)。接下來用戶投入的硬幣的類型決定了下一個(gè)狀態(tài)。舉例來說,當(dāng)沒有錢投入的時(shí)候,機(jī)器處于空閑狀態(tài)。當(dāng)用戶投入一個(gè)nickel的時(shí)候,機(jī)器進(jìn)入下一個(gè)狀態(tài)five。當(dāng)當(dāng)前狀態(tài)是five的時(shí)候用
7、戶又投入了一個(gè)quarter,機(jī)器就進(jìn)入了下一個(gè)狀態(tài)thirty。當(dāng)用戶投入的錢到了五十美分的時(shí)候,機(jī)器就分發(fā)一罐飲料,同時(shí)進(jìn)入空閑狀態(tài)。當(dāng)用戶投入的錢超過了五十美分的時(shí)候,機(jī)器分發(fā)一罐飲料,找回零錢,然后進(jìn)入空閑狀態(tài)。表11飲料機(jī)的狀態(tài)表當(dāng)前狀態(tài)變化值下一狀態(tài)idle4d0nickel_indime_inquarter_infive4d1ten4d2twenty_five4d5five4d1nickel_indime_inquarter_inten4d2fifteen4d3thirty4d6ten4d2nickel_indime_inquarter_infifteen4d3twenty4d4
8、thirty_five4d7fifteen4d3nickel_indime_inquarter_intwenty4d4twenty_five4d5forty4d8twenty4d4nickel_indime_inquarter_intwenty_five4d5thirty4d6forty_five4d9twenty_five4d5nickel_indime_inquarter_inthirty4d6thirty_five4d7fifty4d10thirty4d6nickel_indime_inquarter_inthirty_five4d7forty4d8nickel_out4d11thirt
9、y_five4d7nickel_indime_inquarter_inforty4d8forty_five4d9dime_out4d12forty4d8nickel_indime_inquarter_inforty_five4d9fifty4d10nickel_dime_out4d14forty_five4d9nickel_indime_inquarter_infifty4d10nickel_out4d11two_dime_out4d14fifty4d10idlenickel_out4d11idledime_out4d12idlenickel_dime_out4d13idletwo_dime_
10、out4d14idle更多的信息SimVision還提供了其它的沒有在這個(gè)指南里面用到的工具。工具/Feature介紹原理描述器顯示了用Verilog或者Vhdl編寫的設(shè)計(jì)的原理圖,可以讓你描述在設(shè)計(jì)中的信號。在SimVision的用戶指南里面看12章,看一個(gè)設(shè)計(jì)的示意圖。SimulationCycleDebuggerSimulationCycleDebugger讓你在一個(gè)仿真過程中,在各個(gè)時(shí)間點(diǎn),DeltaCycle,仿真階段,或者是時(shí)間進(jìn)行過程中停止。它對于Verilog-XL或者AMS是不可用的看SimVision用戶指南的11章:在DeltaCycle層面上進(jìn)行調(diào)試開始在你仿真你的設(shè)計(jì)
11、以前,你必須編譯和描述它。編譯過程將把源文件中的用HDL編寫的單元編譯成內(nèi)在的描述。描述設(shè)計(jì)將在設(shè)計(jì)的實(shí)例化,結(jié)構(gòu)化信息的基礎(chǔ)上建立設(shè)計(jì)的層次結(jié)構(gòu),建立信號的連接,計(jì)算所有對象的初始值。你編譯,描述和仿真你的設(shè)計(jì)要用到以下的工具:Ncvlog:編譯Verilog源文件。ncelab描述設(shè)計(jì)并且生成仿真的snapshot。ncsim對snapshot進(jìn)行仿真仿真。當(dāng)然你也可以利用ncverilog的命令以一步實(shí)現(xiàn)(single-step)的模式來運(yùn)行NC-Verilog。你也可以使用單一的工具,NCLaunch一個(gè)可以幫助你建立大型的設(shè)計(jì)工程的用戶圖形接口平臺。NCLaunch幫助你配置和啟動仿
12、真的工具。你可以在多步實(shí)現(xiàn)(multi-step)或者單步實(shí)現(xiàn)(single-step)的模式下運(yùn)行這些工具。它也可以讓你打開Comparescan,SDFCompiler,HDLAnalysis和Lint,CodeCoverageAnalyzer,NCBrowse,以及其它仿真仿真的工具。這個(gè)指南將向你展示怎么在多步實(shí)現(xiàn)(multi-step)的模式下使用NCLaunch??截愔改系臄?shù)據(jù)本例的所有源文件包含在Candence的安裝包中。源文件在下面的這個(gè)地址:install_dir/doc/ncvlogtut/examples建立一個(gè)新的檔夾(比圖說:tutorial),然后拷貝指南的文件到
13、這個(gè)檔夾。例:mkdirtutorialcdtutorialcpinstall_dir/doc/ncvlogtut/examples/*.啟動NCLaunch在你拷貝了指南的源文件的那個(gè)檔夾下啟動NCLaunch:nclaunch-new&-new選項(xiàng)指名你想要在一個(gè)新的設(shè)計(jì)(design)下面進(jìn)行接下來的工作。NCLaunch將出現(xiàn)一個(gè)你能運(yùn)行這個(gè)工具的模式的列表,如圖2.1。圖2.1NCLaunch運(yùn)行模式選擇多步模式(MultipleStep)使用ncvlog和ncelab命令來編譯和描述你的設(shè)計(jì);單步模式(SingleStep)使用ncverilog命令。選擇MultipleStep.
14、NCLaunch顯示的主窗口如圖2.2:圖2.2NCLaunch主窗口左邊的窗口顯示了當(dāng)前目錄下的所有的文件,在你編譯和描述了設(shè)計(jì)以后,右邊窗口就會顯示設(shè)計(jì)的庫。上面是菜單和一些用于啟動工具的按鍵。編譯(compiling)源文件在你仿真仿真你的設(shè)計(jì)以前,你必須用編譯器編譯源文件,并且用描述器(elaborator)把設(shè)計(jì)描述成snapshot的形式。Snapshot是仿真器將調(diào)用的你的設(shè)計(jì)的表述,它和其它由compiler和elaborator產(chǎn)生的中間目標(biāo)一起保存在庫中。NCLaunch的主窗口讓你可以連接你編譯和描述設(shè)計(jì)所需要的工具,當(dāng)然還有其它的程序。你利用Tools和Utilitie
15、s菜單,或者你也可以利用工具欄里面的工具按鈕,你可以打開工具和其它程序。不是所有的工具和程序都放在工具欄里面,但是你可以通過自己定義工具欄來確定把自己喜歡的工具和程序放在工具欄里面。表2-1例出了在工具欄里面的工具。表2-1NCLaunch工具欄的按鈕按鈕工具VHDL編譯器(compiler)Verilog編譯器(compiler)描述器(Elaboretor)仿真/仿真器(Simulator)NC瀏覽(NCBrowse)波形察看窗口(WaveformWindow)1編譯你的設(shè)計(jì):選中在設(shè)計(jì)時(shí)建立的Verilog文件:can_counter.vcoin_counter.vdrink_machi
16、ne.vdrink_machine_top.vtest_drink.v.要選擇多個(gè)檔,需要按住Ctrl鍵并選中每個(gè)檔。2按下編譯器按鈕:在窗口底部的輸入輸出區(qū)域會顯示由于你的選擇而輸入的命令和運(yùn)行后的結(jié)果,同時(shí)它也顯示了NC-Verilog在編譯過程中的消息。默認(rèn)的,NC-Verilog將產(chǎn)生一個(gè)叫INCA_libs的目錄以及一個(gè)叫worklib的目錄。所有設(shè)計(jì)中的模塊都將編譯在worklib目錄下面。注意INCA_libs現(xiàn)在就出現(xiàn)在了NCLauch左邊的瀏覽器中,同時(shí)設(shè)計(jì)的庫worklib也加入了庫瀏覽器(右邊窗口)中。描述(elaborate)你的設(shè)計(jì)要描述(elabrate)你的設(shè)計(jì),
17、典型的你要展開你的庫(worklib),選擇頂層(top-level)的單元,然后選擇描述(elabrate)按鈕。盡管如此,為了做一個(gè)指南,這里在你描述以前你必須設(shè)置一些選項(xiàng)。按照以下幾步進(jìn)行選項(xiàng)的選擇然后描述你的設(shè)計(jì):1通過電擊帽子圖示旁邊的加號展開工作庫(worklib)2展開頂層設(shè)計(jì)單元,在這個(gè)例子中,頂層設(shè)計(jì)單元是一個(gè)Verilog的測試模塊:test_drink.3選擇module4選擇Tools-Elaborator以打開Elaborate模式,如圖2.3注意這里的AccessVisibility按鈕選中并且它的值是All,這個(gè)選項(xiàng)意味著全部存?。ㄗx,寫,連接探測)來仿真目標(biāo),這
18、樣你就可以在仿真的數(shù)據(jù)庫里面探測目標(biāo)和范圍,調(diào)試你的設(shè)計(jì)。注意:在使用NCLaunch時(shí),默認(rèn)是可以調(diào)用仿真目標(biāo)的。但是用命令行接口的時(shí)候,進(jìn)入默認(rèn)是關(guān)閉了的,你必須要輸入-access命令來啟動elaborator,例:ncelab-access+rwcworklib.test_drink:module5.在這個(gè)飲料機(jī)中只有一個(gè)模塊包含了時(shí)間表的編譯指示。因?yàn)槠渌K都沒有定義時(shí)間表,為了防止elaborator報(bào)錯(cuò),這里啟動OtherOption選項(xiàng)然后再文本框輸入-timescale1ns/1ns,如圖2.3:6.按下OK以開始描述(elaborate)設(shè)計(jì)。底部的輸入輸出窗口顯示了nc
19、elab命令,它就是由于你的選擇而輸入的命令,然后還顯示了theelaboratorgenerates的消息。提示如果你收到了elaboratorerror的消息你可能是由于在運(yùn)行這幾步的時(shí)候出錯(cuò)了。例如:你是不是選擇了正確的設(shè)計(jì)單元名稱?是否記得設(shè)置-timescale的選項(xiàng)當(dāng)你收到了錯(cuò)誤的消息以后重新進(jìn)行這些步驟。啟動Simulator為了啟動simulator:1展開Snapshots文件夾,以顯示在你的庫中你可以選擇的snapshot。2選中你想要仿真的snapshot,如圖2.4圖2.4選中要仿真的snapshot按下仿真按鈕設(shè)計(jì)瀏覽器(DesignBrowser)和控制窗口(Con
20、solewindow)就會出現(xiàn)。你可以在設(shè)計(jì)瀏覽器(DesignBrowser)中進(jìn)入設(shè)計(jì)的各個(gè)層,你也可以在控制窗口(ConsoleWindow)輸入命令來進(jìn)入SimVision和TclSimulator。圖2.5展示了設(shè)計(jì)瀏覽器(DesignBrowser)打開時(shí)的情況。Simvision把仿真定位在了各層的上面,同時(shí)給它定義了名字叫做Simulator。設(shè)計(jì)的各層的最高層就放置在了仿真的下面。在這個(gè)例子中它就叫做test_drink。圖2.5DesignBrowser在啟動的時(shí)候,控制窗口(ConsoleWindow)有兩個(gè)窗口,如圖2.6。SimVison窗口讓你可以輸入SimViso
21、n的命令;仿真器(simulator)窗口讓你可以輸入Tclsimulator命令。在你運(yùn)行仿真的時(shí)候,控制窗口(consolewindow)同樣會在SimVision和simulation窗口中顯示消息。圖2.6ConsoleWindowVideo:視頻編譯和描述設(shè)計(jì)文件。退出NCLaunch調(diào)用了仿真器(simulator)以后,你就可以退出NCLaunch了。要退出NCLaunch:點(diǎn)擊NCLaunch窗口使之成為當(dāng)前窗口,然后選擇File菜單下的Exit。更多的信息本章向你介紹怎么用NCLaunch讓NC-Verilog運(yùn)行在多步的模式下。其實(shí)還有其它的方法為你的設(shè)計(jì)仿真做準(zhǔn)備。工具/
22、要素描述NCLaunch你可以利用NCLaunchncverilogsupport一步完成編譯源文件,描述設(shè)計(jì),啟動仿真器,見NCLaunchUserGuide。NC-Verilog,MultipleStepmode你可以編譯了源文件,描述了設(shè)計(jì)然后用ncvlog,ncelab和ncsim命令啟動仿真器(simulator),見NC-VerilogSimulatorHelp中的Multi-StepInvocation(Library-BasedMode章節(jié)。NC-Verilog,SingleStepmode你可以用ncverilog命令完成對源文件的編譯和描述。見NC-VerilogSimul
23、atorHelp的Single-StepInvocationwithncverilog章節(jié)第三章設(shè)計(jì)仿真SimVision讓你控制和查詢你的設(shè)計(jì)仿真。他可以幫助你定位和特定的仿真事件相關(guān)的程序段。如果你發(fā)現(xiàn)設(shè)計(jì)中有錯(cuò)誤,你可以直接編輯源文件,重新編譯和描述,而不用離開SimVision的環(huán)境。SimVision中你可以存儲個(gè)別目標(biāo)或者范圍的仿真數(shù)據(jù),這可以使得仿真數(shù)據(jù)盡量的小。晚些時(shí)候,你可以在Waveform中加載仿真數(shù)據(jù)再檢驗(yàn)仿真的結(jié)果。選擇存儲的仿真數(shù)據(jù)你可以執(zhí)行simulator命令來存儲仿真器運(yùn)行過程中的仿真數(shù)據(jù)。Simulator命令在仿真過程中對設(shè)計(jì)進(jìn)行探測,然后它把探測目標(biāo)的值
24、存入數(shù)據(jù)庫。有兩種類型探測的命令:探測一個(gè)特殊的目標(biāo)或多個(gè)目標(biāo)。這些特殊目標(biāo)的值存在數(shù)據(jù)庫中。探測一個(gè)特殊的范圍或多一個(gè)范圍。你可以選擇你想存儲的信息類型,比如說,這個(gè)范圍內(nèi)的輸入信號,你能決定探測的是探測一些還是全部的范圍。要探測所有的模表和范圍,要從模塊的top開始:1.在設(shè)計(jì)窗口中,點(diǎn)擊test_drink圖示旁邊的加號,展開設(shè)計(jì)的層次結(jié)構(gòu)。2.選擇top范圍。在右邊窗口里面的信號的列表列出了top范圍內(nèi)的全部信號,如圖3.1。信號列表顯示了所有輸入信號,輸出信號,輸入輸出信號,內(nèi)部信號,或者事務(wù)級的信號。圖3.1選擇top范圍選擇菜單Simulation-CreateProbeSimV
25、ision打開Probe的設(shè)置窗口,如圖3.2,這個(gè)窗口允許你選擇一層或者多層子范圍,選擇你要探測的信號類型,然后記錄探測信息到任何數(shù)據(jù)庫。圖3.2設(shè)置probe的窗口針對這個(gè)探測:選擇Includesub-scopes下拉菜單中的all選項(xiàng)以包含所有設(shè)計(jì)的子域。選擇Includewithineachscope下拉菜單中的all選項(xiàng)以包含輸入,輸出和端口。取消選中Addtowaveformdisplay。4.點(diǎn)擊OK確認(rèn)probe的設(shè)置然后關(guān)掉窗口。提示如果你在控制窗口(consolewindow)輸入以下信息你就可以成功的創(chuàng)建probe:ncsimdatabase-openwaves-int
26、owaves.shm-defaultCreateddefaultSHMdatabasewavesncsimprobe-createtest_drink.top-depthall-all-shmCreatedprobe15.在控制窗口(consolewindow)中選擇SimulationRun。SimVision就會仿真仿真設(shè)計(jì),然后把仿真的結(jié)果數(shù)據(jù)存在默認(rèn)的數(shù)據(jù)庫里面。在它運(yùn)行的時(shí)候?qū)@示如下信息:ncsimrun400loadingmachinewith5cans400*machineempty!*700enternickel900enterdime1100enterquarter130
27、0enterdime1500enterquarter1500-drinkdispensed-1800enternickel2100enternickel2300enterdime2500enterdime2600*machineempty!*2700enterquarter2700nickelchanged3000enternickel3200enterdime3400enterquarter3600enterdime3800enterquarter3900-drinkdispensed-.-68400enterquarter68700enternickel69000enternickel69
28、200enterdime69400enterdimeSimulationcompletevia$finish(1)attime69600NS+0./test_drink.v:48$finish;ncsim提示當(dāng)你完成了這些步驟,你的工作目錄下面將會出現(xiàn)一個(gè)新的名為waves.shm的目錄,它里面包含了waves.dsn和waves.trn兩個(gè)文件。如果它們的大小分別遠(yuǎn)小于65500bytes和360bytes,那么在仿真過程中你就沒有探測到了所有的目標(biāo)。為了糾正問題,在控制窗口(consolewindow)中選擇SimulationReinvokeSimulator重新啟動simulator或
29、者退出simulator再用下面的命令重新啟動simulator:ncsim-guiworklib.test_drink:module然后重新執(zhí)行本章講的幾個(gè)步驟。更多的信息本章描述了設(shè)置探針(probe)和運(yùn)用控制窗口(consolewindow)來啟動仿真器(simulation)。盡管如此,還有其它的方式來運(yùn)行以上的步驟,如下:Tool(工具)/Feature(內(nèi)容)Description(描述)$shm_open$shm_probe$shm_close你可以在你的Verilog源文件中調(diào)用這些系統(tǒng)任務(wù)。當(dāng)你仿真你的設(shè)計(jì)的時(shí)候,這些系統(tǒng)任務(wù)打開你的數(shù)據(jù)庫,設(shè)置探針到希望的目標(biāo),當(dāng)你仿真結(jié)
30、束的時(shí)候又關(guān)閉數(shù)據(jù)庫。在你的NC-VerilogSimulatorHelp中參閱DisplayingWaveformswiththeSimVisionWaveformViewer章節(jié)以得到這些系統(tǒng)任務(wù)的具體細(xì)節(jié)。database-openprobe-createrun你可以從tcl命令行接口中調(diào)用simulator命令,或者你也可以把它們都打包在一個(gè)命令文件中,以批處理模式來運(yùn)行。參閱你的NC-VerilogSimulatorHelp中probe,database和run的章節(jié)Simulationdatabasemanagement(仿真數(shù)據(jù)管理)為了疹錯(cuò)的方便你可以為不同的設(shè)計(jì)建立包含各自設(shè)
31、計(jì)成份的不同的仿真數(shù)據(jù)庫?;蛘吣憧梢杂闷渌ぞ叽蜷_數(shù)據(jù)庫。查閱SimVisionUserGuide第六章ManagingSimulationDatabasesProbes(探針)你可以打開,關(guān)閉探針,也可以刪除探針,或者你還可以在工具窗口中創(chuàng)建新的探針。當(dāng)然你還可以就在Waveform窗口中增加一個(gè)信號的探針而不用設(shè)置探針的窗口來增加參閱SimVisionUserGuide第七章CreatingandManagingProbes。Breakpoints(斷點(diǎn))或許你想仿真運(yùn)行到某點(diǎn)的時(shí)候就停下來這樣方便你檢查運(yùn)行的狀態(tài)。為了控制仿真在哪里停下可以設(shè)置breakpoint查閱SimVisionU
32、serGuide第八章SettingandManagingBreakpointsSimulationcontrol(仿真控制)你可以運(yùn)行一個(gè)仿真到breakpoint停止,然后進(jìn)入一個(gè)子程序。你也可以存儲仿真的狀態(tài),或者是檢查點(diǎn),然后在那個(gè)點(diǎn)重新啟動仿真。參閱SimVisionUserGuide第十章ControllingtheSimulation第四章以波形的形式研究仿真的資料波形顯示了信號在仿真過程中任意事件的值,它可以幫助你很好地理解你的設(shè)計(jì)的行為波形窗口(waveformwindow)可以讓你選擇你想要看的信號以及它在顯示的時(shí)候的基數(shù),甚至你還可以自己建立一個(gè)顯示的形式,叫做mnemo
33、nicmap(助記符映射),這樣就可以讓圖以你最適應(yīng)的方式顯示。選擇顯示的信號在設(shè)計(jì)瀏覽器(DesignBrowser),你可以選擇目標(biāo)然后把它們放到波形窗口(Waveformwindow)中為了要選擇你想要顯示的信號到波形窗口(Waveformwindow)中:1.點(diǎn)擊EditBuffer按鈕打開editbuffer,如圖4.1。editbuffer讓你可以在不同的范圍內(nèi)選擇目標(biāo),安排他們以你希望的順序顯示,然后把它們都列到波形窗口(Waveformwindow)中去圖4.1打開editbuffer2.在top模塊中選擇你想要在波形窗口(waveformwindow)中顯示的信號。為了取樣檢
34、查,選擇nickel_in,dime_in,quarter_in,dispense,nickel_out,dime_out,two_dime_out,andclk信號。當(dāng)你點(diǎn)擊各個(gè)信號的時(shí)候,SimVision把它們加入到editbuffer中去。3.展開top,然后在vending模塊中選擇current_state把它加入editbuffer中去。4.點(diǎn)擊Waveform按鈕,讓這些信號在波形窗口(waveformwindow)中顯示。5.點(diǎn)擊隱藏EditBuffer按鈕,使editbuffer在設(shè)計(jì)瀏覽窗口收回。DisplayingDataintheWaveformWindow在波形顯示
35、窗口(waveformwindow)中,信號的名字和它們的當(dāng)前值都顯示在了窗口的左邊,它們的波形顯示在了右邊。如圖4.2:圖4.2有波形顯示的波形顯示窗口(waveformwindow)提示你可以在一個(gè)有工具條的波形顯示窗口(waveformwindow)中進(jìn)入設(shè)計(jì)瀏覽或者是設(shè)計(jì)搜索的窗口中去。更進(jìn)一步的講解請查閱SimVisionUserGuide中的UsingtheDesignBrowserSidebar和UsingtheDesignSearchSidebar在波形窗口(waveformwindow)中,在波形數(shù)據(jù)的上方,你可以看到當(dāng)前窗口中仿真的數(shù)據(jù)的啟始和終止時(shí)間。在波形數(shù)據(jù)的下方的滾
36、動條顯示的是整個(gè)仿真的時(shí)間。你可以通過輸入一個(gè)新的時(shí)間范圍來調(diào)整當(dāng)前窗口中顯示的波形數(shù)據(jù)的范圍為了輸入一個(gè)新的范圍:在TimeRange文本框中輸入一個(gè)時(shí)間段.在這個(gè)例子中,輸入的是0:3000,如圖4.3:圖4.3輸入一個(gè)新的時(shí)間段2點(diǎn)擊Enter鍵以應(yīng)用新的時(shí)間段。3在波形數(shù)據(jù)上方的下拉菜單中選擇Keepthisview,這樣你就可以保存你的縮放設(shè)置。如圖4.4:任意時(shí)刻,你能通過下拉菜單選擇來快速地回到顯示這個(gè)縮放段圖4.4存儲一個(gè)波形資料的情景在波形窗口(waveformwindow)中有兩個(gè)指標(biāo),分別叫做TimeA和Baseline。你可以把它們移到仿真時(shí)間的任意點(diǎn),然后以它們?yōu)閰⒖?/p>
37、點(diǎn)。輸入一個(gè)新的仿真時(shí)間:你可以拖動指標(biāo)到你想要探測的時(shí)間點(diǎn),也可以在指標(biāo)時(shí)間輸入文本框中輸入一個(gè)仿真時(shí)間來實(shí)現(xiàn)目的。例,改變TimeA的仿真時(shí)間到16,700ns,如圖4.5:圖4.5設(shè)定指針時(shí)間控制波形數(shù)據(jù)的顯示波形窗口(waveformwindow)讓你可以控制波形數(shù)據(jù)的顯示方式,比如說你想讓信號數(shù)據(jù)在什么進(jìn)制下進(jìn)行顯示。例,要把的current_state顯示變成十進(jìn)制:1.在波形窗口(waveformwindow)的目標(biāo)列表中選擇current_state。2.在FormatRadix/Mnemonic菜單中選中Decimal(十進(jìn)制)當(dāng)觀察一個(gè)波形的時(shí)候,有時(shí)候把信號的值顯示成AS
38、CII碼串很有用。比如說,當(dāng)current_state的值是1的時(shí)候,用戶投入了5美分;當(dāng)current_state的值是2的時(shí)候,用戶投入了10美分。把current_state的波形顯示成5和10比顯示成1和2更容易理解。要把信號定義信號值為ASCII串,需要定義一個(gè)mnemonicmap:1.選擇WindowsToolsMnemonicMaps打開MnemonicMaps的屬性設(shè)置窗口,如圖4.6:圖4.6MnemonicMaps的屬性設(shè)置窗口當(dāng)你定義了一個(gè)mnemonicmap,你不僅可以定義特殊信號的文本顯示方式,而且你還可以定義值在波形窗口(waveformwindow)中的顯示方
39、式,包括波形的形狀,聯(lián)合一個(gè)值的特殊情況的圖示和顏色。2.點(diǎn)擊新建Map按鈕,新建一個(gè)mnemonicmap.3.定義mnemonicmap的第一個(gè)入口,如下:a.改變默認(rèn)的進(jìn)制,點(diǎn)擊h不放然后選擇d.b.雙擊ValuesMatching區(qū)域,輸入0,然后按Tab鍵,進(jìn)入RelabelAs區(qū)域。c.在RelabelAs區(qū)域,鍵入串idle然后按Tab鍵進(jìn)入下個(gè)目標(biāo)的ValuesMatching前面的區(qū)域顯示了Waveform窗口會在current_state等于0的時(shí)候怎么顯示。它將顯示一個(gè)里面寫著idle的長方形。4定義下面的狀態(tài):ValuesMatchingRelabelAs0idle1f
40、ive2ten3fifteen4twenty5twenty_five6thirty7thirty_five8forty9forty_five10fifty11nickel_out12dime_out13nickel_dime_out14two_dime_out5.在名字的區(qū)域里面,改變新的map給current_state。6.點(diǎn)擊Apply按鈕?,F(xiàn)在current_state的十進(jìn)制值0,1,10,等等就被顯示成了idle,five,fifty,等等,如圖4.7:圖4.7由于MnemonicMap信息所顯示的值7.選擇FileCloseWindow關(guān)閉選項(xiàng)窗口。更多的信息本章描述了一些你顯示
41、和組織信息在波形窗口(waveformwindow)中顯示的方法。其它有些工具和內(nèi)容可以對你顯示波形的時(shí)候有幫助:Tool/FeatureDescriptionDesignSearchWindow(搜索窗口)你可以不必關(guān)心各層的結(jié)構(gòu)而在幾個(gè)數(shù)據(jù)庫里面搜索信號,變量和范圍參閱SimVisionUserGuide第五章SearchingforDesignObjectsGroupsandexpressions(組和等式)你可以把信號列到一起或者列在一個(gè)式子里面。這些動作可以讓你把信號的設(shè)置看成一個(gè)信號的實(shí)體參與SimVisionUserGuide第十五章OrganizingSignalsintoGr
42、oups,Expressions,andComparisons。Markers(指針)你可以放置類似于指針的標(biāo)記在仿真的時(shí)間軸上面。你可以在各個(gè)標(biāo)記之間切換以對比仿真在不同時(shí)間的結(jié)果。但是你不能用標(biāo)記與測量的作用。參閱SimVisionUserGuide第十六章,NavigatingthroughSimulationTimeMeasurementwindow(測量窗口)你可以在一個(gè)特殊的仿真時(shí)間點(diǎn)上建立一個(gè)用于測量變量的特征值的平臺。比如說,你可以看它們的范圍,最大值,最小值。在測量相似的信號的性質(zhì)的時(shí)候這個(gè)就非常有用。參閱SimVisionUserGuide第二十章MeasuringSign
43、alValues。Preferences(參數(shù)設(shè)置)你可以指定工具欄在SimVision窗口中的風(fēng)格,設(shè)置波形窗口(waveformwindow)的默認(rèn)值,為源瀏覽器(sourcebrowser)選擇文本編輯器,另外也可以設(shè)置SimVision。參閱SimVisionUserGuide第二十一章SettingPreferencesSimulationCycleDebugger(仿真循環(huán)調(diào)試器)SimulationCycleDebugger讓你可以讓你看到整個(gè)仿真過程,在任意時(shí)間點(diǎn)停止,deltacycle,仿真暫停,或者執(zhí)行預(yù)定進(jìn)程。它對Verilog-XLorAMS的設(shè)計(jì)者來說是不可用的。.
44、參閱SimVisionUserGuide第十一章DebuggingattheDeltaCycleLevel第五章設(shè)計(jì)的調(diào)試波形顯示窗口(waveformwindow)可以幫助你找到設(shè)計(jì)中的錯(cuò)誤。通過定義環(huán)境,情況來觀察波形數(shù)據(jù),從而找到錯(cuò)誤發(fā)生的地方。當(dāng)你找到了錯(cuò)誤的地點(diǎn),你就可以對設(shè)計(jì)的源文件進(jìn)行編輯,然后再運(yùn)行simulator來檢驗(yàn)?zāi)愀淖兒蟮某绦?。搜尋波形中的環(huán)境,情況環(huán)境,情況是一個(gè)你想要觀察的在波形窗口(waveformwindow)中的信號的值的組合。比如說,你可以定義一個(gè)環(huán)境發(fā)生的條件是dispense信號和nickel_out信號的值是一樣的時(shí)候:1.在波形窗口(wavefor
45、mwindow)中選擇quarter_in和dispense信號,然后選擇EditCreateCondition.SimVision將打開ExpressionCalculator,如圖5.1:圖5.1ExpressionCalculator窗口ExpressionCalculator創(chuàng)建一個(gè)默認(rèn)的由AND(與)邏輯組成的等式。這個(gè)狀況表達(dá)式在兩個(gè)信號有相同值的時(shí)候?yàn)檎?。如果你想觀察其它的情況你可以編輯這個(gè)表達(dá)式。2.在名字輸入框中鍵入狀況表達(dá)式的名字,比如說:quarter_inANDdispense.3.點(diǎn)擊波形按鍵,以便把狀況的波形加入到波形窗口(waveformwindow)。4.選擇F
46、ileCloseWindow關(guān)閉ExpressionCalculator窗口。5.在波形窗口(waveformwindow)中選擇這個(gè)狀況,然后運(yùn)用NextEdge和PreviousEdge按鈕用于定為狀況發(fā)生的地點(diǎn)分析波形,找出錯(cuò)誤。分析波形可以幫助你找到設(shè)計(jì)中的問題,例:把仿真的時(shí)間定位到16,700ns。在這個(gè)時(shí)候,機(jī)器的狀態(tài)是空閑提示這里其實(shí)有很多辦法可以設(shè)置仿真時(shí)間。在指標(biāo)時(shí)間文本框中輸入你想要的時(shí)間。拖動第一個(gè)指針到你想要的時(shí)間去選中dispense信號,然后噢點(diǎn)擊NextEdge按鈕移植到它到了你想要的時(shí)間。選中current_state信號然后點(diǎn)擊NextEdge按鍵,以便跟上
47、由時(shí)鐘周期到時(shí)鐘周期的事件先后順序。用戶投入一個(gè)nickel,機(jī)器進(jìn)入下一個(gè)狀態(tài)five。用戶再投入一個(gè)dime,機(jī)器就進(jìn)入了fifteen狀態(tài)。用戶再投入一個(gè)quarter,機(jī)器則進(jìn)入了狀態(tài)forty。用戶再投入一個(gè)dime,機(jī)器進(jìn)入狀態(tài)fifty.在這個(gè)時(shí)鐘周期中,用戶還投入了quarter。你當(dāng)然會希望它會立馬變到狀態(tài)twenty_five,但是實(shí)際上卻不是。機(jī)器進(jìn)入空閑狀態(tài),然后給dispense賦值為1;quarter被忽略了。當(dāng)在下一個(gè)時(shí)鐘周期下開始的時(shí)候,用戶投入了一個(gè)nickel,機(jī)器就裝入狀態(tài)five.圖5.2顯示了錯(cuò)誤發(fā)生的波形。在這個(gè)時(shí)間之內(nèi),機(jī)器出一罐飲料,然后機(jī)器進(jìn)入
48、空閑狀態(tài),quarter_in信號變高電平。當(dāng)用戶再投入一個(gè)neckel的時(shí)候機(jī)器就進(jìn)入了狀態(tài)five。圖5.2查找設(shè)計(jì)中的錯(cuò)誤在TimeRange區(qū)域,在下拉列表中選擇keepthisVie,這樣你就可以很方便的再回來查看這個(gè)錯(cuò)誤的。Video在波形窗口(waveformwindow)中分析仿真結(jié)果。創(chuàng)建自定義的仿真數(shù)據(jù)查看另一個(gè)分析仿真結(jié)果的方法是運(yùn)用Register窗口,在那里你可以創(chuàng)建自定義的仿真數(shù)據(jù)的查看,包括了自由形式的文本輸入以及圖形化的要素。一個(gè)Register窗口可以有幾頁,每頁都有自己的顯示方式。在Register窗口中創(chuàng)建頁:1.在波形窗口(waveformwindow)
49、中選擇你想要分析的信號,比如說,nickel_in,dime_in,quarter_in,dispense,nickel_out,dime_out,two_dime_out,clk,andcurrent_state.2.點(diǎn)擊ClicktheRegister按鈕,以便把信號送入到Register窗口中去,如圖5.3:圖5.3加入信號到Register窗口窗口右邊的按鈕讓你可以在窗口中自由地畫圖形化的目標(biāo),文本,還有管理目標(biāo)布局。當(dāng)你把鼠標(biāo)放在這些按鍵上面的時(shí)候就會有快速提示,告訴你按鍵的作用。3.把mnemonicmap應(yīng)用到register窗口中來,選擇current_state信號然后選擇F
50、ormatRadix/MnemonicCurrentState.4.把目標(biāo)按照你的希望來排列。圖5.4的布局表現(xiàn)了輸入信號nickel_in,dime_in,和quarter_in,和clk-狀態(tài)機(jī),current_state,和輸出信號dispense,nickel_out,dime_out,和two_dime_out之間的關(guān)系。圖5.4一個(gè)自定義的布局5鍵入仿真時(shí)間,比如說16700ns。Register窗口會更新信號的值然后顯示出來。6.選擇一個(gè)信號,比如說current_state,然后點(diǎn)擊NextEdge按鈕。時(shí)間軸會自動運(yùn)行到該選中的信號的下一個(gè)電平邊沿,然后Register窗口會更新各個(gè)信號的值,并把它們的值顯示出來。7.點(diǎn)擊PreviousEdge按鈕,會使得仿真時(shí)間軸向選中信號的前一個(gè)電平邊沿變化。8.在仿真時(shí)間的16700ns開始,選擇current_state信號,然后點(diǎn)擊NextEdge按鈕,就可以在Register窗口中看到和波形窗口(waveformwindow)中看到的一樣的事件隊(duì)列,那是:用戶增加一個(gè)nickel,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育學(xué)會課題申報(bào)書范文
- 旅游文化課題申報(bào)書
- 員工與酒店合同范本
- 寫股權(quán)拍賣合同范本
- 品牌代招合同范本
- 代注冊工商合同范本
- 傳媒 科研課題申報(bào)書
- 公園租賃衣服合同范例
- 合伙辦學(xué)合同范本
- 知網(wǎng)查重課題申報(bào)書
- 基坑工程安全風(fēng)險(xiǎn)辨識
- 法律基礎(chǔ)知識500題及參考答案(滿分必刷)
- 臨床護(hù)理技術(shù)操作常見并發(fā)癥的預(yù)防與處理規(guī)范
- 《建筑施工塔式起重機(jī)安裝、使用、拆卸安全技術(shù)規(guī)程》
- 介入呼吸病學(xué)
- 自建房培訓(xùn)課件甘肅
- 閩教版四年級下冊勞動教案
- 間質(zhì)性肺炎患者的護(hù)理健康評估
- 中小學(xué)必背飛花令詩詞-(春、月、風(fēng)、花、山、江、人、日、動物、顏色、數(shù)字)
- 【海信電器員工流失現(xiàn)狀調(diào)查及其原因和完善策略10000字】
- 北師大版小學(xué)數(shù)學(xué)六年級下冊全冊一課一練課課練(含答案)
評論
0/150
提交評論