entity REGISTERS is
Port ( LEDs : out STD_LOGIC_VECTOR (7 downto 0);
switches : in STD_LOGIC_VECTOR (7 downto 0);
SSD_cont : out STD_LOGIC_VECTOR (15 downto 0);
reg_addr : in STD_LOGIC_VECTOR (7 downto 0);
reg_din : in STD_LOGIC_VECTOR (7 downto 0);
reg_we : in STD_LOGIC;
reg_dout : out STD_LOGIC_VECTOR (7 downto 0);
clk : in STD_LOGIC;
reset : in STD_LOGIC);
end REGISTERS;
architecture Behavioral of REGISTERS is
signal dout :std_logic_vector(7 downto 0);
begin
DataRAM : entity work.Data_RAM
port map( clk =>clk,
addr=>reg_addr,
we=>reg_we,
din=>reg_din,
dout=>dout
);
--Special Funcion Register Mapping --
MAP_WRITING: process(clk, reg_we, reset)
begin
if(reset ='1') then
LEDs <=X"00";
ssd_cont<=X"0000";
elsif(rising_edge(clk) and reg_we ='1')then
if(reg_addr = X"00")then
LEDs<=reg_din;
elsif(reg_addr = X"02") then
ssd_cont(7 downto 0) <= reg_din;
elsif(reg_addr = X"03") then
ssd_cont(15 downto 8) <= reg_din;
end if;
end if;
end process;
MAP_REDAING : process(reg_addr, switches, dout)
begin
if(reg_addr = X"01") then
reg_dout <= switches;
else
reg_dout <= dout;
end if;
end process;
end Behavioral;
module RegisterFile(ReadRegister1, ReadRegister2, WriteRegister,
WriteData, RegWrite, Clk, ReadData1, ReadData2);
input [4:0] ReadRegister1, ReadRegister2; // Two registers to be read
input [4:0] WriteRegister; // Register address to write into
input [31:0] WriteData; // Data to be written into WriteRegister
input RegWrite; // RegWrite control signal. Data is written only when this signal is enabled
input Clk;
output [31:0] ReadData1, ReadData2;
reg [31:0] RF [31:0];
always begin
// write the register with new value if Regwrite is high
@(negedge Clk)
begin
assign ReadData1 = RF[ReadRegister1];
assign ReadData2 = RF[ReadRegister2];
end
@(posedge Clk)
if (RegWrite)
RF[WriteRegister] <= WriteData;
end
endmodule
Thread starter | Similar threads | Forum | Replies | Date |
---|---|---|---|---|
Atomicity of STM32 register writes | Microcontrollers | 3 | ||
L | reading and writing to a register file without bypass | Digital Design | 7 | |
What is register file? | General Electronics Chat | 11 | ||
T | MIPS datapath register file problem | Homework Help | 0 | |
register file | General Electronics Chat | 4 |
by Jake Hertz
by Duane Benson
by Jake Hertz