Разрешена ли инициализация сигнала из другого сигнала? - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть следующий код симуляции VHDL.Это минимальный пример, взятый из clock_Monitor проверочного IP на основе OSVVM.

library IEEE;
use     IEEE.std_logic_1164.all;

entity clock_monitor is
  generic (
    PERIOD_HIGH : time := 5 ns;
    PERIOD_LOW  : time := 5 ns
  );
  port (
    Clock : in  std_logic
  );
end entity;

architecture vip of clock_monitor is
  signal ClockPeriodHigh    : time    := PERIOD_HIGH;
  signal ClockPeriodLow     : time    := PERIOD_LOW;

  signal Period             : time    := ClockPeriodHigh + ClockPeriodLow;
begin
  -- not relevant

end architecture;

Этот код анализирует в:

  • Riviera-PRO 2018.2
  • GHDL0.36-dev
  • ModelSim 10.5b

Этот код вызывает ошибку в режиме pedantic ModelSim:

** Ошибка (подавляется): C: /Training/Git/RGB_LED/lib/Clock/src/clock_Monitor.vhdl (18): (vcom-1013) Начальное значение «Period» зависит от значения сигнала «ClockPeriodHigh».
**Ошибка (подавляемая): C: /Training/Git/RGB_LED/lib/Clock/src/clock_Monitor.vhdl (18): (vcom-1013) Начальное значение «Period» зависит от значения сигнала «ClockPeriodLow».

Любые идеи, почему это принимается симуляторами, но сообщается как ошибка в строгом / педантичном режимах ??

Редактировать:
Строка кода, используемая для компиляции сModelSim:

vcom -modelsimini modelsim.ini -2008 -explicit -pedanticerrors -rangecheck -work OSVVM_Clock C:/Training/Git/RGB_LED/lib/Clock/src/clock_Monitor.vhdl
...