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

Subversion Repositories core1990_interlaken

[/] [core1990_interlaken/] [trunk/] [gateware/] [simulation/] [descrambler_tb.vhd] - Blame information for rev 6

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_descrambler is
5
end entity testbench_descrambler;
6
 
7
architecture tb_descrambler of testbench_descrambler 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 Data_Out     : std_logic_vector(63 downto 0); -- Decoded 64-bit output
13
        signal Data_Control_In : std_logic;                    --       Indicates whether the word is data or control
14
        signal Data_Control_Out : std_logic;                    --      Indicates whether the word is data or control
15
        signal Lane_Number     : std_logic_vector (3 downto 0);
16
        signal Error_BadSync            : std_logic;
17
        signal Error_StateMismatch      : std_logic;
18
        signal Error_NoSync                     : std_logic;
19
        signal Data_Valid_Out  : std_logic;
20
 
21
 
22
 constant CLK_PERIOD : time := 10 ns;
23
 
24
begin
25
  uut : entity work.Descrambler
26
  port map (
27
    clk => clk,
28
    reset => reset,
29
 
30
    Data_in => Data_in,
31
    Data_out => Data_out,
32
    Data_control_In => Data_control_In,
33
    Data_control_Out => Data_control_Out,
34
    Data_valid_out => Data_valid_out,
35
 
36
    Lane_Number => Lane_Number,
37
 
38
    Error_BadSync => Error_BadSync,
39
    Error_StateMismatch => Error_StateMismatch,
40
        Error_NoSync => Error_NoSync
41
  );
42
 
43
        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
 
51
    simulation : process
52
    begin
53
        wait for 1 ps;
54
        Data_Control_In <= '0';
55
        reset <= '1';
56
        Lane_Number <= "0001";
57
        data_in <= (others=>'0');
58
 
59
        wait for CLK_PERIOD;
60
 
61
        wait for CLK_PERIOD;
62
 
63
        reset <= '0';
64
        Data_in <= X"1f5e5d5c5b5a5958";
65
        wait for CLK_PERIOD;
66
 
67
        Data_Control_In <= '1';
68
        Data_in <= X"78f6_78f6_78f6_78f6"; --1
69
        wait for CLK_PERIOD;
70
 
71
        Data_Control_In <= '0';
72
        data_in <= X"3f5e5d5c5b5a5958";
73
        wait for CLK_PERIOD*23;
74
 
75
        Data_Control_In <= '1';
76
        Data_in <= X"78f6_78f6_78f6_78f6";--2
77
        wait for CLK_PERIOD;
78
 
79
        Data_Control_In <= '0';
80
        data_in <= X"5f5e5a5c5b60f2a0";
81
        wait for CLK_PERIOD*23;
82
 
83
        Data_Control_In <= '1';
84
        data_in  <= X"78f6_78f6_78f6_78f6";--3
85
        wait for CLK_PERIOD;
86
 
87
        Data_Control_In <= '0';
88
        data_in  <= X"70000FFF000000F0";
89
        wait for CLK_PERIOD*23;
90
 
91
        Data_Control_In <= '1';
92
        data_in  <= X"78f6_78f6_78f6_78f6";--4 -> lock
93
        wait for CLK_PERIOD;
94
 
95
        data_in  <= X"5f5e5a5c5b60f2a0";
96
        wait for CLK_PERIOD;
97
 
98
        data_in  <= X"2f5e5d5c5b5a5958";
99
        wait for CLK_PERIOD;
100
 
101
        Data_Control_In <= '0';
102
        data_in  <= X"70000FFF000000F0";
103
        wait for CLK_PERIOD*21;
104
 
105
        Data_Control_In <= '1';
106
        data_in  <= X"78f6_78f6_78f6_78f6"; --Sync & 
107
        wait for CLK_PERIOD;
108
 
109
        Data_In  <= X"2Bfe_d100_19e0_1dbd";
110
        wait for CLK_PERIOD;
111
 
112
        Data_Control_In <= '0';
113
        data_in  <= X"70000FFF000000F0";
114
        wait for CLK_PERIOD*2;
115
 
116
        Data_Control_In <= '1';
117
        Data_in <= X"2f5e5d5c5b5a5958";
118
        wait for CLK_PERIOD;
119
 
120
        Data_Control_In <= '0';
121
        data_in  <= X"9486576758050505";
122
        wait for CLK_PERIOD*19;
123
 
124
        wait for CLK_PERIOD;
125
 
126
 
127
        data_in  <= X"8050505050050505";
128
        wait for CLK_PERIOD*3;
129
 
130
        data_in  <= X"9486576758050505";
131
        wait for CLK_PERIOD;
132
 
133
 
134
        data_in <= X"60b35d5dc4a582a7";
135
        wait for CLK_PERIOD;
136
 
137
 
138
        data_in <= X"2f5e5d5c5b5a5958";
139
        wait for CLK_PERIOD*12;
140
 
141
        data_in <= X"2f5e5d5c5b5a5958";
142
        wait for CLK_PERIOD;
143
 
144
        Data_in <= X"1f5e5d5c5b5a5958";
145
        wait for CLK_PERIOD;
146
 
147
 
148
        Data_in <= X"2f5e5d5c5b5a5958";
149
        wait for CLK_PERIOD;
150
 
151
 
152
        data_in <= X"3f5e5d5c5b5a5958";
153
        wait for CLK_PERIOD;
154
 
155
 
156
        Data_in <= X"4f21a2a3a4a5a6a7";
157
        wait for CLK_PERIOD;
158
 
159
 
160
        data_in <= X"5f5e5a5c5b60f2a0";
161
        wait for CLK_PERIOD;
162
 
163
        data_in <= X"635e22a3a4a5a7a7";
164
        wait for CLK_PERIOD;
165
 
166
        data_in <= X"5f5e5a5c5b60f2a0";
167
        wait for CLK_PERIOD;
168
 
169
        data_in <= X"635e22a3a4a5a7a7";
170
        wait for CLK_PERIOD;
171
 
172
        data_in <= X"70000FFF000000F0";
173
        wait for CLK_PERIOD*2;
174
 
175
 
176
        Data_in <= X"2f5e5d5c5b5a5958";
177
        wait for CLK_PERIOD;
178
 
179
        data_in  <= X"8050505050050505";
180
        wait for CLK_PERIOD*3;
181
 
182
        data_in  <= X"9486576758050505";
183
        wait for CLK_PERIOD;
184
 
185
        data_in <= X"60b35d5dc4a582a7";
186
        wait for CLK_PERIOD*60;
187
 
188
        data_in  <= X"8050505050050505";
189
        wait for CLK_PERIOD*3;
190
 
191
        data_in  <= X"9486576758050505";
192
        wait for CLK_PERIOD;
193
 
194
 
195
        data_in <= X"60b35d5dc4a582a7";
196
        wait for CLK_PERIOD;
197
 
198
 
199
        data_in <= X"2f5e5d5c5b5a5958";
200
        wait for CLK_PERIOD*12;
201
 
202
        data_in <= X"2c8e5d5c5b5a5958";
203
        wait for CLK_PERIOD;
204
 
205
        Data_in <= X"1f5e5d5c5b5a5958";
206
        wait for CLK_PERIOD*26;
207
 
208
        data_in <= X"2c8e5d5c5b5a5958";
209
        wait for CLK_PERIOD*18;
210
 
211
        data_in <= X"1f5e5d5c5b5a5958";
212
        wait for CLK_PERIOD;
213
        wait;
214
    end process;
215
 
216
end architecture tb_descrambler;
217
 

powered by: WebSVN 2.1.0

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