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

Subversion Repositories spacewiresystemc

[/] [spacewiresystemc/] [trunk/] [testbench/] [module_tb.v] - Blame information for rev 5

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

Line No. Rev Author Line
1 5 redbear
`timescale 1ns/1ns
2
`default_nettype none
3
 
4
module module_tb;
5
 
6
        reg CLK_SIM;
7
 
8
        `ifdef VERILOG_A
9
 
10
                /*SPWTCR*/
11
                wire CLOCK;
12
                reg CLK;
13
                wire RESETn;
14
                wire LINK_START;
15
                wire LINK_DISABLE;
16
                wire AUTOSTART;
17
                wire [2:0] CURRENTSTATE;
18
                wire [10:0] FLAGS;
19
                wire [8:0] DATA_I;
20
                wire WR_DATA;
21
                wire TX_FULL;
22
                wire [8:0] DATA_O;
23
                wire RD_DATA;
24
                wire RX_EMPTY;
25
                wire TICK_OUT;
26
                wire [7:0] TIME_OUT;
27
                wire TICK_IN;
28
                wire [7:0] TIME_IN;
29
                wire [6:0] TX_CLK_DIV;
30
                wire SPILL_ENABLE;
31
                wire Din;
32
                wire Sin;
33
                wire Dout;
34
                wire Sout;
35
 
36
                wire [3:0] SPW_SC_FSM;
37
                wire [3:0] SPW_SC_FSM_OUT;
38
                wire RX_CLOCK_RECOVERY_SC;
39
                wire TX_CLOCK_RECOVERY_VLOG;
40
                wire TX_CLOCK_OUT;
41
                wire TX_CLOCK_OUT_SC;
42
 
43
                assign RX_CLOCK_RECOVERY_SC = Din ^ Sin;
44
                assign TX_CLOCK_OUT_SC = TX_CLOCK_OUT;
45
                assign SPW_SC_FSM_OUT = SPW_SC_FSM;
46
 
47
                assign TX_CLOCK_RECOVERY_VLOG = Dout ^ Sout;
48
 
49
                assign CLOCK = CLK;
50
 
51
                initial CLK = 1'b0;
52
                always #(10) CLK = ~CLK;
53
 
54
                SpwTCR DUT_TCR (
55
                                .CLOCK(CLOCK),
56
                                .RESETn(RESETn),
57
                                .LINK_START(LINK_START),
58
                                .LINK_DISABLE(LINK_DISABLE),
59
                                .AUTOSTART(AUTOSTART),
60
                                .CURRENTSTATE(CURRENTSTATE),
61
                                .FLAGS(FLAGS),
62
                                .DATA_I(DATA_I),
63
                                .WR_DATA(WR_DATA),
64
                                .TX_FULL(TX_FULL),
65
                                .DATA_O(DATA_O),
66
                                .RD_DATA(RD_DATA),
67
                                .RX_EMPTY(RX_EMPTY),
68
                                .TICK_OUT(TICK_OUT),
69
                                .TIME_OUT(TIME_OUT),
70
                                .TICK_IN(TICK_IN),
71
                                .TIME_IN(TIME_IN),
72
                                .TX_CLK_DIV(TX_CLK_DIV),
73
                                .SPILL_ENABLE(SPILL_ENABLE),
74
                                .Din(Din),
75
                                .Sin(Sin),
76
                                .Dout(Dout),
77
                                .Sout(Sout)
78
                        );
79
 
80
 
81
                        always@(posedge CLK , negedge CLK)
82
                                $global_reset;
83
 
84
                        always@(posedge CLK)
85
                                $write_tx_spw;
86
 
87
                        always@(posedge CLK)
88
                                $receive_rx_spw;
89
 
90
                        //FLAG USED TO FINISH SIMULATION PROGRAM 
91
                        always@(posedge CLK)
92
                        begin
93
                                wait(i == 1);
94
                                $finish();
95
                        end
96
        `endif
97
 
98
        `ifdef VERILOG_B
99
         `endif
100
 
101
                integer time_clk_ns;
102
 
103
                reg PCLK;
104
                reg PPLLCLK;
105
 
106
                wire RESETN;
107
 
108
                wire TOP_SIN;
109
                wire TOP_DIN;
110
 
111
                wire AUTO_START;
112
                wire LINK_START;
113
                wire LINK_DISABLE;
114
 
115
                wire TOP_TX_WRITE;
116
                wire [8:0] TOP_TX_DATA;
117
 
118
                wire TOP_TX_TICK;
119
                wire [7:0] TOP_TX_TIME;
120
 
121
                wire CREDIT_ERROR_RX;
122
                wire TOP_SEND_FCT_NOW;
123
 
124
                wire [8:0] DATARX_FLAG;
125
                wire BUFFER_WRITE;
126
 
127
                wire [7:0] TIME_OUT;
128
                wire TICK_OUT;
129
 
130
                wire TOP_DOUT;
131
                wire TOP_SOUT;
132
 
133
                wire TOP_TX_READY;
134
                wire TOP_TX_READY_TICK;
135
 
136
                wire [5:0] TOP_FSM;
137
 
138
                integer i;
139
 
140
                initial
141
                 begin
142
                        $dumpfile("module_tb.vcd");
143
                        $dumpvars(0,module_tb);
144
                        $global_init;
145
                        i=0;
146
                 end
147
 
148
                initial PCLK = 1'b0;
149
                always #(5) PCLK = ~PCLK;
150
 
151
                initial PPLLCLK = 1'b0;
152
                always #(100) PPLLCLK = ~PPLLCLK;
153
 
154
                initial CLK_SIM = 1'b0;
155
                always #(1) CLK_SIM = ~CLK_SIM;
156
 
157
 
158
                top_spw_ultra_light DUT_ULIGHT(
159
                                        .pclk(PCLK),
160
                                        .ppllclk(PPLLCLK),
161
                                        .resetn(RESETN),
162
 
163
                                        .top_sin(TOP_SIN),
164
                                        .top_din(TOP_DIN),
165
 
166
                                        .top_auto_start(AUTO_START),
167
                                        .top_link_start(LINK_START),
168
                                        .top_link_disable(LINK_DISABLE),
169
 
170
                                        .top_tx_write(TOP_TX_WRITE),
171
                                        .top_tx_data(TOP_TX_DATA),
172
 
173
                                        .top_tx_tick(TOP_TX_TICK),
174
                                        .top_tx_time(TOP_TX_TIME),
175
 
176
                                        .credit_error_rx(CREDIT_ERROR_RX),
177
                                        .top_send_fct_now(TOP_SEND_FCT_NOW),
178
 
179
                                        .datarx_flag(DATARX_FLAG),
180
                                        .buffer_write(BUFFER_WRITE),
181
 
182
                                        .time_out(TIME_OUT),
183
                                        .tick_out(TICK_OUT),
184
 
185
                                        .top_dout(TOP_DOUT),
186
                                        .top_sout(TOP_SOUT),
187
 
188
                                        .top_tx_ready(TOP_TX_READY),
189
                                        .top_tx_ready_tick(TOP_TX_READY_TICK),
190
 
191
                                        .top_fsm(TOP_FSM)
192
                                      );
193
 
194
 
195
 
196
 
197
                //
198
                always@(posedge PCLK)
199
                        $write_tx_fsm_spw_ultra_light;
200
 
201
                //
202
                always@(posedge PCLK)
203
                        $write_tx_data_spw_ultra_light;
204
 
205
                always@(posedge PCLK)
206
                        $write_tx_time_code_spw_ultra_light;
207
 
208
                //
209
                always@(posedge PCLK)
210
                        $receive_rx_data_spw_ultra_light;
211
 
212
                always@(posedge PCLK)
213
                        $receive_rx_time_code_spw_ultra_light;
214
 
215
                //
216
                always@(posedge PCLK , negedge PCLK)
217
                        $global_reset;
218
                //
219
                always@(posedge CLK_SIM)
220
                        $run_sim;
221
 
222
        //FLAG USED TO FINISH SIMULATION PROGRAM 
223
        always@(posedge CLK_SIM)
224
        begin
225
                wait(i == 1);
226
                $finish();
227
        end
228
 
229
 
230
endmodule

powered by: WebSVN 2.1.0

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