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

Subversion Repositories core1990_interlaken

[/] [core1990_interlaken/] [trunk/] [gateware/] [simulation/] [deframing_meta_tb.vhd] - Blame information for rev 9

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

powered by: WebSVN 2.1.0

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