我想鎖定一個信號,但是當我嘗試這樣做時,我得到一個週期的延遲,我該如何避免這種情況?無延遲鎖存信號
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