我想锁定一个信号,但是当我尝试这样做时,我得到一个周期的延迟,我该如何避免这种情况?无延迟锁存信号
myLatch: process(wclk, we) -- Can I ommit the we in the sensitivity list?
begin
if wclk'event and wclk = '1' then
lwe <= we;
end if;
end process;
但是,如果我尝试这一点,看看海浪模拟LWE期间由WCLK的一个周期延迟。我想要达到的目标是在wclk
的上升沿对we
进行采样,并保持稳定直到下一个上升沿。然后,我将锁定信号分配给架构中定义的另一个实体端口映射。
==============================================
嗯,我发现我必须省略wclk'event
才能获得锁存器而不是触发器。这对我来说似乎相当不直观。通过简单地缩短我采样锁存信号的时间,我从锁存器变成触发器。任何人都可以解释为什么这是和我的看法是错误的。 (我是VHDL的初学者)
这对我来说非常有价值,我将不得不调查为什么要避免闩锁部分。但如果不确定的话,我不得不提出一个新的问题。由于我只是为一个寄存器文件写一个子模块,并且不能改变外部模块的时序,所以我看不到任何方式的锁定(Studentassignment,实现一个带有单端口RAM的寄存器文件) – ted