在VHDL中,当模拟测试台时,我有一个过程和一个灵敏度列表。是否可以查看灵敏度列表中的哪个信号触发了该过程?我了解这可能取决于工具。我正在使用Xilinx ISE。模拟器会提供此信息吗?
可以将'transaction属性与结合使用,'event以确定在当前增量周期中哪些信号已经进行了事务处理:
process(a, b) is
begin
if a'transaction'event then
report "Transaction on a";
end if;
if b'transaction'event then
report "Transaction on b";
end if;
end process;
Run Code Online (Sandbox Code Playgroud)
该'transaction属性创建一个新的bit类型的信号,该信号在每个事务上切换。该'event信号上的属性标识何时在父信号上发生了任何事务。
您还可以not <signal name>'quiet(0 ns)用来确定自上一时间步骤以来,敏感度列表中的哪些信号已发生事务:
process(a, b) is
begin
if not a'quiet(0 ns) then
report "Transaction on a";
end if;
if not b'quiet(0 ns) then
report "Transaction on b";
end if;
end process;
Run Code Online (Sandbox Code Playgroud)
如果您不想处理在不同增量周期发生的事件的顺序,则后者可能会更有用。