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

Subversion Repositories spacewiresystemc

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

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 7 redbear
                wire TX_CLOCK_RECOVERY_VLOG;
139
                wire [3:0] SPW_SC_FSM;
140
                wire [3:0] SPW_SC_FSM_OUT;
141
 
142
                assign TX_CLOCK_RECOVERY_VLOG = TOP_DOUT ^ TOP_SOUT;
143
                assign SPW_SC_FSM_OUT = SPW_SC_FSM;
144
 
145 5 redbear
                integer i;
146
 
147
                initial
148
                 begin
149
                        $dumpfile("module_tb.vcd");
150
                        $dumpvars(0,module_tb);
151
                        $global_init;
152
                        i=0;
153
                 end
154
 
155
                initial PCLK = 1'b0;
156
                always #(5) PCLK = ~PCLK;
157
 
158
                initial PPLLCLK = 1'b0;
159
                always #(100) PPLLCLK = ~PPLLCLK;
160
 
161
                initial CLK_SIM = 1'b0;
162
                always #(1) CLK_SIM = ~CLK_SIM;
163
 
164
 
165
                top_spw_ultra_light DUT_ULIGHT(
166
                                        .pclk(PCLK),
167
                                        .ppllclk(PPLLCLK),
168
                                        .resetn(RESETN),
169
 
170
                                        .top_sin(TOP_SIN),
171
                                        .top_din(TOP_DIN),
172
 
173
                                        .top_auto_start(AUTO_START),
174
                                        .top_link_start(LINK_START),
175
                                        .top_link_disable(LINK_DISABLE),
176
 
177
                                        .top_tx_write(TOP_TX_WRITE),
178
                                        .top_tx_data(TOP_TX_DATA),
179
 
180
                                        .top_tx_tick(TOP_TX_TICK),
181
                                        .top_tx_time(TOP_TX_TIME),
182
 
183
                                        .credit_error_rx(CREDIT_ERROR_RX),
184
                                        .top_send_fct_now(TOP_SEND_FCT_NOW),
185
 
186
                                        .datarx_flag(DATARX_FLAG),
187
                                        .buffer_write(BUFFER_WRITE),
188
 
189
                                        .time_out(TIME_OUT),
190
                                        .tick_out(TICK_OUT),
191
 
192
                                        .top_dout(TOP_DOUT),
193
                                        .top_sout(TOP_SOUT),
194
 
195
                                        .top_tx_ready(TOP_TX_READY),
196
                                        .top_tx_ready_tick(TOP_TX_READY_TICK),
197
 
198
                                        .top_fsm(TOP_FSM)
199
                                      );
200
 
201
 
202
 
203
 
204 7 redbear
        //
205
        always@(posedge PCLK)
206
                $write_tx_fsm_spw_ultra_light;
207 5 redbear
 
208 7 redbear
        //
209
        always@(posedge PCLK)
210
                $write_tx_data_spw_ultra_light;
211 5 redbear
 
212 7 redbear
        always@(posedge PCLK)
213
                $write_tx_time_code_spw_ultra_light;
214 5 redbear
 
215 7 redbear
        //
216
        always@(posedge BUFFER_WRITE)
217
                $receive_rx_data_spw_ultra_light;
218 5 redbear
 
219 7 redbear
        always@(posedge TICK_OUT)
220
                $receive_rx_time_code_spw_ultra_light;
221 5 redbear
 
222 7 redbear
        //
223
        always@(posedge PCLK , negedge PCLK)
224
                $global_reset;
225
 
226
        //
227
        always@(posedge CLK_SIM)
228
                $run_sim;
229 5 redbear
 
230
        //FLAG USED TO FINISH SIMULATION PROGRAM 
231
        always@(posedge CLK_SIM)
232
        begin
233
                wait(i == 1);
234
                $finish();
235
        end
236
 
237
 
238
endmodule

powered by: WebSVN 2.1.0

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