获取当前时间戳VHDL

Pas*_*out 2 automated-tests timestamp vhdl

为了创建随机种子,我想在我的VHDL测试平台中获得系统时间戳.

我怎样才能做到这一点?

顺便说一下,我正在使用OSVVM库中RandomPkg

问候.

Mor*_*mer 5

对于通用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;
Run Code Online (Sandbox Code Playgroud)

然后在Linux上使用ModelSim模拟器,编译和运行的命令行可以是:

> vlib work
> vcom seed_tb.vhd
> vsim seed_tb -c -gSEED=`date +%s` -do "run; exit"
Run Code Online (Sandbox Code Playgroud)

date +%s自1970-01-01给予秒,这将适合VHDL自然类型(甚至25年:-).

该方法的优点是,在需要调试的情况下,很容易从命令行使用相同的种子重新运行模拟.