目前我使用這種方式,當運行時錯誤發生時,vcs將打印調用堆棧。它效率非常低。有沒有更好的辦法?如何在系統verilog中運行時顯示調用堆棧?
function void anyFunctionIWouldLikeToSeeCallStack();
uvm_object a;
// a == null
a.print();
endfunction;
目前我使用這種方式,當運行時錯誤發生時,vcs將打印調用堆棧。它效率非常低。有沒有更好的辦法?如何在系統verilog中運行時顯示調用堆棧?
function void anyFunctionIWouldLikeToSeeCallStack();
uvm_object a;
// a == null
a.print();
endfunction;
這是仿真器通常在設置斷點時提供的類型。達到某個斷點後,您的模擬將停止,您將能夠運行特定於模擬器的命令來打印調用堆棧,或者您將在某個GUI窗口中顯示調用堆棧。
您必須在VCS文檔中查找如何完成此操作。
Cadence incisive(ncsim)有一個$ stacktrace系統任務,您可以調用。如果其他廠商有類似的事情,我也不會感到驚訝。
,這是$stack()
,但只有大約8級堆棧的,我不認爲這是可配置的
在的ModelSim /奎斯塔是$調用堆棧 – 2014-12-09 06:12:31