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

Subversion Repositories rise

[/] [rise/] [trunk/] [vhdl/] [tb_id_stage_unit.vhd] - Blame information for rev 7

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

Line No. Rev Author Line
1 7 cwalter
-- File: ex_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
-- Execute stage
8
-------------------------------------------------------------------------------
9
 
10
library ieee;
11
use ieee.std_logic_1164.all;
12
use ieee.std_logic_unsigned.all;
13
use ieee.numeric_std.all;
14
use work.rise_pack.all;
15
 
16
entity tb_id_stage_unit_vhd is
17
end tb_id_stage_unit_vhd;
18
 
19
architecture behavior of tb_id_stage_unit_vhd is
20
 
21
  -- component Declaration for the Unit Under Test (UUT)
22
  component id_stage
23
    port(
24
      clk   : in std_logic;
25
      reset : in std_logic;
26
 
27
      if_id_register : in  IF_ID_REGISTER_T;
28
      id_ex_register : out ID_EX_REGISTER_T;
29
 
30
      rx_addr : out REGISTER_ADDR_T;
31
      ry_addr : out REGISTER_ADDR_T;
32
      rz_addr : out REGISTER_ADDR_T;
33
 
34
      rx : in REGISTER_T;
35
      ry : in REGISTER_T;
36
      rz : in REGISTER_T;
37
      sr : in SR_REGISTER_T;
38
 
39
      lock_register : in  LOCK_REGISTER_T;
40
      set_reg_lock  : out std_logic;
41
      lock_reg_addr : out REGISTER_ADDR_T;
42
 
43
      stall_in  : in  std_logic;
44
      stall_out : out std_logic;
45
      clear_in  : in  std_logic
46
      );
47
  end component;
48
 
49
  --inputs
50
  signal clk            : std_logic := '0';
51
  signal reset          : std_logic := '0';
52
  signal if_id_register : IF_ID_REGISTER_T;
53
 
54
  signal stall_in       : std_logic     := '0';
55
  signal clear_in       : std_logic     := '0';
56
  signal rx             : REGISTER_T    := (others => '0');
57
  signal ry             : REGISTER_T    := (others => '0');
58
  signal rz             : REGISTER_T    := (others => '0');
59
  signal sr             : SR_REGISTER_T := (others => '0');
60
  signal lock_register  : LOCK_REGISTER_T;
61
  --Outputs
62
  signal id_ex_register : ID_EX_REGISTER_T;
63
  signal rx_addr        : std_logic_vector(REGISTER_ADDR_WIDTH - 1 downto 0);
64
  signal ry_addr        : std_logic_vector(REGISTER_ADDR_WIDTH - 1 downto 0);
65
  signal rz_addr        : std_logic_vector(REGISTER_ADDR_WIDTH - 1 downto 0);
66
  signal set_reg_lock   : std_logic;
67
  signal lock_reg_addr  : std_logic_vector(REGISTER_ADDR_WIDTH - 1 downto 0);
68
  signal stall_out      : std_logic;
69
 
70
begin
71
 
72
  -- instantiate the Unit Under Test (UUT)
73
  uut : id_stage port map(
74
    clk            => clk,
75
    reset          => reset,
76
    if_id_register => if_id_register,
77
    id_ex_register => id_ex_register,
78
    rx_addr        => rx_addr,
79
    ry_addr        => ry_addr,
80
    rz_addr        => rz_addr,
81
    rx             => rx,
82
    ry             => ry,
83
    rz             => rz,
84
    sr             => sr,
85
    lock_register  => lock_register,
86
    set_reg_lock   => set_reg_lock,
87
    lock_reg_addr  => lock_reg_addr,
88
    stall_in       => stall_in,
89
    stall_out      => stall_out,
90
    clear_in       => clear_in
91
    );
92
 
93
  cg : process
94
  begin
95
    clk <= '0';
96
    wait for 10 ns;
97
    clk <= '1';
98
    wait for 10 ns;
99
  end process;
100
 
101
  tb : process
102
  begin
103
    reset <= '0';
104
    wait for 100 ns;
105
    reset <= '1';
106
 
107
    -- stimulus 
108
    if_id_register.pc <= x"1234";
109
    if_id_register.ir <= "100"& "0" & "0001" & x"55";
110
 
111
    wait;                               -- will wait forever
112
  end process;
113
 
114
end;

powered by: WebSVN 2.1.0

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