1入門
本章描述了怎樣開始使用DVE
它涵蓋以下內容:
• 基本要求
• 啟用調試
• 調用DVE
• 在命令行運行仿真
• 在GUI界面運行仿真
• 保存會話或佈局圖
• 載入已保存的會話
• 關閉數據庫
• 調用DVE
基本要求:
您必須使用相同版本的VCS和DVE,以確保任意仿真中任意問題都能調試。
查詢該DVE版本的三種方法:
• 在命令行選項中鍵入dve –v。
• 在DVE的命令行輸入gui_get_version指令。
• 使用Help>About幫助菜單選項。
啟用調試
本節介紹如何調用調試選項來進行仿真。 注: 如果你在一個不能寫入數據的文件夾中運行DVE,DVE將不能夠記錄日誌文件。這種情況下DVE將警告您不能夠寫入DVE文件。
編譯時間選項
-debug
調用UCLI,併為DVE的基本調試建立必要的文件
-debug_all
調用UCLI和DVE,併為進一步的DVE調試建立必要的文檔。它加入了單步調試、內存釋放、和基於斷言的調試。
-debug_pp
創建一個VPD文件(當與VCS系統任務$vcdpluson一起使用的時候)並且用-
必要文件
DVE啟動它的調試功能需要如下的輸入文件:
• VPD文件 - VPD文件是平臺獨立的,在仿真中你可以在這個根目錄下抽取選定的信號。DVE在這些文件裡可以得到層次化的、改變值的、和一些斷言的信息。基本的調試只用一個VPD文件就能在後臺(post-processing)進行。然而,VPD文件不能保證設計的所有層次都包涵在內,因為用戶可以有選擇地選擇將設計的一些子模塊存放在VPD文件中。 VPD文件是平臺獨立的。 VPD文件是有版本要求的。如果您使用相同版本的VCS和DVE來讀寫VPD文件時是沒有問題的。然而 ,如果你使用DVE從一個比它版本老的VCS中讀取VPD文件時,它就不能保證所有的DVE的功能都能使用或執行正確。注:為了保障DVE調試的功能性,用一個編譯時間選項(-debug,-debug_pp
• MDB庫文件。DVE用MDB庫來保證信息的連通性。DVE需要MDB信息為了原理圖和所有的驅動和負載有關的調試。MDB庫文件將被存放在運行模擬的文件夾內。MDB文件是依附於平臺的(因此為了應用DVE必須和MDB庫在同一平臺上運行)。更嚴格地說,為了確保操作的正確性,VPD文件和MDB庫應該都由相同的仿真產生。
• OVA庫。DVE用這個庫是為了進行更高級的斷言調試。當VCS的編譯選項都用的正確並且一個設計中包含了OVA/SVA/PSL的斷言方法時才能生成這個庫。這個庫也是依附於平臺的。
• 覆蓋率數據庫(coverage databases).在DVE中你需要指定3種類型的coverage databases當中的一種來顯示覆蓋信息。如果其他類型的覆蓋也存在,DVE也會將他們打開。
你可以選擇下面2種類型的數據庫中的任意一種:
- 一個代碼覆蓋率的文件夾(被VCS或VCS MX在Verilog頂層設計中默認為simv.cm或者時被VCS MX在VHDL頂層設計中默認為scsim.cm)。
- 一個Open Vera 或SystemVerilog斷言庫文件夾(被VCS默認為
調用DVE
這節描述了怎樣調用DVE。
dve –help
顯示DVE基本的指令
dve –help all
顯示所有的DVE指令
dve –v|-V
顯示版本信息
64位技術支持平臺
-full64
當你已經指定平臺的時候,在運行時間輸入就能夠啟動64位的DVE功能。為了達到64位的支持,輸入下面指令:
dve –full64
可以輸入下面指令中的一個來指定平臺:
- linux RH3.0 64-bit:
Sentenv VCS_TARGET_ARCH amd64
- SuSE9 64-bit:
Sentenv VCS_TARGET_ARCH suse64
- Solaris 64-bit;
Setenv VCS_TARGET_ARCH sparc64
後臺處理程序:
dve
不帶參數,打開並且清空了一切DVE的頂層窗口。在這裡DVE能夠在後臺或交互式的模式下進行使用。
dve –vpd filename
打開DVE並且讀入在命令行給出的VPD文件,併為設計打開一個頂層視圖。
dve –vpd filename –session filename
打開DVE並且讀入在命令行給出的VPD文件,它們打開一個以前保存過的TCL文件的會話。
交互式界面
dve –nogui
啟動了UCLI模式進行調試。DVE的GUI界面是不顯示的。
sim –ucli
運行VCS/VCS MX來幫助UCLI調試,DVE GUI不能被顯示出來。
simv –gui
在simv仿真的0時刻打開DVE。
vcs –gui –R
與上面相同但是是在編譯時調用。
dve –toolexe name –toolargs simulator args
運行一個與模擬器相連的DVE,這個模擬器的名叫name並且運行DVE的時候具有在模擬器中指定的
simv –gui –tbug
調用集成平臺進行調試。
腳本命令(Scripts):
dve –cmd "cmd"
啟動DVE並且執行括在雙引號中的TCL指令。當需要執行多條指令的時候是允許用分隔號的。
dve -script name
啟動DVE並且讀入由name所指定的TCL腳本文件。
dve –session name
啟動DVE並且讀入一個會話文件(session)。如果-session和-script選項一起使用的話,先執行會話命令後執行腳本命令。
DVE的日誌文件
調用DVE的時候會在文件夾裡生成下面2個日誌文件(log files)。這些日誌在有問題的情況下反饋給Synopsys公司是非常有用的。
• dve_gui.log –包含所有通過控制檯日誌的輸入和輸出。
• dve_history.log –包含了發生在調試會話週期中的所有指令。這個文件對記錄腳本再運行是非常有幫助的。
在命令行運行仿真
DVE與VCS, SystemVerilog, 和NTB (OV 和 SV)
運行DVE,你必須在編譯時調用它。你可以用-debug,-debug_all或者-debug_pp屬性來調用DVE,或者將DVE設置成默認的命令行界面。
一起運行DVE和VCS,需要輸入帶有DVE使能的VCS命令行選項。
vcs (-debug | -debug_all | -debug_pp) [-sverilog] [-ntb] [VCS_options] design.v [testbench_files]
simv -gui [runtime_options]
VCS MX和VHDL
純粹的VHDL
運行一個帶有DVE的VHDL仿真,需要輸入一個帶有DVE使能選項的VCS MX指令:
vhdlan design.vhd
scs cfg_tb (-debug | -debug_all)
scsim -gui [runtime_options]
一個擁有Verilog為頂層文件的混合仿真
運行一個Verilog為頂層文件的Verilog/VHDL的混合仿真時,輸入下面帶有DVE使能選項的指令(options enabling DVE):
vcs -mhdl (-debug | -debug_all) [options] design.v
simv -gui [runtime_options]
一個擁有VHDL為頂層文件的混合仿真
運行一個VHDL為頂層文件的Verilog/VHDL混合仿真,輸入下面帶有DVE使能選項的命令:
vlogan Verilog_files [options]
vhdlan vhdl_filename -vlib Verilog
scs cfg_tb (-debug | -debug_all) -verilogcomp "options"
scsim -gui -verilogrun "-q" [options]
檢查點還原的方法
當保存和還原一個仿真的時候,用相同的技術或流程來還原你曾經保存的檢查點(checkpoint),例如:
• 應用UCLI指令保存和還原
• 在DVE中保存和還原
• 應用SCL指令保存和還原
• 應用CLI指令保存和還原
千萬不要將保存和還原的指令相互之間弄混,例如:
• 用UCLI指令保存卻用SCL指令還原
• 在DVE中保存卻用CULI指令還原
• 保存用UCLI指令卻用DVE還原
• 用CLI指令保存卻用UCLI指令還原
並且如果你正在提交一個用VHPI或PLI與VCS MX通信的外部申請,並且已經有文件為了這個申請被打開了,在你還原後你必須在你下次保存或者打開之前將這些文件關掉。
C,C++,和System C代碼
以下步驟主要概括了用UCLI去調試VCS或是VCS MX上的那些含有C,C++,和SystemC的源代碼的仿真。
像通常那樣編譯包含C,C++,和System C模塊的VCS或VCS MX,確保所有的你要調試的C文件都被編譯到。
例如,一個有Verilog在C或C++模塊頂層的設計:
gcc -g [options] -c my_pli_code.c
vcs +vc -debug_all -P my_pli_code.tab my_pli_code.o
或者一個有Verilog在SystemC模塊頂層的設計:
syscan -cflags -g
syscan -cpp g++ -cflags "-g" my_module.cpp:my_module
vcs -cpp g++ -sysc -debug_all top.v
注意你必須用-debug或-debug_all來調用調試功能。
在DVE中打開仿真
Simv –gui
3、選擇Simulator > C/C++ Debugger來啟動C調試器。
在GUI界面運行仿真
你可以在GUI界面打開DVE並且運行仿真。
後臺處理程序(Post-processing)
對於後臺處理程序來會說你可載入並且顯示任何數目的VPD文件。在DVE中打開一個數據庫文件:
做下面兩個操作中的任意一個:
- 在
- 在工具欄點擊
圖標。
打開數據庫文件的對話框就出現了
2、在打開數據對話框裡,翻閱到並且選擇你要載入的VPD文件。
3、為你的設計輸入或選擇一個名字。
4、輸入時間範圍來載入。默認的是從仿真開始到結束。
5、點擊Open
DVE就載入了所選的VPD文件。
創建並且運行一個交互式的會話
另外為了後臺處理載入的VPD文件,你也可以應用一個編譯過的Verilog,VHDL,或是二者的混合設計,來實時的創建並且交互式的運行一個仿真。
在命令行打開DVE
%dve
選擇Simulator>Setup,然後從模擬器的創建對話框選擇開始仿真。
翻到一個模擬器的可執行界面(simulator excutable).
輸入模擬器的屬性。
設置這個VPD文件的名字或選擇一個已存在的文件,該文件將會在交互式的會話中被寫入。
點擊OK創建仿真。
運行仿真
這節描述了應用DVE來運行並且控制仿真。
涵蓋了下面的幾方面內容:
-工具欄的應用
-仿真其菜單命令的應用
-命令行選項的應用
工具欄的應用
當開始一個仿真的時候,DVE激活了工具命令行來運行和控制仿真。在模擬器中點擊下面這些圖標來控制仿真。
模擬器(Simulator)菜單命令的應用
在開始仿真後,可以用菜單命令來運行和控制仿真程序。選擇下面的命令來控制仿真:
命令行的應用
用DVE頂層窗口底部的命令行進入DVE,並且統一命令行界面(UCLI)運行並且控制仿真的執行。圖1-2展示了在哪輸入指令並且有結果顯示在命令行上面的日誌文件(Log tab)裡。
查看DVE的指令可以輸入:
help –gui
應用UCLI時為了得到完整的信息,注意統一的命令語言的用戶嚮導。例如一個快速視圖查看的UCLI指令和它的應用,在DVE命令行快速的輸入:
help –ucli [argument]
當輸入沒有指定屬性的時候,UCLI的指令列表和一個簡短的描述就被顯示出來了。輸入一個命令名作為屬性的時候,描述和指令的規則就被顯示出來了。
UCLI指令和詳細的描述被顯示出來。
保存會話或佈局圖
用保存會話對話框來存儲(preserve)會話數據顯示圖和VPD路徑選項。
1、選擇 Select File>Save Session
2、在保存會話對話框中為該會話輸入一個文件名
3、在選項上進行選擇來指定會話的類型後保存:
- 所有的會話數據包括佈局圖、波形列表、數據庫和仿真狀態。
- 窗口布局圖保存了窗口協議(arrangement)、外觀(views)、和窗格為了今後的複用。這個選項不會保存任何的數據內容。
- 所有組裡面的全部信號保存了所有信號組的信號列表。
- 對於觀看一個波形或列表來說,只有為了觀看的信號列表保存了信號信號列表。在打開任何必要的模擬器或VPD文件後,這個信號列表能夠用當前的信號列表重新載入一個窗口。
4、為VPD選擇一個路徑選項:
- 對於多個打開的VPD文件來說默認是保存絕對路徑。
- 對於一個打開的VPD文件來說保存的是相對路徑(相對指向於會話文件存儲的文件夾)
- 不要保存打開的VPD文件。如果混合設計被打開了,該選項就被屏蔽掉了。
5、選擇保存內容:
- 僅保存窗口布局圖
- 所有組中的全部信號
- 觀看一個波形或列表,僅保存用來觀看的信號列表
6、點擊保存。
保存一個佈局圖會話
保存一個窗口布局圖,並且保持窗口的位置,窗口的大小,和一些其他的所出現的設置而不保存窗口的內容,進行下面的操作即可:
1、選擇File > Save Layout Session
2、在保存會話對話框為該佈局圖會話輸入一個文件名。
3、點擊保存(Save)。
載入已保存的會話(session)
載入一個保存過的會話:
1、載入一個VPD文件。
2、選擇File>Load Session.
3、在載入會話對話框,導入該會話並且在保存過的會話TCL文件列表中將其選中。
4、點擊載入(Load)
關閉數據庫
關閉當前打開的數據庫:
做下面2步中的任意1步
- 選擇File>Close Database
- 在工具欄點擊關閉數據庫圖標
。
出現了關閉數據庫對話框。見圖1-3.
確保選對數據庫,然後點擊OK。
退出DVE
選擇File>Exit