Access Design Source Code:
1)通過file---open來打開,
2)通過send to source viewer來看,
雙擊信號,進行driver的trace,顯示在左側的driver/load tab或者直接轉到下一個scope的source code file
查找:
1)右側tool bar
2)edit-----search,
signal的選擇,
1)單擊或者框選,
2)select---scope/port/signal
信號右鍵的功能:
1) Follow signal,相當於verdi中的connection功能。
2) Trace Driving logic/Trace loading logic
3) send to waveform/watch/Schematic/Design/Design file window
4) Create Probe,
5) Show Value
6) Set Force/Release Force/Deposit Value
在進行trace的時候,如果對象是Verilog的register或者VHDL的 variable,直接進入相應的source code
如果對象是Verilog的net或者VHDL signal,進入左側的sidebar
在source code中可以直接進行edit,然后revoke來直接進行編譯仿真。
Access Design Objects
使用design browser tab,通過filter進行scope的選擇。
使用design search tab,主要來選擇signal(input,output,inside)/transaction/assertion等
Creating and Managing Probes
通過probe signal,可以在仿真過程中保存signal的值,之后可以直接查看probe的signal的值。
當用戶向Waveform window添加signals和scopes時,Simvision自動添加probe。
在創建probe的過程中,需要勾選include task/function,include sub-scope,disable/enable add to waveform
可以在simvision---show---probes中查看已經打開的probe,也可以進行刪除操作。
probe不能對在仿真中new的變量添加,不知道probe和watch window的應用區別
Setting and managing Breakpoints
simvision中支持的breakpoint的添加方式,
1) time breakpoint, stop at specify time or time interval(delta cycle)
2) signal breakpoint, stop based on a design object
3) line breakpoint, stop at specified line
4) Condition breakpoint,
通過simulation----Set BreakPoint---time來設置,
使用breakpoint的前提是,在編譯時,必須添加-linedebug
Changing and Monitoring the value of an Object during Simulation
在verilog中只有force和deposit兩種方式。前提是在elaborate時,必須有-access +w的選項。
不能force的design object:
1) Verilog memory or memory element
2) bit-select或者part-select verilog register/wire
可以通過Simulation----Show-----Forces來顯示當前已有的force
不能deposit的object:(memory可以)
1) analog signal
Controlling the Simulation
可以通過simulation bar來進行simulation的控制,

reset simulation:simulation time到0,設置的breakpoint和probe保留,但是force和deposit的動作都被移除。
reinvoking simulation:改變source code之后,通過reinvoke來啟動simulator。
Saving and Restarting a simulation checkpoint
simulation的checkpoint可以保存design在某個simulation time的所有狀態,包括:已經打開的database,設置的breakpoint
之前某個時間點的force和deposit的信號。
checkpoint的保存對large simulation的debug十分有用。
保存一個simulation check point
選擇simulation---save checkpoint,點擊Run Clean,為了將當前時間點的sequential code執行完畢。
從check point重新開始:
選擇simulation---Restart from checkpoint,
Debugging at the Delta Cycle Level
實際仿真時,並不能做到完全並行,simulator通過將每個時間點分為delta cycle並且先后調用進程來進行模擬。
在波形中,只能反映的是每個time point的最終的信號值。
delta cycle的執行過程:紅色表示會發生迭代,藍色表示最終的跳轉。


Simulation Cycle Debugger的打開:
Windows---Tools---Simulation Cycle Debug
打開之后,有一個state diagram表示當前執行的point
另一個window,表示即將執行的point
直接點擊某個statement就可以打開Source Browser window
Cycle Debugging的選項,

Debugging API Applications
DPI/PLI這類的API可以在simulator中,調用C/C++/SystemC這樣的task。
SimVision提供GDB的環境,來直接debug API application, (環境中的gcc必須與IUS中的一致)
當調用API application時,compiling和elaborate HDL design需要加額外的option,
Eg:API調用DPI task,必須在elaborator中加入 -dpiheader,並指定一個.h文件來declares DPI task。
在simulation---systemc/c++/c debug選項,在console中加入gdb tab,並且Source Browser中加入GDB 控制。
simulator和GDB之間的交叉控制,主要通過breakpoint來設置,
Tracing Paths with the Trace Signals Sidebar
trace signals sidebar可以使能driving/loading logic,並自動的tarce所有的X value的path。
使用simvision進行driver trace操作時,simvision可以顯示出force的操作,並給一個較高的grade。
為了在waveform中加入更多的內容,可以
1) probe signal,來加入更新element到波形中。
2) 在進行仿真時,加入-event option,提供更加精確的sequence time。
