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

Subversion Repositories core1990_interlaken

[/] [core1990_interlaken/] [trunk/] [gateware/] [simulation/] [deframing_burst_tb.vhd] - Blame information for rev 8

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

Line No. Rev Author Line
1 6 N.Boukadid
library ieee;
2
use ieee.std_logic_1164.all;
3
 
4
entity testbench_deburster is
5
end entity testbench_deburster;
6
 
7
architecture tb_deburster of testbench_deburster is
8
 
9
    signal Clk          : std_logic;                     -- Clock input
10
        signal Reset            : std_logic;                                     -- Reset decoder
11
        signal Data_In      : std_logic_vector(63 downto 0); -- Data input
12
        signal Deburst_En   : std_logic;                     -- Enables the decoder
13
        signal Data_Out     : std_logic_vector(65 downto 0); -- Decoded 64-bit output
14
 
15
    signal Data_Control_In  : std_logic;                     -- Indicates whether the word is data or control
16
    signal Data_Control_Out : std_logic;                    --    Indicates whether the word is data or control
17
 
18
    signal CRC24_Error      : std_logic;
19
 
20
    signal Data_Valid_In    : std_logic;
21
    signal Data_Valid_Out   : std_logic;
22
    signal FIFO_Full        : std_logic;
23
    signal FIFO_Data        : std_logic_vector(4 downto 0);
24
    signal FIFO_Write       : std_logic;
25
 
26
    constant CLK_PERIOD : time := 10 ns;
27
 
28
begin
29
  uut : entity work.Burst_Deframer
30
  port map (
31
    clk => clk,
32
    reset => reset,
33
    Deburst_En => Deburst_En,
34
 
35
    Data_in => Data_in,
36
    Data_out => Data_out,
37
 
38
    Data_control_in => Data_control_in,
39
    Data_control_out => Data_control_out,
40
 
41
    CRC24_Error => CRC24_Error,
42
 
43
    FIFO_Full => FIFO_Full,
44
    FIFO_Data => FIFO_Data,
45
    FIFO_Write => FIFO_Write,
46
 
47
    Data_valid_in => Data_valid_in,
48
    Data_valid_out => Data_valid_out
49
  );
50
 
51
   Clk_process :process
52
     begin
53
          clk <= '1';
54
          wait for CLK_PERIOD/2;  --for half of clock period clk stays at '0'.
55
          clk <= '0';
56
          wait for CLK_PERIOD/2;  --for next half of clock period clk stays at '1'.
57
     end process;
58
 
59
    simulation : process
60
    begin
61
        wait for 1 ps;
62
        Data_control_in <= '0';
63
        deburst_en <= '1';
64
        reset <= '1';
65
        data_in <= (others=>'0');
66
 
67
        wait for CLK_PERIOD;
68
 
69
        wait for CLK_PERIOD;
70
 
71
        reset <= '0';
72
        Data_control_in <= '1';
73
        Data_in <= X"E000_0001_0000_0000";
74
        wait for CLK_PERIOD;
75
 
76
        Data_control_in <= '0';
77
        Data_in <= X"2800_0000_0000_0000";
78
        wait for CLK_PERIOD;
79
 
80
 
81
        data_in <= X"1e1e_1e1e_1e1e_1e1e";
82
        wait for CLK_PERIOD;
83
 
84
        Data_in <= X"4f21a2a3a4a5a6a7";
85
        wait for CLK_PERIOD;
86
 
87
 
88
        data_in <= X"5f5e5a5c5b60f2a0";
89
        wait for CLK_PERIOD;
90
 
91
        Data_control_in <= '1';
92
        data_in  <= X"9000_0001_dd52_35a7";
93
        wait for CLK_PERIOD;
94
 
95
        Data_control_in <= '0';
96
        data_in  <= X"70000FFF000000F0";
97
        wait for CLK_PERIOD*2;
98
 
99
 
100
        Data_in  <= X"2f5e5d5c5b5a5958";
101
        wait for CLK_PERIOD;
102
 
103
        wait for CLK_PERIOD;
104
 
105
        Data_Control_In <= '1';
106
        data_in  <= X"E000_0001_0000_0000";
107
        wait for CLK_PERIOD*3;
108
        Data_Control_In <= '0';
109
        data_in  <= X"9486576758050505";
110
        wait for CLK_PERIOD;
111
 
112
 
113
        data_in <= X"60b35d5dc4a582a7";
114
        wait for CLK_PERIOD;
115
 
116
        Data_control_in <= '1';
117
        data_in  <= X"9000_0001_dd52_35a7";
118
        wait for CLK_PERIOD;
119
 
120
        Data_control_in <= '0';
121
        data_in <= X"2f5e5d5c5b5a5958";
122
        wait for CLK_PERIOD*5;
123
 
124
        Data_in <= X"1f5e5d5c5b5a5958";
125
        wait for CLK_PERIOD*3;
126
 
127
        Data_Control_In <= '1';
128
        Data_in <= X"6400_0000_6222_431a";
129
        wait for clk_period;
130
 
131
        Data_control_in <= '1';
132
        Data_in <= X"78f6_78f6_78f6_78f6";
133
        wait for CLK_PERIOD;
134
 
135
 
136
        Data_in <= X"2800_0000_0000_0000";
137
        wait for CLK_PERIOD;
138
 
139
 
140
        data_in <= X"1e1e_1e1e_1e1e_1e1e";
141
        wait for CLK_PERIOD;
142
 
143
        Data_control_in <= '0';
144
        Data_in <= X"4f21a2a3a4a5a6a7";
145
        wait for CLK_PERIOD;
146
 
147
        Data_control_in <= '1';
148
        Data_in <= X"E000_0001_0000_0000";
149
        wait for CLK_PERIOD;
150
        Data_control_in <= '0';
151
 
152
        data_in <= X"5f5e5a5c5b60f2a0";
153
        wait for CLK_PERIOD;
154
 
155
        data_in <= X"2f5e5d5c5b5a5958";
156
        wait for CLK_PERIOD;
157
 
158
        Data_control_in <= '1';
159
        data_in <= X"C000_0001_0000_0000";
160
        wait for CLK_PERIOD;
161
        Data_control_in <= '0';
162
 
163
        Data_in <= X"1f5e5d5c5b5a5958";
164
        wait for CLK_PERIOD;
165
 
166
 
167
        Data_in <= X"2f5e5d5c5b5a5958";
168
        wait for CLK_PERIOD;
169
 
170
        Data_in <= X"78f6_78f6_78f6_78f6";
171
        wait for CLK_PERIOD;
172
 
173
        Data_control_in <= '1';
174
        data_in  <= X"9000_0001_dd52_35a7";
175
        wait for CLK_PERIOD;
176
        Data_control_in <= '0';
177
 
178
        Data_in <= X"2800_0000_0000_0000";
179
        wait for CLK_PERIOD;
180
 
181
 
182
        data_in <= X"1e1e_1e1e_1e1e_1e1e";
183
        wait for CLK_PERIOD;
184
 
185
        Data_Control_In <= '1';
186
        data_in <= X"645e5d5c5b5a5958";
187
        wait for CLK_PERIOD;
188
 
189
        Data_in <= X"78f6_78f6_78f6_78f6";
190
        wait for CLK_PERIOD;
191
 
192
 
193
        Data_in <= X"2800_0000_0000_0000";
194
        wait for CLK_PERIOD;
195
 
196
        Data_Control_In <= '0';
197
        data_in <= X"1e1e_1e1e_1e1e_1e1e";
198
        wait for CLK_PERIOD;
199
 
200
        Data_in <= X"4f21a2a3a4a5a6a7";
201
        wait for CLK_PERIOD;
202
 
203
 
204
        data_in <= X"5f5e5a5c5b60f2a0";
205
        wait for CLK_PERIOD;
206
 
207
        data_in  <= X"635e22a3a4a5a7a7";
208
        wait for CLK_PERIOD;
209
 
210
        data_in <= X"5f5e5a5c5b60f2a0";
211
        wait for CLK_PERIOD;
212
 
213
        data_in  <= X"635e22a3a4a5a7a7";
214
        wait for CLK_PERIOD;
215
 
216
        data_in  <= X"70000FFF000000F0";
217
        wait for CLK_PERIOD*2;
218
 
219
 
220
        Data_in <= X"2f5e5d5c5b5a5958";
221
        wait for CLK_PERIOD;
222
 
223
        data_in  <= X"8050505050050505";
224
        wait for CLK_PERIOD*3;
225
 
226
        data_in  <= X"9486576758050505";
227
        wait for CLK_PERIOD;
228
 
229
        data_in <= X"60b35d5dc4a582a7";
230
        wait for CLK_PERIOD*60;
231
 
232
        data_in  <= X"8050505050050505";
233
        wait for CLK_PERIOD*3;
234
 
235
        data_in  <= X"9486576758050505";
236
        wait for CLK_PERIOD;
237
 
238
 
239
        data_in <= X"60b35d5dc4a582a7";
240
        wait for CLK_PERIOD;
241
 
242
 
243
        data_in <= X"2f5e5d5c5b5a5958";
244
        wait for CLK_PERIOD*12;
245
 
246
        data_in <= X"2c8e5d5c5b5a5958";
247
        wait for CLK_PERIOD;
248
 
249
        Data_in <= X"1f5e5d5c5b5a5958";
250
        wait for CLK_PERIOD*26;
251
 
252
        data_in <= X"2c8e5d5c5b5a5958";
253
        wait for CLK_PERIOD*18;
254
 
255
        data_in <= X"1f5e5d5c5b5a5958";
256
        wait for CLK_PERIOD;
257
        wait;
258
    end process;
259
 
260
end architecture tb_deburster;
261
 

powered by: WebSVN 2.1.0

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