我被賦予了一個啓用D觸發器的代碼。使用時鐘並啓用
process(clk, en)
begin
if rising_edge(clk) then
if en = ‘1’ then
Q <= D;
end if;
end if;
end process;
- 有人告訴我,我應該不使用
if rising_edge(clk) and en = ‘1’ then ...
。 爲什麼? - 爲什麼不是如果在if時鐘之前爲
en = '1'
,因爲時鐘頻繁更換? - ,是有必要指定在此過程中括號
process(clk, en)
en
?
將'en'放在'rising_edge'之前可能會導致一個門控時鐘。通過改變propabilities或通過優先級來排序信號可以減輕可讀性,因爲很多人都這樣做,並期望這樣做:)。 – Paebbels