2
我在設計VHDL中的1位和32位寄存器時遇到了一些麻煩。寄存器的主要輸入包括時鐘(clk),清零(clr),加載/使能(ld)信號和n位數據(d)。 n位輸出由(q)表示。到目前爲止,我相信已經做出了1位寄存器,這裏是我的代碼:VHDL寄存器設計
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
USE ieee.std_logic_unsigned.ALL;
ENTITY register32 IS
PORT(
d : IN STD_LOGIC_VECTOR(31 DOWNTO 0); -- input.
ld : IN STD_LOGIC; -- load/enable.
clr : IN STD_LOGIC; -- async. clear.
clk : IN STD_LOGIC; -- clock.
q : OUT STD_LOGIC; -- output.
END register32;
ARCHITECTURE description OF register32 IS
BEGIN
process(clk, clr, ld)
begin
if clr = '1' then
q <= '0';
elsif d = '1' and ld = 1 and clk'event and clk='1' then
q <= '1';
elsif d = '0' and ld = 1 and clk'event and clk='1' then
q <= '0';
else
q <= '0';
end if;
end process;
END description;
如果這是一個1位寄存器正確的,我怎麼會讓它變成一個32位的一個。一些幫助將不勝感激。