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

Subversion Repositories spacewiresystemc

[/] [spacewiresystemc/] [trunk/] [systemC/] [top_spw.h] - Blame information for rev 29

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

Line No. Rev Author Line
1 29 redbear
//+FHDR------------------------------------------------------------------------
2
//Copyright (c) 2013 Latin Group American Integhrated Circuit, Inc. All rights reserved
3
//GLADIC Open Source RTL
4
//-----------------------------------------------------------------------------
5
//FILE NAME      :
6
//DEPARTMENT     : IC Design / Verification
7
//AUTHOR         : Felipe Fernandes da Costa
8
//AUTHOR’S EMAIL :
9
//-----------------------------------------------------------------------------
10
//RELEASE HISTORY
11
//VERSION DATE AUTHOR DESCRIPTION
12
//1.0 YYYY-MM-DD name
13
//-----------------------------------------------------------------------------
14
//KEYWORDS : General file searching keywords, leave blank if none.
15
//-----------------------------------------------------------------------------
16
//PURPOSE  : ECSS_E_ST_50_12C_31_july_2008
17
//-----------------------------------------------------------------------------
18
//PARAMETERS
19
//PARAM NAME            RANGE   : DESCRIPTION : DEFAULT : UNITS
20
//e.g.DATA_WIDTH        [32,16] : width of the DATA : 32:
21
//-----------------------------------------------------------------------------
22
//REUSE ISSUES
23
//Reset Strategy        :
24
//Clock Domains         :
25
//Critical Timing       :
26
//Test Features         :
27
//Asynchronous I/F      :
28
//Scan Methodology      :
29
//Instantiations        :
30
//Synthesizable (y/n)   :
31
//Other                 :
32
//-FHDR------------------------------------------------------------------------
33
#ifndef TX_RX_SC_TOP_H
34
#define TX_RX_SC_TOP_H
35
 
36
#include "spw_fsm.h"
37
 
38
#include "tx_spw.h"
39
#include "tx_clock.h"
40
#include "link_sc.h"
41
 
42
#include "rx_spw.h"
43
#include "rx_spw_clock_recovery.h"
44
 
45
#include "send_module_sc.h"
46
 
47
class sc_TOP;
48
 
49
SC_MODULE(sc_TOP)
50
{
51
 
52
        /*FSM signal*/
53
        sc_in<bool> CLOCK;
54
        sc_in<bool> RESET;
55
        sc_in<bool> LINK_START;
56
        sc_in<bool> LINK_DISABLE;
57
        sc_in<bool> AUTO_START;
58
        sc_out<sc_uint<4> > FSM_SPW_OUT;
59
 
60
        /*Signal come from RX Receiver*/
61
        sc_signal<bool> GOT_FCT_RX;
62
        sc_signal<bool> GOT_TIMECODE_RX;
63
        sc_signal<bool> GOTNCHAR_RX;
64
        sc_signal<bool> GOTNULL_RX;
65
        sc_signal<bool> GOTBIT_RX;
66
        sc_signal<bool> CREDITERROR_RX;
67
        sc_signal<bool> RXERROR;
68
 
69
        /*Signal come from TX Transmit*/
70
        sc_signal<bool> ENABLE_TX;
71
        sc_signal<bool> SEND_NULL_TX;
72
        sc_signal<bool> SEND_FCT_TX;
73
        sc_signal<bool> SEND_NCHAR_TX;
74
        sc_signal<bool> SEND_TIME_CODE_TX;
75
 
76
        /*RESET TX / RX*/
77
        sc_signal<bool> RESET_TX;
78
 
79
        //sc_signal<bool> GOT_FCT_TX;
80
        //TX ONLY
81
        sc_signal<bool> TICKIN_TX;
82
        sc_signal<sc_uint<8> > TIMEIN_CONTROL_FLAG_TX;
83
 
84
        sc_signal<bool> SEND_FCT_NOW_TOP;
85
        sc_signal<bool> TXWRITE_TX_S;
86
        sc_signal<sc_uint<9> > TXDATA_FLAGCTRL_TX;
87
 
88
        sc_signal<bool> READY_TX;
89
        sc_signal<bool> READY_TICK;
90
 
91
        sc_signal<bool> CLOCK_TX_OUT;
92
 
93
        sc_out<uint> DOUT; //TROCAR PARA UINT QUANDO FOR PARA O VPI
94
        sc_out<uint> SOUT; //TROCAR PARA UINT QUANDO FOR PARA O VPI
95
 
96
        sc_out<sc_uint<4> > FSM_TX;
97
 
98
        //MODULE RX
99
        sc_in<uint>  DIN;
100
        sc_in<uint>  SIN;
101
 
102
        sc_signal<bool> ENABLE_RX;
103
        sc_signal<bool> RESET_RX;
104
 
105
        sc_signal<bool> RX_CLOCK_IN;
106
        sc_in<bool> BUFFER_READY;
107
        sc_out<sc_uint<9> > DATARX_FLAG;
108
        sc_out<bool> BUFFER_WRITE;
109
 
110
        sc_out<sc_uint<8> > TIME_OUT;
111
        sc_out<bool>    TICK_OUT;
112
        sc_out<bool>    CONTROL_FLAG_OUT;
113
 
114
        sc_in<sc_uint<10> > CLOCK_GEN;
115
        sc_in<bool> E_SEND_DATA;
116
 
117
        SPW_TX_SC DUT;
118
        SPW_TX_CLOCK_SC DUT1;
119
 
120
        SPW_RX_SC DUT2;
121
        SPW_RX_CLOCK_RECOVERY_SC DUT3;
122
 
123
        SPW_FSM_SC DUT4;
124
 
125
        SPW_TX_SEND_DATA DUT5;
126
 
127
        SC_CTOR(sc_TOP) : DUT("DUT"),DUT1("DUT1"),DUT2("DUT2"),DUT3("DUT3"),DUT4("DUT4"),DUT5("DUT5")
128
        {
129
                DUT1.CLOCK_GEN(CLOCK_GEN);
130
                DUT1.RESET(RESET);
131
                DUT1.CLOCK_TX_OUT(CLOCK_TX_OUT);
132
 
133
                DUT.CLOCK_TX(CLOCK_TX_OUT);
134
                DUT.CLOCK_SYS(CLOCK);
135
                DUT.RESET_TX(RESET_TX);
136
                DUT.TICKIN_TX(TICKIN_TX);
137
                DUT.TIMEIN_CONTROL_FLAG_TX(TIMEIN_CONTROL_FLAG_TX);
138
                DUT.TXWRITE_TX(TXWRITE_TX_S);
139
                DUT.TXDATA_FLAGCTRL_TX(TXDATA_FLAGCTRL_TX);
140
 
141
                DUT.SEND_FCT_NOW(SEND_FCT_NOW_TOP);
142
                DUT.ENABLE_TX(ENABLE_TX);
143
                DUT.SEND_NULL_TX(SEND_NULL_TX);
144
                DUT.SEND_FCT_TX(SEND_FCT_TX);
145
                DUT.SEND_NCHAR_TX(SEND_NCHAR_TX);
146
                DUT.SEND_TIME_CODE_TX(SEND_TIME_CODE_TX);
147
                DUT.GOTFCT_TX(GOT_FCT_RX);
148
                DUT.READY_TX(READY_TX);
149
 
150
                DUT.READY_TICK(READY_TICK);
151
                DUT.DOUT(DOUT);
152
                DUT.SOUT(SOUT);
153
                DUT.FSM_TX(FSM_TX);
154
 
155
                DUT3.DIN_REC(DIN);
156
                DUT3.SIN_REC(SIN);
157
                DUT3.RX_CLOCK_OUT(RX_CLOCK_IN);
158
 
159
                DUT2.RX_CLOCK(RX_CLOCK_IN);
160
                DUT2.DIN(DIN);
161
                DUT2.SIN(SIN);
162
                DUT2.CLOCK_SYS(CLOCK);
163
                DUT2.ENABLE_RX(ENABLE_RX);
164
                DUT2.RESET_RX(RESET_RX);
165
                DUT2.RX_ERROR(RXERROR);
166
                DUT2.RX_CREDIT_ERROR(CREDITERROR_RX);
167
                DUT2.GOT_BIT(GOTBIT_RX);
168
                DUT2.GOT_NULL(GOTNULL_RX);
169
                DUT2.GOT_NCHAR(GOTNCHAR_RX);
170
                DUT2.GOT_TIME_CODE(GOT_TIMECODE_RX);
171
                DUT2.GOT_FCT(GOT_FCT_RX);
172
                DUT2.SEND_FCT_NOW_RX(SEND_FCT_NOW_TOP);
173
 
174
                DUT2.BUFFER_READY(BUFFER_READY);
175
                DUT2.DATARX_FLAG(DATARX_FLAG);
176
                DUT2.BUFFER_WRITE(BUFFER_WRITE);
177
                DUT2.TIME_OUT(TIME_OUT);
178
                DUT2.TICK_OUT(TICK_OUT);
179
                DUT2.CONTROL_FLAG_OUT(CONTROL_FLAG_OUT);
180
 
181
                DUT4.CLOCK(CLOCK);
182
                DUT4.RESET(RESET);
183
                DUT4.LINK_START(LINK_START);
184
                DUT4.LINK_DISABLE(LINK_DISABLE);
185
                DUT4.AUTO_START(AUTO_START);
186
                DUT4.FSM_SPW_OUT(FSM_SPW_OUT);
187
 
188
                DUT4.GOT_FCT_RX(GOT_FCT_RX);
189
                DUT4.GOT_TIMECODE_RX(GOT_TIMECODE_RX);
190
                DUT4.GOTNCHAR_RX(GOTNCHAR_RX);
191
                DUT4.GOTNULL_RX(GOTNULL_RX);
192
                DUT4.GOTBIT_RX(GOTBIT_RX);
193
                DUT4.CREDITERROR_RX(CREDITERROR_RX);
194
                DUT4.RXERROR_RX(RXERROR);
195
                DUT4.ENABLE_RX(ENABLE_RX);
196
 
197
                DUT4.ENABLE_TX(ENABLE_TX);
198
                DUT4.SEND_NULL_TX(SEND_NULL_TX);
199
                DUT4.SEND_FCT_TX(SEND_FCT_TX);
200
                DUT4.SEND_NCHAR_TX(SEND_NCHAR_TX);
201
                DUT4.SEND_TIMECODE_TX(SEND_TIME_CODE_TX);
202
                DUT4.RESET_TX(RESET_TX);
203
                DUT4.RESET_RX(RESET_RX);
204
 
205
                DUT5.CLOCK_SEND_DATA(CLOCK);
206
                DUT5.RESET_SEND_DATA(RESET);
207
                DUT5.E_SEND_DATA(E_SEND_DATA);
208
                DUT5.TICKIN_TX_SEND_DATA(TICKIN_TX);
209
                DUT5.TIMEIN_CONTROL_FLAG_TX_SEND_DATA(TIMEIN_CONTROL_FLAG_TX);
210
                DUT5.TXWRITE_TX_SEND_DATA(TXWRITE_TX_S);
211
                DUT5.TXDATA_FLAGCTRL_TX_SEND_DATA(TXDATA_FLAGCTRL_TX);
212
                DUT5.READY_TX_SEND_DATA(READY_TX);
213
                DUT5.READY_TICK_DATA(READY_TICK);
214
 
215
                cout << "SC_CTOR(sc_TOP)" << endl;
216
        }
217
 
218
 
219
 
220
};
221
 
222
#endif

powered by: WebSVN 2.1.0

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