📄 register.vhd
字号:
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.all;USE IEEE.STD_LOGIC_ARITH.all;USE IEEE.STD_LOGIC_UNSIGNED.all;ENTITY regfile ISPORT(clk: IN std_logic;AA, BA , DA: IN std_logic_vector(2 DOWNTO 0); RW : in std_logic; --'1' then read. --'0' then write;D : IN std_logic_vector(15 DOWNTO 0);A, B : OUT std_logic_vector(15 DOWNTO 0)); --RFcoutEND regfile;ARCHITECTURE rtl of regfile ISsignal reg0: std_logic_vector(15 downto 0) :="0000000000001000";signal reg1: std_logic_vector(15 downto 0) :="0000000000000100";signal reg2: std_logic_vector(15 downto 0) :="0000000000000011";signal reg3: std_logic_vector(15 downto 0) :="0000000000000001";signal reg4: std_logic_vector(15 downto 0) :="0000000001000110";signal reg5: std_logic_vector(15 downto 0) :="0000000001010001";signal reg6: std_logic_vector(15 downto 0) :="0000000000000000";signal reg7: std_logic_vector(15 downto 0) :="0000000000000111";BEGINPROCESS (clk,DA,RW)--reg0,reg1, reg2, reg3,reg4, reg5, reg6, reg7) --WRITE PROCESS --wRFBBEGINIF RW='0' or RW='1' then ---attentionif clk='1' and clk'event THEN CASE DA ISWHEN "000" => reg0 <= D;WHEN "001" => reg1 <= D;WHEN "010" => reg2 <= D;WHEN "011" => reg3 <= D;WHEN "100" => reg4 <= D;WHEN "101" => reg5 <= D;WHEN "110" => reg6 <= D;WHEN "111" => reg7 <= D;WHEN others => NULL;end case;END IF;END IF;END PROCESS;PROCESS (AA ,RW,reg0,reg1, reg2, reg3,reg4, reg5, reg6, reg7) --READ PROCESSBEGIN--IF clk 'EVENT AND clk= '1' THENIF RW = '1' THENCASE AA ISWHEN "000" => A <= reg0;WHEN "001" => A <= reg1;WHEN "010" => A <= reg2;WHEN "011" => A <= reg3;WHEN "100" => A <= reg4;WHEN "101" => A <= reg5;WHEN "110" => A <= reg6;WHEN "111" => A <= reg7;WHEN OTHERS => A <= "XXXXXXXXXXXXXXXX";END CASE;END IF;--END IF;END PROCESS;PROCESS (BA,RW,reg0,reg1, reg2, reg3,reg4, reg5, reg6, reg7) --READ PROCESSBEGIN--IF clk 'EVENT AND clk= '1' THENIF RW = '1' THENCASE BA ISWHEN "000" => B <= reg0;WHEN "001" => B <= reg1;WHEN "010" => B <= reg2;WHEN "011" => B <= reg3;WHEN "100" => B <= reg4;WHEN "101" => B <= reg5;WHEN "110" => B <= reg6;WHEN "111" => B <= reg7;WHEN OTHERS => B <= "XXXXXXXXXXXXXXXX";END CASE;--END IF;END IF;END PROCESS;END rtl;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -