2013-06-20 4 views

ответ

3

Для общего подхода к 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 лет :-).

Этот подход имеет то преимущество, что легко выполнить повторное моделирование с тем же семенем из командной строки, если потребуется отладка.

1

С помощью набора инструментов VHDL, который поддерживает посторонние объекты (архитектуры, подпрограммы), вы можете иметь внешнюю подпрограмму, возвращающую системное время из системного вызова.

Вы можете поместить начальное значение в файл и прочитать его. Оболочка оболочки оболочки, которая делает это и вызывает ваш симулятор.

Функция procfs может обеспечить доступ к системному времени в виде файла, считанного.

Вы можете понять, что понятие системного времени не имеет общего для VHDL.