Чтобы создать случайное семя, я хотел бы, чтобы получил системную метку времени в своем тестовом стенде VHDL.Получить текущую временную метку VHDL
Как я могу это сделать?
Кстати, я использую RandomPkg от OSVVM library
С уважением.
Чтобы создать случайное семя, я хотел бы, чтобы получил системную метку времени в своем тестовом стенде VHDL.Получить текущую временную метку VHDL
Как я могу это сделать?
Кстати, я использую RandomPkg от OSVVM library
С уважением.
Для общего подхода к VHDL вы можете передать системное время как общее для объекта тестового стенда. Если испытательный стенд выглядит следующим образом:
entity seed_tb is
generic(SEED : natural := 0);
end entity;
architecture sim of seed_tb is
begin
assert FALSE report "SEED = " & integer'image(SEED) severity NOTE;
end architecture;
Тогда на Linux с симулятором ModelSim, командные строки для компиляции и запуска могут быть:
> vlib work
> vcom seed_tb.vhd
> vsim seed_tb -c -gSEED=`date +%s` -do "run; exit"
date +%s
дают секунд с тех пор 1970-01-01, который будет вписываться в естественный тип VHDL (даже в течение еще 25 лет :-).
Этот подход имеет то преимущество, что легко выполнить повторное моделирование с тем же семенем из командной строки, если потребуется отладка.
С помощью набора инструментов VHDL, который поддерживает посторонние объекты (архитектуры, подпрограммы), вы можете иметь внешнюю подпрограмму, возвращающую системное время из системного вызова.
Вы можете поместить начальное значение в файл и прочитать его. Оболочка оболочки оболочки, которая делает это и вызывает ваш симулятор.
Функция procfs может обеспечить доступ к системному времени в виде файла, считанного.
Вы можете понять, что понятие системного времени не имеет общего для VHDL.