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

Subversion Repositories rise

[/] [rise/] [trunk/] [vhdl/] [tb_rlu_unit.vhd] - Blame information for rev 151

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

Line No. Rev Author Line
1 8 jlechner
-------------------------------------------------------------------------------
2
-- File: ex_stage.vhd
3
-- Author: Jakob Lechner, Urban Stadler, Harald Trinkl, Christian Walter
4
-- Created: 2006-12-31
5
-- Last updated: 2006-12-31
6
 
7
-- Description:
8
-- Testbench for RLU unit
9
-------------------------------------------------------------------------------
10
 
11
library ieee;
12
use ieee.std_logic_1164.all;
13
use ieee.std_logic_signed.all;
14
use ieee.numeric_std.all;
15
use IEEE.STD_LOGIC_ARITH.all;
16
use work.rise_pack.all;
17 71 jlechner
use work.RISE_PACK_SPECIFIC.all;
18 8 jlechner
 
19
entity tb_rlu_unit_vhd is
20
end tb_rlu_unit_vhd;
21
 
22
architecture behavior of tb_rlu_unit_vhd is
23
 
24
  -- component Declaration for the Unit Under Test (UUT)
25
  component rlu is
26
 
27 42 jlechner
                  port (
28
                    clk   : in std_logic;
29
                    reset : in std_logic;
30 8 jlechner
 
31 42 jlechner
                    lock_register : out LOCK_REGISTER_T;
32 8 jlechner
 
33 42 jlechner
                    set_lock0      : in std_logic;
34
                    set_lock_addr0 : in REGISTER_ADDR_T;
35
 
36
                    set_lock1      : in std_logic;
37
                    set_lock_addr1 : in REGISTER_ADDR_T;
38
 
39
                    clear_lock0      : in std_logic;
40
                    clear_lock_addr0 : in REGISTER_ADDR_T;
41
 
42
                    clear_lock1      : in std_logic;
43
                    clear_lock_addr1 : in REGISTER_ADDR_T);
44
 
45 8 jlechner
  end component;
46 42 jlechner
 
47 8 jlechner
  constant clk_period : time := 10 ns;
48
 
49
  --inputs
50 42 jlechner
  signal clk   : std_logic := '0';
51
  signal reset : std_logic := '0';
52
 
53
  signal clear_lock0_sig      : std_logic := '0';
54
  signal clear_lock_addr0_sig : REGISTER_ADDR_T;
55
 
56
  signal clear_lock1_sig      : std_logic := '0';
57
  signal clear_lock_addr1_sig : REGISTER_ADDR_T;
58
 
59
  signal set_lock0_sig      : std_logic := '0';
60
  signal set_lock_addr0_sig : REGISTER_ADDR_T;
61
 
62
  signal set_lock1_sig      : std_logic := '0';
63
  signal set_lock_addr1_sig : REGISTER_ADDR_T;
64
 
65 8 jlechner
  --Outputs
66
  signal lock_register : LOCK_REGISTER_T;
67 42 jlechner
 
68 8 jlechner
begin
69
 
70
  -- instantiate the Unit Under Test (UUT)
71
  uut : rlu port map(
72 42 jlechner
    clk                 => clk,
73
    reset               => reset,
74 8 jlechner
 
75 42 jlechner
    lock_register       => lock_register,
76 8 jlechner
 
77 42 jlechner
    set_lock0           => set_lock0_sig,
78
    set_lock_addr0      => set_lock_addr0_sig,
79 8 jlechner
 
80 42 jlechner
    set_lock1           => set_lock1_sig,
81
    set_lock_addr1      => set_lock_addr1_sig,
82
 
83
    clear_lock0         => clear_lock0_sig,
84
    clear_lock_addr0    => clear_lock_addr0_sig,
85
 
86
    clear_lock1         => clear_lock1_sig,
87
    clear_lock_addr1    => clear_lock_addr1_sig);
88
 
89
 
90 8 jlechner
  cg : process
91
  begin
92
    clk <= '1';
93
    wait for clk_period/2;
94
    clk <= '0';
95
    wait for clk_period/2;
96
  end process;
97
 
98
  tb : process
99
  begin
100
    reset <= '0';
101
    wait for 10 * clk_period;
102
    reset <= '1';
103
 
104
 
105 42 jlechner
    set_lock_addr0_sig     <= CONV_STD_LOGIC_VECTOR(8, REGISTER_ADDR_WIDTH);
106
    set_lock0_sig <= '1';
107 8 jlechner
    wait for clk_period;
108 42 jlechner
    set_lock_addr0_sig     <= CONV_STD_LOGIC_VECTOR(9, REGISTER_ADDR_WIDTH);
109
    set_lock0_sig <= '1';
110
    set_lock_addr1_sig     <= SR_REGISTER_ADDR;
111
    set_lock1_sig <= '1';
112
    clear_lock_addr0_sig   <= CONV_STD_LOGIC_VECTOR(8, REGISTER_ADDR_WIDTH);
113
    clear_lock0_sig <= '1';
114 8 jlechner
 
115
    wait;                               -- will wait forever
116
  end process;
117
 
118
end;

powered by: WebSVN 2.1.0

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