當aclrn = 0時,我必須實現一個D-鎖存,它遵循異步復位,當sclrn = 0時同步復位。實施應該能夠遵循兩種重置方法。在VHDL中使用異步和同步復位的D-鎖存
下面是我基於基本D鎖存器在VHDL中提出的(我只包括該過程)。
process(aclrn,clock)
begin
if (aclrn='0') then
q <= '0';
elsif (rising_edge(clock)) then
if (sclrn='0') then
q <= '0';
else
q <= d;
end if;
end if;
end process;
其中
clock, d, aclrn, sclrn : in std_logic; q : out std_logic
我是正確的過程並不需要採取sclrn作爲參數,但只有aclrn和時鐘?還有其他不一致嗎?
預先感謝您。
您在靈敏度列表上正確。其他不一致:布爾表達式(3x)周圍的括號是不必要的混亂,縮進不一致。 –
@BrianDrummond謝謝你指出!括號是Java的習慣。 –