声明对 simple_port 值敏感的事件和 event_port 之间的区别

Difference between declaring an event that is sensitive to a simple_port value and event_port

我想知道这两者有什么区别:

1) simple_port

data_valid : simple_port of bit is instance;
keep data_valid.hdl_path() == "data_valid_o";

event data_valid_f is fall(data_valid$) @sim;

on data_valid_f {
    -- do some stuff
};

2) event_port

data_valid : event_port is instance;
keep data_valid.hdl_path() == "data_valid_o";
keep data_valid.edge() == fall;

on data_valid$ {
    -- do some stuff
};

提前致谢!

简而言之,event_port 将检测毛刺,即模拟周期内的零时间信号变化。 simple_port 的值将由模拟周期结束时的信号值决定,无论在此之前切换了多少次。