У меня есть следующий код симуляции 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