获取当前时间戳VHDL

时间:2013-06-20 19:29:28

标签: timestamp automated-tests vhdl

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

我该怎么做?

顺便说一下,我正在使用OSVVM library

中的RandomPkg

问候。

2 个答案:

答案 0 :(得分: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;

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

> vlib work
> vcom seed_tb.vhd
> vsim seed_tb -c -gSEED=`date +%s` -do "run; exit"

date +%s给出自1970-01-01以来的秒数,它将适合VHDL自然类型(即使再过25年: - )。

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

答案 1 :(得分:1)

使用支持外来对象(体系结构,子程序)的VHDL工具套件,您可以使用外部子程序从系统调用返回系统时间。

您可以将种子值放在文件中并阅读它。我们会想到一个shell脚本包装器,它会调用你的模拟器。

procfs函数可以在读取文件时提供对系统时间的访问。

您可能会收集系统时间的概念在VHDL中并不普遍重要。