⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 register.vhd

📁 thats the CPU source made by JI FENG
💻 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 + -