Есть ли способ получить системное время в VCS/UVM? Я ищу что-то похожее на Perl's localtime(time)
. Есть ли способ распечатать системное время для каждого uvm_info
?Получить системное время в VCS
ответ
Один из способов - использовать $system()
для запуска любой системной команды, включая команду «date date».
initial
begin
$system("date");
end
От IEEE 1800 LRM:
$system
делает вызов к системе функции С(). Функция C выполняет переданный ей аргумент, как если бы аргумент был выполнен с терминала.$system
можно назвать либо задачей, либо функцией . Когда вызывается как функция, возвращается возвращаемое значение вызов системы() с типом данных int. Если вызывается$system
без аргумента строки , система функций C() будет вызываться с помощью строки NULL .
Также см. here.
В зависимости от версии 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 и скомпилируйте ее в VCS с помощью файлов SystemVerilog. В SystemVerilog добавьте import
, чтобы разрешить доступ к вашей функции C. Если предположить, что имя методы является my_localtime и и возвращение времени является строкой, импорт должен выглядеть следующим образом:
import "DPI" function string my_localtime();
'localtime()' является функцией библиотеки C и возвращает 'struct tm *' не строку. Назовите свою собственную функцию, отличную от 'localtime', в противном случае симулятор может вызывать неправильную функцию из-за зависимости заказа на библиотечную систему. – jclin
Есть ли встроенная функция DPI, чтобы получить время, так что мне не нужно писать? – Jean
@Greg: выход команды linux 'date' будет выглядеть примерно так:' Mon Aug 7 14:00:34 PDT 2017'. Когда вы вызываете '$ fscanf', вы используете'% s' в качестве формата, поэтому он будет соответствовать строке (которая представляет собой последовательность символов небелого пробела в соответствии с LRM).Поскольку 4-й символ - это пробел, строка 'localtime' будет содержать только первые 3 символа вывода (т. Е. День недели). – AndresM
В с файлом 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. Получить текущее системное время?
- 2. Получить системное время в VB.NET
- 3. Получить системное время и время пользователя
- 4. Получить системное время в миллисекундах в android
- 5. Как получить текущее системное время в android?
- 6. Как получить системное время в PHP?
- 7. Получить текущее системное время машины в сети
- 8. Получить текущее системное время в миллисекундах
- 9. Получить местное системное время в Django
- 10. Системное время Android
- 11. VB.net 2005 получить системное время удаленного компьютера?
- 12. Как получить системное время на C++?
- 13. Получить индийское стандартное время не системное время в javascript
- 14. TimingFramework и системное время
- 15. Системное время в Delphi 2009
- 16. Установить системное время в реестр
- 17. Как постоянно отслеживать системное время
- 18. Измените время Linux, чтобы обмануть системное время
- 19. Как получить системное время в nano секундах в Perl?
- 20. Как проверить системное время в Wherigo (Урвиго)
- 21. Как получить системное время пользователя для отображения в веб-приложении?
- 22. Как я могу получить текущее системное время в C++
- 23. Получить системное время в MilliSeconds как int/double
- 24. C++ Получить системное время как количество секунд в день
- 25. Как получить системное время в Haskell с помощью Data.Time.Clock?
- 26. Получить системное время с точностью до миллисекунд в Windows cmd
- 27. Как получить системное время в XML? Есть ли метод/функция?
- 28. Как получить системное время в Java без создания новой даты
- 29. Как получить текущее системное время в миллисекундах или наносекундах?
- 30. Есть ли предпочтительный способ получить системное время в cocos2d-x?
Есть ли способ извлечь выход команды? – Jean
$ система сразу возвращает возвращаемое значение системного вызова при выходе, но это значение составляет только один-два байта, и обычно это либо 0, либо код ошибки. Общим методом для извлечения времени в симуляторе является запись его в файл, как описано в ссылке, опубликованной в моем ответе. – Ari
В UVM можно сбросить время настенных часов, проведенное на каждой фазе? – Jean