我想知道有什么区别
process (clk)
if (clk = '1') then
和
process (clk)
if (clk'event and clk = '1') then
我认为敏感度列表定义了将监视状态变化的信号,所以如果我是对的,那么
clk'event
是多余的。
我做了一个简单的模拟来验证我的想法,它显然证实了我的观点。
是的,你是对的,在模拟过程中,两个代码片段的工作原理是相同的。
但是在综合过程中,在此过程中读取的所有信号都会隐式添加到灵敏度列表中。 这意味着如果进程内存在分配
B<=A;
,A 将被添加到敏感度列表中,并在
每当 A 改变时,如果 clk='1',B 也会改变。
因此,如果没有 clk'event,代码描述的是锁存器,而不是综合中的触发器。