OpenCores
URL https://opencores.org/ocsvn/rise/rise/trunk

Subversion Repositories rise

[/] [rise/] [trunk/] [vhdl/] [mem_stage.vhd] - Blame information for rev 52

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 jlechner
-- File: mem_stage.vhd
2
-- Author: Jakob Lechner, Urban Stadler, Harald Trinkl, Christian Walter
3
-- Created: 2006-11-29
4
-- Last updated: 2006-11-29
5
 
6
-- Description:
7
-- Memory Access stage
8
-------------------------------------------------------------------------------
9
 
10
library IEEE;
11
use IEEE.STD_LOGIC_1164.all;
12
use IEEE.STD_LOGIC_ARITH.all;
13
 
14
use WORK.RISE_PACK.all;
15
 
16
 
17
entity mem_stage is
18
 
19
  port (
20
    clk                 : in std_logic;
21
    reset               : in std_logic;
22
 
23
    ex_mem_register     : in EX_MEM_REGISTER_T;
24
    mem_wb_register     : out MEM_WB_REGISTER_T;
25
 
26
    dmem_addr           : out MEM_ADDR_T;
27
    dmem_data_in        : in MEM_DATA_T;
28
    dmem_data_out       : out MEM_DATA_T;
29 38 jlechner
    dmem_wr_enable      : out std_logic;
30 2 jlechner
 
31
    stall_out           : out std_logic;
32
    clear_in            : in std_logic;
33
    clear_out           : out std_logic);
34
 
35
 
36
end mem_stage;
37
 
38
architecture mem_stage_rtl of mem_stage is
39
 
40
  signal mem_wb_register_int     : MEM_WB_REGISTER_T;
41
  signal mem_wb_register_next    : MEM_WB_REGISTER_T;
42 38 jlechner
 
43 2 jlechner
begin  -- mem_stage_rtl
44
 
45 38 jlechner
  mem_wb_register.aluop1        <= mem_wb_register_int.aluop1;
46
  mem_wb_register.aluop2        <= mem_wb_register_int.aluop2;
47
  mem_wb_register.reg           <= mem_wb_register_int.reg;
48
  mem_wb_register.mem_reg       <= dmem_data_in;
49
  mem_wb_register.dreg_addr     <= mem_wb_register_int.dreg_addr;
50
  mem_wb_register.lr            <= mem_wb_register_int.lr;
51
  mem_wb_register.sr            <= mem_wb_register_int.sr;
52
 
53 52 cwalter
  clear_out                     <= '0';  -- clear_out output is unused at the moment.
54
  stall_out                     <= '0';  -- development (temporarily)
55 38 jlechner
  process (clk, reset)
56
  begin  -- process
57
    if reset = '0' then                 -- asynchronous reset (active low)
58
      mem_wb_register_int.aluop1        <= (others => '0');
59
      mem_wb_register_int.aluop2        <= (others => '0');
60
      mem_wb_register_int.reg           <= (others => '0');
61
      mem_wb_register_int.mem_reg       <= (others => '0');
62
      mem_wb_register_int.dreg_addr     <= (others => '0');
63
      mem_wb_register_int.lr            <= (others => '0');
64
      mem_wb_register_int.sr            <= (others => '0');
65
    elsif clk'event and clk = '1' then  -- rising clock edge
66
      mem_wb_register_int        <= mem_wb_register_next;
67
    end if;
68
  end process;
69 2 jlechner
 
70
end mem_stage_rtl;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.