reg_file_32_rrw.vhd

来自「DLX CPU VHDL CODE UNIVERSITY」· VHDL 代码 · 共 62 行

VHD
62
字号
---- $RCSfile: reg_file_32_rrw.vhd,v $-- $Revision: 1.1 $-- $Author: petera $-- $Date: 90/06/21 10:02:59 $--use work.dp32_types.all;entity reg_file_32_rrwr is  generic (depth : positive;		  -- number of address bits      	    Tpd : Time := unit_delay;      	    Tac : Time := unit_delay);  port (a1 : in bit_vector(depth-1 downto 0);  	q1 : out bus_bit_32 bus;	en1 : in bit;	a2 : in bit_vector(depth-1 downto 0);	q2 : out bus_bit_32 bus;	en2 : in bit;	a3 : in bit_vector(depth-1 downto 0);	d3 : in bit_32;	en3 : in bit;	a4 : in bit_vector(depth-1 downto 0);	q4 : out bus_bit_32 bus;	en4 : in bit);end reg_file_32_rrwr;architecture behaviour of reg_file_32_rrwr is  begin  reg_file: process (a1, en1, a2, en2, a3, d3, en3,a4,en4)    subtype reg_addr is natural range 0 to power(2,(depth-1));    type register_array is array (reg_addr) of bit_32;        variable registers : register_array;  begin    if en3 = '1' then      registers(bits_to_natural(a3)) := d3;    end if;    if en1 = '1' then      q1 <= registers(bits_to_natural(a1)) after Tac;    else      q1 <= null after Tpd;    end if;    if en2 = '1' then      q2 <= registers(bits_to_natural(a2)) after Tac;    else      q2 <= null after Tpd;    end if;    if en4 = '1' then      q4 <= registers(bits_to_natural(a4)) after Tac;    else      q4 <= null after Tpd;    end if;    registers(0):=X"0000_0000";	   end process reg_file;end behaviour;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?