Описание пакета ENV


 

В стандарте VHDL-2008 добавлен новый пакет ENV в библиотеку STD, в котором вводятся несколько новых функций:

  • STOP — процедура остановки моделирования
  • FINISH — процедура остановки моделирования с выходом из симулятора (modelsim/qustasim)
  • resolution_limit — функция возвращает значения точности моделирования (тип DELAY_LENGTH)

Декларация в пакете ENV:

  procedure stop (STATUS : INTEGER := 0);
  procedure finish (STATUS : INTEGER := 0);
  function resolution_limit return DELAY_LENGTH;

В зависимости от значения параметра STATUS, передаваемого процедурам STOP и FINISH предусмотрен разный вывод в лог (консоль):

  • 0 — ничего не выводит;
  • 1 — выводит время моделирование и путь к entity в котором выполнена процедура;
  • 2 — выводит время, расположение и статистику о задейсвованной памяти и ресурсу CPU при моделировании;
  • другие значения STATUS интерпретируются как 0.

Пример

Листинг файла std_sim.vhd для проверки функций пакета STD.ENV

Файл: std_sim.vhd
library std;
use std.env.all;
 
entity std_sim is
end entity std_sim;
 
architecture beh of std_sim is
 
  signal clk : bit := '0';
--  signal resolution: DELAY_LENGTH:= resolution_limit;
  signal resolution : DELAY_LENGTH ;
 
begin  -- architecture beh
 
  p1: process  is
  begin  -- process p1
 
    while (now <= 100 ns) loop
      wait for 10 ns;
      clk <= not clk;
    end loop;
 
--    finish;
--    finish(0);
--    finish(1);
    finish(2);
--    finish(3);
--    stop(3);
--    stop(2);
--    stop(1);
--    stop(0);
--    stop;
  end process p1;
 
end architecture beh;
Далее показан вывод в терминал (транскрипт) при выполнении функций stop и finish с различными входными параметрами.
  • Вызов функции stop; или stop(0); или stop(3); (или с любым другим числом >2):
# Break in Process p1 at /home/sim/vhd/std_sim.vhd line 25
  • stop(1);
# ** Note: stop
#    Time: 110 ns  Iteration: 0  Instance: /std_sim
# Break in Process p1 at /home/sim/vhd/std_sim.vhd line 25
  • stop(2);
# ** Note: Data structure takes 16558720 bytes of memory
#          Process time 0.00 seconds
#          stop
#    Time: 110 ns  Iteration: 0  Instance: /std_sim
# Break in Process p1 at /home/sim/vhd/std_sim.vhd line 25
  • finish;
# 1
# Break in Process p1 at /home/sim/vhd/std_sim.vhd line 27
  • finish(1);
# ** Note: finish
#    Time: 110 ns  Iteration: 0  Instance: /std_sim
# 1
# Break in Process p1 at /home/sim/vhd/std_sim.vhd line 29
  • finish(2);
# ** Note: Data structure takes 16558720 bytes of memory
#          Process time 0.00 seconds
#          finish
#    Time: 110 ns  Iteration: 0  Instance: /std_sim
# 1
# Break in Process p1 at /home/sim/vhd/std_sim.vhd line 30

 

В отличии от пакета STD.STANDARD декларацию пакета STD.ENV необходимо включать в VHDL-файл, чтобы его функции стали доступны:

library std;
use std.env.all;
Контактная информация:

Автор идеи и контента: Бибило П.Н.
Разработчики: Голанов В.А., Зарембо Д.В.
На основе Wordpress CMS

Статистика за сегодня:

Сайт размещен на сервере ОИПИ НАН Беларуси