OpenCores
URL https://opencores.org/ocsvn/lzrw1-compressor-core/lzrw1-compressor-core/trunk

Subversion Repositories lzrw1-compressor-core

[/] [lzrw1-compressor-core/] [trunk/] [hw/] [testbench/] [historyTb.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 habicht
--/**************************************************************************************************************
2
--*
3
--*    L Z R W 1   E N C O D E R   C O R E
4
--*
5
--*  A high throughput loss less data compression core.
6
--* 
7
--* Copyright 2012-2013   Lukas Schrittwieser (LS)
8
--*
9
--*    This program is free software: you can redistribute it and/or modify
10
--*    it under the terms of the GNU General Public License as published by
11
--*    the Free Software Foundation, either version 2 of the License, or
12
--*    (at your option) any later version.
13
--*
14
--*    This program is distributed in the hope that it will be useful,
15
--*    but WITHOUT ANY WARRANTY; without even the implied warranty of
16
--*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
--*    GNU General Public License for more details.
18
--*
19
--*    You should have received a copy of the GNU General Public License
20
--*    along with this program; if not, write to the Free Software
21
--*    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
22
--*    Or see <http://www.gnu.org/licenses/>
23
--*
24
 
25
--***************************************************************************************************************
26
--*
27
--* Change Log:
28
--*
29
--* Version 1.0 - 2012/10/16 - LS
30
--*   started file
31
--*
32
--* Version 1.0 - 2013/04/05 - LS
33
--*   release
34
--*
35
--***************************************************************************************************************
36
--*
37
--* Naming convention:  http://dz.ee.ethz.ch/en/information/hdl-help/vhdl-naming-conventions.html
38
--*
39
--***************************************************************************************************************
40
--*
41
--* Simple testbench for manual signal inspection for histroy buffer.
42
--*
43
--***************************************************************************************************************
44
 
45
library ieee;
46
use ieee.std_logic_1164.all;
47
 
48
-------------------------------------------------------------------------------
49
 
50
entity historyBuffer_tb is
51
 
52
end historyBuffer_tb;
53
 
54
-------------------------------------------------------------------------------
55
 
56
architecture tb of historyBuffer_tb is
57
 
58
  component historyBuffer
59
    port (
60
      ClkxCI          : in  std_logic;
61
      RstxRI          : in  std_logic;
62
      WriteInxDI      : in  std_logic_vector(7 downto 0);
63
      WExSI           : in  std_logic;
64
      NextWrAdrxDO    : out std_logic_vector(11 downto 0);
65
      RExSI           : in  std_logic;
66
      ReadBackAdrxDI  : in  std_logic_vector(11 downto 2);
67
      ReadBackxDO     : out std_logic_vector(16*8-1 downto 0);
68
      ReadBackDonexSO : out std_logic);
69
  end component;
70
 
71
  -- component ports
72
  signal ClkxCI          : std_logic;
73
  signal RstxRI          : std_logic := '1';
74
  signal WriteInxDI      : std_logic_vector(7 downto 0) := (others => '0');
75
  signal WExSI           : std_logic := '0';
76
  signal NextWrAdrxDO    : std_logic_vector(11 downto 0);
77
  signal RExSI           : std_logic := '0';
78
  signal ReadBackAdrxDI  : std_logic_vector(11 downto 2) := (others => '0');
79
  signal ReadBackxDO     : std_logic_vector(16*8-1 downto 0);
80
  signal ReadBackDonexSO : std_logic;
81
 
82
  -- clock
83
  signal Clk : std_logic := '1';
84
 
85
begin  -- tb
86
 
87
  -- component instantiation
88
  DUT: historyBuffer
89
    port map (
90
      ClkxCI          => ClkxCI,
91
      RstxRI          => RstxRI,
92
      WriteInxDI      => WriteInxDI,
93
      WExSI           => WExSI,
94
      NextWrAdrxDO    => NextWrAdrxDO,
95
      RExSI           => RExSI,
96
      ReadBackAdrxDI  => ReadBackAdrxDI,
97
      ReadBackxDO     => ReadBackxDO,
98
      ReadBackDonexSO => ReadBackDonexSO);
99
 
100
  -- clock generation
101
  Clk <= not Clk after 10 ns;
102
  ClkxCI <= Clk;
103
 
104
  -- waveform generation
105
  WaveGen_Proc: process
106
  begin
107
    wait for 10 ns;
108
    wait until Clk = '1';
109
    RstxRI <= '0';
110
 
111
    -- first: write some data to buffer
112
    wait until Clk'event and Clk='1';
113
 WriteInxDI <= x"00";
114
    WExSI <= '1';
115
    wait until Clk'event and Clk='1';
116
 WriteInxDI <= x"01";
117
    WExSI <= '1';
118
    wait until Clk'event and Clk='1';
119
 WriteInxDI <= x"02";
120
    WExSI <= '1';
121
    wait until Clk'event and Clk='1';
122
 WriteInxDI <= x"03";
123
    WExSI <= '1';
124
    wait until Clk'event and Clk='1';
125
 WriteInxDI <= x"04";
126
    WExSI <= '1';
127
    wait until Clk'event and Clk='1';
128
 WriteInxDI <= x"05";
129
    WExSI <= '1';
130
    wait until Clk'event and Clk='1';
131
 WriteInxDI <= x"06";
132
    WExSI <= '1';
133
    wait until Clk'event and Clk='1';
134
 WriteInxDI <= x"07";
135
    WExSI <= '1';
136
    wait until Clk'event and Clk='1';
137
 WriteInxDI <= x"08";
138
    WExSI <= '1';
139
    wait until Clk'event and Clk='1';
140
 WriteInxDI <= x"09";
141
    WExSI <= '1';
142
    wait until Clk'event and Clk='1';
143
 WriteInxDI <= x"0a";
144
    WExSI <= '1';
145
    wait until Clk'event and Clk='1';
146
 WriteInxDI <= x"0b";
147
    WExSI <= '1';
148
    wait until Clk'event and Clk='1';
149
 WriteInxDI <= x"0c";
150
    WExSI <= '1';
151
    wait until Clk'event and Clk='1';
152
 WriteInxDI <= x"0d";
153
    WExSI <= '1';
154
    wait until Clk'event and Clk='1';
155
 WriteInxDI <= x"0e";
156
    WExSI <= '1';
157
    wait until Clk'event and Clk='1';
158
 WriteInxDI <= x"0f";
159
    WExSI <= '1';
160
    wait until Clk'event and Clk='1';
161
 WriteInxDI <= x"10";
162
    WExSI <= '1';
163
    wait until Clk'event and Clk='1';
164
 WriteInxDI <= x"11";
165
    WExSI <= '1';
166
    wait until Clk'event and Clk='1';
167
 WriteInxDI <= x"12";
168
    WExSI <= '1';
169
    wait until Clk'event and Clk='1';
170
 WriteInxDI <= x"13";
171
    WExSI <= '1';
172
    wait until Clk'event and Clk='1';
173
    WExSI <= '0';
174
 
175
    -- now read back
176
    ReadBackAdrxDI <= "0000000000";
177
    wait until Clk'event and Clk='1';
178
    ReadBackAdrxDI <= "0000000001";
179
    wait until Clk'event and Clk='1';
180
    ReadBackAdrxDI <= "0000000010";
181
    wait until Clk'event and Clk='1';
182
 
183
    wait;
184
 
185
 
186
  end process WaveGen_Proc;
187
 
188
 
189
 
190
end tb;
191
 
192
-------------------------------------------------------------------------------
193
 
194
configuration historyBuffer_tb_tb_cfg of historyBuffer_tb is
195
  for tb
196
  end for;
197
end historyBuffer_tb_tb_cfg;
198
 
199
-------------------------------------------------------------------------------

powered by: WebSVN 2.1.0

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