是否允许从另一个信号初始化一个信号?

时间:2018-09-27 20:22:37

标签: vhdl

我有以下VHDL模拟代码。这是一个基于OSVVM的clock_Monitor验证IP的最小示例。

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
  • GHDL 0.36-dev
  • ModelSim 10.5b

此代码在ModelSim的 pedantic 模式下导致错误:

  

**错误(可抑制):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”的值。 / p>

有什么想法为什么会被模拟器接受,但在严格/学究模式下会报告为错误?

修改:
用于与ModelSim一起编译的代码行:

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

0 个答案:

没有答案