有沒有辦法在VCS/UVM中獲取系統時間?我正在尋找類似於Perl的localtime(time)
的東西。是否可以打印每個uvm_info
的系統時間?在VCS中獲取系統時間
回答
取決於您使用的VCS版本。最新版本應支持$system
,如IEEE Std 1800-2012 § 20.18.1中所定義。假設你在一個基於UNIX環境中運行,你可以這樣做:
function string get_localtime();
int fd;
string localtime;
void'($system("data > localtime")); // temp file
fd = $fopen("localtime", "r");
void'($fscanf(fd,"%s",localtime));
$fclose(fd);
void'($system("rm localtime")); // delete file
return localtime;
endfunction
如果你的版本VCS不支持$system
或者如果您更符合使用C/C++,然後用DPI(見IEEE Std 1800-2012 § 35)。在C中創建一個函數,並使用SystemVerilog文件在VCS中進行編譯。在SystemVerilog中,添加import
以允許訪問您的C函數。假設你的方法名稱爲my_localtime和和返回的時間是一個字符串,進口應該是這樣的:
import "DPI" function string my_localtime();
'localtime()'是C庫的一個函數,它返回'struct tm *'不是一個字符串。爲'localtime'命名自己的函數,否則,由於共享庫順序依賴關係,模擬器可能會調用錯誤的函數。 – jclin 2014-09-26 03:25:11
是否有一個內置的DPI函數來獲取時間,以便我不必編寫一個? – Jean 2014-10-24 17:04:43
@Greg:linux'date'命令輸出如下:'Mon Aug 7 14:00:34 PDT 2017'。當你調用'$ fscanf'時,你使用'%s'作爲格式,所以它會匹配一個字符串(這是一個非空白字符序列,按照LRM)。由於第四個字符是空格,因此'localtime'字符串將只包含輸出的前3個字符(即星期幾)。 – AndresM 2017-08-07 21:12:03
在C文件wallclock.c:
#include <time.h>
wallclock() {
time_t t;
t = time(NULL);
return (ctime(&t));
//return time(NULL);
}
在SV文件:
import "DPI-C" function string wallclock();
module try;
//int unsigned t;
string t;
initial begin
t = wallclock();
$write("time=%0s\n", t);
end
endmodule
- 1. 在Vxworks中獲取系統時間
- 2. 在iPhone中獲取系統時間
- 3. 如何從系統中獲取時間?
- 4. 獲取系統時間在VB.NET
- 5. 獲取當前系統日期時間
- 6. 獲取當前系統時間
- 7. 獲取當前系統時間?
- 8. 如何在PHP中獲取系統時間?
- 9. 在Java中獲取系統最後一次啓動時間
- 10. 從計算機系統中獲取時間在PHP
- 11. 在iOS/Swift中獲取系統正常運行時間
- 12. 在Windows中獲取系統時間更改?
- 13. 在Java中獲取系統啓動時間?
- 14. 如何在C++中獲取系統時間?
- 15. 在Java中獲取系統正常運行時間
- 16. 如何使用Data.Time.Clock在Haskell中獲取系統時間?
- 17. 如何在Netbeans中獲取系統時間?
- 18. 在SQL Server中獲取當前系統時間
- 19. 如何在webservice中獲取系統日期時間
- 20. 獲取UTC時間而不依賴操作系統時間
- 21. 獲取系統時間和用戶時間
- 22. getrusage()獲取系統時間,用戶時間。 Unix編程幫助
- 23. 獲取系統
- 24. 系統時間
- 25. 獲取我的系統時區在PHP
- 26. 通過VBA(訪問/ Excel)中獲取系統運行時間
- 27. 獲取操作監聽器中的系統時間
- 28. 在野田時間獲取系統的LocalDateTime
- 29. 在android系統時間函數獲取TimeStamp?
- 30. PHP - 獲取時間獨立於它正在運行的系統
有沒有辦法提取命令的輸出? – Jean 2014-09-27 21:50:03
$系統在退出時直接返回系統調用的返回值,但這個值只有一到兩個字節,通常是0或錯誤代碼。在模擬器中提取時間的常用技巧是將其寫入文件中,如我在答案中發佈的鏈接中所述。 – Ari 2014-09-29 17:40:15
在UVM中可以轉儲每個階段花費的掛鐘時間嗎? – Jean 2014-09-29 18:11:52