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

Subversion Repositories tdm

[/] [tdm/] [web_uploads/] [tdm_project.html] - Blame information for rev 8

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 8 root
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
2
           "http://www.w3.org/TR/REC-html40/loose.dtd">
3
<HTML>
4
<META NAME="GENERATOR" CONTENT="TtH 2.67">
5
 
6
 
7
 
8
<H3 align=center>Jamil Khatib </H3>
9
 
10
<title> TDM controller core</title>
11
 
12
<H1 align="center">TDM controller core </H1>
13
 
14
<p>
15
 
16
<center>(C) Copyright 2001 Jamil Khatib.</center>
17
 
18
<p>
19
 
20
<H1>Contents </H1><A href="#tth_sEc1"
21
>1&nbsp; List of authors and changes</A><br>
22
<A href="#tth_sEc2"
23
>2&nbsp; Project Definition</A><br>
24
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc2.1"
25
>2.1&nbsp; Introduction</A><br>
26
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc2.2"
27
>2.2&nbsp; Objectives</A><br>
28
<A href="#tth_sEc3"
29
>3&nbsp; Specifications</A><br>
30
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc3.1"
31
>3.1&nbsp; System Features Specification</A><br>
32
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc3.2"
33
>3.2&nbsp; External Interfaces</A><br>
34
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc3.2.1"
35
>3.2.1&nbsp; Back-end interface mapping to Wishbone SoC bus</A><br>
36
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc3.2.2"
37
>3.2.2&nbsp; CPU interface</A><br>
38
<A href="#tth_sEc4"
39
>4&nbsp; Internal Blocks</A><br>
40
<A href="#tth_sEc5"
41
>5&nbsp; Design description</A><br>
42
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc5.1"
43
>5.1&nbsp; ST-Bus interface</A><br>
44
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc5.1.1"
45
>5.1.1&nbsp; Design notes</A><br>
46
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc5.1.2"
47
>5.1.2&nbsp; Timing</A><br>
48
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc5.2"
49
>5.2&nbsp; External FIFO</A><br>
50
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc5.2.1"
51
>5.2.1&nbsp; Notes</A><br>
52
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc5.3"
53
>5.3&nbsp; ISDN support</A><br>
54
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc5.4"
55
>5.4&nbsp; Registers</A><br>
56
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc5.4.1"
57
>5.4.1&nbsp; Transmit</A><br>
58
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc5.4.2"
59
>5.4.2&nbsp; Receive</A><br>
60
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc5.5"
61
>5.5&nbsp; Diagrams</A><br>
62
<A href="#tth_sEc6"
63
>6&nbsp; Testing and verifications</A><br>
64
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc6.1"
65
>6.1&nbsp; Simulation and Test benches</A><br>
66
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc6.2"
67
>6.2&nbsp; Verification techniques and algorithms</A><br>
68
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc6.3"
69
>6.3&nbsp; Test plans</A><br>
70
<A href="#tth_sEc7"
71
>7&nbsp; Implementations</A><br>
72
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc7.1"
73
>7.1&nbsp; Scripts, files and any other information</A><br>
74
&nbsp;&nbsp;&nbsp;&nbsp;<A href="#tth_sEc7.2"
75
>7.2&nbsp; Design conventions and coding styles</A><br>
76
<A href="#tth_sEc8"
77
>8&nbsp; Reviews and comments</A><br>
78
<A href="#tth_sEc9"
79
>9&nbsp; References</A><br>
80
 
81
<p>
82
        <H2><A NAME="tth_sEc1">
83
1</A>&nbsp;&nbsp;List of authors and changes</H2>
84
 
85
<p>
86
 
87
<TaBle border>
88
<tr><td>Name </td><td>Changes </td><td>Date </td><td>Contact address</td></tr><tr><td>
89
<tr><td>Jamil Khatib </td><td>Initial release </td><td>3-2-2001 </td><td>khatib@ieee.org </td></tr>
90
<tr><td>Jamil Khatib </td><td>General review and CPU interface added </td><td>10-2-2001 </td><td>khatib@ieee.org </td></tr>
91
<tr><td>Jamil Khatib </td><td>ISDN support added </td><td>3-4-2001 </td><td>khatib@ieee.org </td></tr>
92
<tr><td>Jamil Khatib </td><td>Buffer Calculations added </td><td>9-4-2001 </td><td>khatib@ieee.org </td></tr></TaBle>
93
 
94
 
95
<p>
96
        <H2><A NAME="tth_sEc2">
97
2</A>&nbsp;&nbsp;Project Definition</H2>
98
 
99
<p>
100
      <H3><A NAME="tth_sEc2.1">
101
2.1</A>&nbsp;&nbsp;Introduction</H3>
102
Time devision multiplexing is a scheme used to communicate between systems or devices via shared interface lines. Each device or system gets the access to this interface in a single time slot.
103
 
104
<p>
105
      <H3><A NAME="tth_sEc2.2">
106
2.2</A>&nbsp;&nbsp;Objectives</H3>
107
The aim of this project is to develop the basic TDM functionalities to be used by many communication systems like ISDN, E1, T1 and voice codecs.
108
 
109
<p>
110
        <H2><A NAME="tth_sEc3">
111
3</A>&nbsp;&nbsp;Specifications</H2>
112
 
113
<p>
114
      <H3><A NAME="tth_sEc3.1">
115
3.1</A>&nbsp;&nbsp;System Features Specification</H3>
116
 
117
<OL type="1">
118
 
119
<li> Supports E1 bit rate and time slots (32 time slots or 32 DS0 channels at bit rate 2.048Mbps)
120
 
121
<li> Supports ST-Bus (Serial Telecom bus) interface.
122
 
123
<li> Routes time slots to/from HDLC controller via the backend interface and software support or to/from memory.
124
 
125
<li> Supports read for all or partial TDM slots from the ST-bus.
126
 
127
<li> Supports write for all or partial TDM slots to ST-bus.
128
 
129
<li> It supports N&times;64 mode (i.e. it supports sampling (or writing) to N consecutive time slots)
130
 
131
<li> Supports two serial lines one input and one output.
132
 
133
<li> Can be connected to other ST-Bus compatible devices via serial or star configurations.
134
 
135
<li> If no data is available for transmission it sends all ones.
136
 
137
<li> Backend interface uses the Wishbone bus interface which can be connected directly to the system or via FIFO buffer.
138
 
139
<li> Optional External FIFO buffer, configuration and status registers.
140
 
141
<li> The core will be made of two levels of hierarchies, the basic functionality and the Optional interfaces and buffers which makes it easy to add extra serial lines by duplicating the TDM controllers in parallel.
142
 
143
<li> ISDN (2B+D) support can be supported by adding three parallel HDLC controllers on the first three time slots.
144
</OL>
145
<p>
146
      <H3><A NAME="tth_sEc3.2">
147
3.2</A>&nbsp;&nbsp;External Interfaces</H3>
148
 
149
<p>
150
 
151
<TaBle border>
152
<tr><td>Signal name</td><td>Direction</td><td>Description</td></tr><tr><td>
153
<tr><td>Control interface </td><td></td><td></td></tr><tr><td>
154
<tr><td>Rst_n </td><td>Input </td><td>System asynchronous reset (active low)</td></tr>
155
<tr><td>Size[4:0] </td><td>Input </td><td>Number of time slots (Can be fixed)</td></tr><tr><td>
156
<tr><td>Serial Interface (ST-Bus)</td><td></td><td></td></tr><tr><td>
157
<tr><td>C2 </td><td>Input </td><td>Bus Clock</td></tr>
158
<tr><td>DSTi </td><td>Input</td><td>Receive serial Data</td></tr>
159
<tr><td>DSTo </td><td>Output </td><td>Transmit serial Data</td></tr>
160
<tr><td>F0_n </td><td>Input </td><td>Framing pulse (active low)</td></tr>
161
<tr><td>F0od_n </td><td>Output </td><td>Delayed Framing pulse (active low)</td></tr><tr><td>
162
<tr><td>Back-end Interface (Received)</td><td></td><td></td></tr><tr><td>
163
<tr><td>RxD[7:0]</td><td>Output</td><td>Receive data bus</td></tr>
164
<tr><td>RxValidData</td><td>Output</td><td>Valid Data</td></tr>
165
<tr><td>FrameErr</td><td>Output</td><td>Error in the received data</td></tr>
166
<tr><td>Read</td><td>Input</td><td>Read byte</td></tr>
167
<tr><td>Ready</td><td>Output</td><td>Valid data exists</td></tr><tr><td>
168
<tr><td>Back-end Interface (Transmited)</td><td></td><td></td></tr><tr><td>
169
<tr><td>TxD[7:0]</td><td>Input</td><td>Transmit data bus</td></tr>
170
<tr><td>TxValidData</td><td>Input</td><td>Valid Data</td></tr>
171
<tr><td>Write</td><td>Input</td><td>Write byte</td></tr>
172
<tr><td>Ready</td><td>Output</td><td>Ready to get data</td></tr></TaBle>
173
 
174
 
175
<p>
176
       <H4><A NAME="tth_sEc3.2.1">
177
3.2.1</A>&nbsp;&nbsp;Back-end interface mapping to Wishbone SoC bus</H4>
178
The TDM backend interface is divided into two parts one for receive and one for transmit.It can be used as a slave core or master according to the below mapping. The core supports SINGLE READ/WRITE Cycle only using 8-bit data bus without address lines. The choice between master and slave is left for the system integrator and must do the configuration and glue logic as defined in the tables.
179
<br>
180
<p>
181
 
182
<p><A NAME="tth_fIg1">
183
</A> <a href="wishlogo.ps">Figure</a><A NAME="Logo">
184
</A><p>
185
<TaBle border>
186
<tr><td>Signal Name</td><td>Wishbone signal</td></tr><tr><td>
187
<tr><td>Master Configuration connected to FIFO</td><td>Receive channel</td></tr>
188
<tr><td>C2 </td><td>CLK_I</td></tr>
189
<tr><td>Rst </td><td>not RST_I</td></tr>
190
<tr><td>RxD[7:0]</td><td>DAT_O(7:0)</td></tr>
191
<tr><td>RxValidData</td><td>STB_O</td></tr>
192
<tr><td>RxValidData</td><td>CYC_O</td></tr>
193
<tr><td>Read</td><td>ACK_I and not RTY_I</td></tr>
194
<tr><td>Ready</td><td>WE_O</td></tr>
195
<tr><td>FrameERR</td><td>TAG0_O</td></tr>
196
<tr><td>Slave FIFO(two-clock domain FIFO)</td><td></td></tr>
197
<tr><td>Data[7:0]</td><td>DAT_I(7:0)</td></tr>
198
<tr><td>Chip Select</td><td>STB_I</td></tr>
199
<tr><td>STB_I and not FullFlag</td><td>ACK_O</td></tr>
200
<tr><td>FullFlag</td><td>RTY_O</td></tr>
201
<tr><td>Write</td><td>WE_I</td></tr>
202
<tr><td>Slave Configuration </td><td></td></tr>
203
<tr><td>C2 </td><td>CLK_I</td></tr>
204
<tr><td>Rst </td><td>not RST_I</td></tr>
205
<tr><td>RxD[7:0]</td><td>DAT_O(7:0)</td></tr>
206
<tr><td>RxValidData</td><td>TAG0_O</td></tr>
207
<tr><td>ReadByte</td><td>not WE_I</td></tr>
208
<tr><td>Ready</td><td>not RTY_O</td></tr>
209
<tr><td>STB_I and not WR_I</td><td>ACK_O</td></tr>
210
<tr><td>FrameERR</td><td>TAG1_O</td></tr></TaBle>
211
 
212
 
213
<p>
214
 
215
<TaBle border>
216
<tr><td>Signal Name</td><td>Wishbone signal</td></tr><tr><td>
217
<tr><td>Master Configuration connected to FIFO</td><td>Transmit channel</td></tr><tr><td>
218
<tr><td>C2 </td><td>CLK_I</td></tr>
219
<tr><td>Rst </td><td>not RST_I</td></tr>
220
<tr><td>TxD[7:0]</td><td>DAT_I(7:0)</td></tr>
221
<tr><td>Write</td><td>ACK_I and not RTY_I</td></tr>
222
<tr><td>Ready</td><td>not WE_O</td></tr>
223
<tr><td>TxValidData</td><td>TAG0_I</td></tr>
224
<tr><td>Always Active </td><td>CYC_O</td></tr>
225
<tr><td>Always Active </td><td>STB_O</td></tr>
226
<tr><td>Slave FIFO(two-clock domain FIFO)</td><td></td></tr>
227
<tr><td>Data[7:0]</td><td>DAT_I(7:0)</td></tr>
228
<tr><td>EmptyFlag</td><td>RTY_O</td></tr>
229
<tr><td>Read</td><td>WE_I</td></tr>
230
<tr><td>WE_I and not EmptyFlag</td><td>ACK_O</td></tr>
231
<tr><td>ChipSelect</td><td>STB_I</td></tr>
232
<tr><td>Slave Configuration </td><td></td></tr>
233
<tr><td>C2 </td><td>CLK_I</td></tr>
234
<tr><td>Rst </td><td>not RST_I</td></tr>
235
<tr><td>TxD[7:0]</td><td>DAT_I(7:0)</td></tr>
236
<tr><td>TxValidData</td><td>STB_I</td></tr>
237
<tr><td>Write</td><td>WE_I</td></tr>
238
<tr><td>Ready</td><td>not RTY_O</td></tr>
239
<tr><td>STB_I and WR_I</td><td>ACK_O</td></tr></TaBle>
240
 
241
 
242
<p>
243
       <H4><A NAME="tth_sEc3.2.2">
244
3.2.2</A>&nbsp;&nbsp;CPU interface</H4>
245
This interface is used when the FIFO and registers are included in the Core. This interface is compatible to WishBone slave bus interface that supports single read/write cycles and block cycles. The interface supports the following wishbone signals.
246
 
247
<p>
248
 
249
<TaBle border>
250
<tr><td>Signal</td><td>Note</td></tr><tr><td>
251
<tr><td>RST_I</td><td>Reset</td></tr>
252
<tr><td>CLK_I</td><td>Clock</td></tr>
253
<tr><td>ADR_I(2:0)</td><td>3-bit address line</td></tr>
254
<tr><td>DAT_O(7:0)</td><td>8-bit receive data</td></tr>
255
<tr><td>DAT_I(7:0)</td><td>8-bit transmit data</td></tr>
256
<tr><td>WE_I</td><td>Read/write</td></tr>
257
<tr><td>STB_I</td><td>Strobe</td></tr>
258
<tr><td>ACK_O</td><td>Acknowledge</td></tr>
259
<tr><td>CYC_I</td><td>Cycle</td></tr>
260
<tr><td>RTY_O</td><td>Retry</td></tr>
261
<tr><td>TAG0_O</td><td>TxDone interrupt</td></tr>
262
<tr><td>TAG1_O</td><td>RxReady interrupt</td></tr></TaBle>
263
 
264
 
265
<p>
266
        <H2><A NAME="tth_sEc4">
267
4</A>&nbsp;&nbsp;Internal Blocks</H2>
268
 
269
<p>
270
        <H2><A NAME="tth_sEc5">
271
5</A>&nbsp;&nbsp;Design description</H2>
272
 
273
<p>
274
      <H3><A NAME="tth_sEc5.1">
275
5.1</A>&nbsp;&nbsp;ST-Bus interface</H3>
276
The TDM controller interfaces to the TDM lines via serial telecom bus. The interface uses the external input clock (2.048MHz) for all of the internal serial logic. It detects the incoming framing pulse to synchronize the sampling and transmission of bits. The core reads and writes only the specified number of TDM channels (8-bits) by the size bus (No. of channels register). In the transmission mode the output pin should be disabled after writing the configured time slots. It generates also the output delayed framing pulse after it samples all the specified bits (TDM channels). This feature can be used to cascade controllers for different TDM channels.
277
 
278
<p>
279
       <H4><A NAME="tth_sEc5.1.1">
280
5.1.1</A>&nbsp;&nbsp;Design notes</H4>
281
 
282
<p>
283
       <H4><A NAME="tth_sEc5.1.2">
284
5.1.2</A>&nbsp;&nbsp;Timing</H4>
285
 
286
<p>
287
      <H3><A NAME="tth_sEc5.2">
288
5.2</A>&nbsp;&nbsp;External FIFO</H3>
289
The controller has optional external FIFO buffers, one for data to be transmitted and one for data to be received. Status and control registers are available to control these FIFOs. These two blocks (FIFOs and registers) are  built around the TDM controller core which make them optional if the core is to be used in different kind of applications.
290
 
291
<p>
292
The current implementation supports the following configuration:
293
The size of the Transmit and receive FIFOs is (8&times;32) bits which enables the whole TDM frame to be buffered.
294
 
295
<p>
296
The transmit buffer is used to prevent underflow while transmitting bytes to the line. All bytes will be available once the transmit is enabled. If the transmit FIFO is empty the core will transmit ones. The Receive buffer is used to provide data burst transfer to the Back end interface which prevents the back end from reading each byte alone. The FIFO size is suitable for operating frequencies 2.048MHz on the serial interface and 20 MHz on the back end interface. Other frequencies can operate if the back end can read the entire TDM frame before the first byte of the next frame is written (the next calculations is an example to be applied for different frequencies)
297
 
298
<p>
299
8 bits (Time needed to receive the first byte of the next frame) / 2.048MHz = 3.9 us
300
 
301
<p>
302
32 Bytes (Maximum frame size) / 20MHz = 1.6 us
303
 
304
<p>
305
These FIFOs are implemented on Single port memory. It is the responsibility of the external interface to write/read data to/from the FIFOs. TxDone and RxRdy interrupts are generated when the Tx buffer is empty and Rx buffer has data respectively .
306
 
307
<p>
308
       <H4><A NAME="tth_sEc5.2.1">
309
5.2.1</A>&nbsp;&nbsp;Notes</H4>
310
 
311
<UL>
312
 
313
<p>
314
 
315
<li> <b>Transmit Operation:</b> If the transmit FIFO is empty not enough data bytes is available according to no. of channels (caused by incomplete burst transfer, the core sets the Aborted bit in the TX status and control register and sends all ones in the transmit serial line.
316
 
317
<p>
318
 
319
<li> <b>Transmit Operation:</b> The back end (software) should write data to the Tx buffer register according to the configured number of time slots. The transmission will start only after the specified number of slots are available in the buffer other wise Aborted bit of the Tx Status register will be set and all ones will be transmitted  in this slot.
320
 
321
<p>
322
 
323
<li> <b>Receive Operation:</b> When Receive FIFO is full It drops the second FIFO contents and sets overflow bit in the Rx Status and Control register.
324
 
325
<p>
326
 
327
<li> <b>Receive Operation:</b> When RxRdy Interrupt is asserted (or RxRdy bit is set) the back end interface (software) must read the specified number of slots from the Rx Data buffer register or the buffer will not be marked as empty.
328
</UL>
329
<p>
330
      <H3><A NAME="tth_sEc5.3">
331
5.3</A>&nbsp;&nbsp;ISDN support</H3>
332
In order to provide (2B+D) ISDN support three HDLC controllers should be used on three time slots. The serial data the of first three time slots will enter (or get out) directly to (from) the three parallel HDLC controllers if HDLCen bit is set in the Tx Status and Control register. The HDLC controllers will be managed through the enable signals (each controller will be enabled on its corresponding time slot). These HDLC controllers will set in parallel with the Rx and Tx buffers (as shown in the figure) which still can be used even if the ISDN mode is enabled.
333
 
334
<p>
335
 
336
<p><A NAME="tth_fIg1">
337
</A> <a href="tdm_ISDN_top.ps">Figure</a> <center>Figure 1: ISDN support</center><A NAME="isdn">
338
</A>
339
<p>
340
<p>
341
      <H3><A NAME="tth_sEc5.4">
342
5.4</A>&nbsp;&nbsp;Registers</H3>
343
All internal registers are 8-bit width.
344
 
345
<p>
346
       <H4><A NAME="tth_sEc5.4.1">
347
5.4.1</A>&nbsp;&nbsp;Transmit</H4>
348
 
349
<p>
350
 
351
<TaBle>
352
<tr><td><b>Tx Status and Control Register: Tx_SC</b> </td><td>Offset Address = 0x0</td></tr></TaBle>
353
<br>
354
 
355
<p>
356
 
357
<TaBle border><tr><td>
358
<tr><td>BIT   </td><td align="center">7 </td><td align="center">6 </td><td align="center">5 </td><td align="center">4 </td><td align="center">3 </td><td align="center">2 </td><td align="center">1 </td><td align="center">0</td></tr>
359
<tr><td>FIELD </td><td align="center">N/A </td><td align="center">N/A </td><td align="center">N/A </td><td align="center">N/A</td><td align="center">HDLCen</td><td align="center">Aborted</td><td align="center">TxEnable</td><td align="center">TxReady(empty)</td></tr>
360
<tr><td>RESET </td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td></tr>
361
<tr><td>R/W   </td><td align="center">RO</td><td align="center">RO</td><td align="center">RO</td><td align="center">RO</td><td align="center">WO</td><td align="center">RO</td><td align="center">WO</td><td align="center">RO</td></tr></TaBle>
362
<br>
363
 
364
<p>
365
 
366
<TaBle>
367
<tr><td><b>Tx FIFO buffer register: Tx_Buffer</b> </td><td>Offset Address = 0x1</td></tr></TaBle>
368
<br>
369
 
370
<p>
371
 
372
<TaBle border><tr><td>
373
<tr><td>BIT   </td><td align="center">7-0</td></tr>
374
<tr><td>FIELD </td><td align="center">Transmit Data byte</td></tr>
375
<tr><td>RESET </td><td align="center">0x0</td></tr>
376
<tr><td>R/W   </td><td align="center">WO</td></tr></TaBle>
377
 
378
 
379
<p>
380
       <H4><A NAME="tth_sEc5.4.2">
381
5.4.2</A>&nbsp;&nbsp;Receive</H4>
382
 
383
<p>
384
 
385
<TaBle>
386
<tr><td><b>Rx Status and Control Register: Rx_SC</b> </td><td>Offset Address = 0x2</td></tr></TaBle>
387
<br>
388
 
389
<p>
390
 
391
<TaBle border><tr><td>
392
<tr><td>BIT   </td><td align="center">7 </td><td align="center">6 </td><td align="center">5 </td><td align="center">4 </td><td align="center">3 </td><td align="center">2 </td><td align="center">1 </td><td align="center">0</td></tr>
393
<tr><td>FIELD </td><td align="center">N/A </td><td align="center">N/A </td><td align="center">N/A </td><td align="center">N/A</td><td align="center">N/A</td><td align="center">FrameError</td><td align="center">Drop</td><td align="center">RxReady(Full)</td></tr>
394
<tr><td>RESET </td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td></tr>
395
<tr><td>R/W   </td><td align="center">RO</td><td align="center">RO</td><td align="center">RO</td><td align="center">RO</td><td align="center">RO</td><td align="center">RO</td><td align="center">WO</td><td align="center">RO</td></tr></TaBle>
396
<br>
397
 
398
<p>
399
 
400
<TaBle>
401
<tr><td><b>Rx FIFO buffer register: Rx_Buffer</b> </td><td>Offset Address = 0x3</td></tr></TaBle>
402
<br>
403
 
404
<p>
405
 
406
<TaBle border><tr><td>
407
<tr><td>BIT   </td><td align="center">7-0</td></tr>
408
<tr><td>FIELD </td><td align="center">Received Data byte</td></tr>
409
<tr><td>RESET </td><td align="center">0x0</td></tr>
410
<tr><td>R/W   </td><td align="center">RO</td></tr></TaBle>
411
<br>
412
 
413
<p>
414
 
415
<TaBle>
416
<tr><td><b>configuration register: CFG</b> </td><td>Offset Address = 0x4</td></tr></TaBle>
417
<br>
418
 
419
<p>
420
 
421
<TaBle border><tr><td>
422
<tr><td>BIT   </td><td align="center">7-0</td></tr>
423
<tr><td>FIELD </td><td align="center">No. of channels</td></tr>
424
<tr><td>RESET </td><td align="center">0xFF</td></tr>
425
<tr><td>R/W   </td><td align="center">RO</td></tr></TaBle>
426
<br>
427
This register defines number of time slots will be sampled and written after the framing pulse.<br>
428
 
429
<p>
430
<b>HDLC registers</b> Each HDLC controller its own registers as described in the HDLC controller document but with the offset address as 0xY0 + z where Y represents the HDLC channel number and z the internal HDLC register offset. For example Tx_SC register of the second HDLC controller in the TDM  controller will be mapped to 0x20 + 0x0 = 0x20
431
 
432
<p>
433
      <H3><A NAME="tth_sEc5.5">
434
5.5</A>&nbsp;&nbsp;Diagrams</H3>
435
 
436
<p>
437
 
438
<p><A NAME="tth_fIg2">
439
</A> <a href="tdm_core.ps">Figure</a> <center>Figure 2: TDM core</center><A NAME="Core">
440
</A>
441
<p>
442
<p>
443
 
444
<p><A NAME="tth_fIg3">
445
</A> <a href="tdm_top.ps">Figure</a> <center>Figure 3: TDM controller</center><A NAME="top">
446
</A>
447
<p>
448
<p>
449
        <H2><A NAME="tth_sEc6">
450
6</A>&nbsp;&nbsp;Testing and verifications</H2>
451
 
452
<p>
453
 
454
<TaBle border>
455
<tr><td>Requirement </td><td>Test method </td><td>Validation method </td></tr><tr><td>
456
<tr><td>Interface timing </td><td></td><td></td></tr>
457
<tr><td></td><td></td><td></td></tr><tr><td>
458
<tr><td>Functionality </td><td></td><td></td></tr></TaBle>
459
 
460
 
461
      <H3><A NAME="tth_sEc6.1">
462
6.1</A>&nbsp;&nbsp;Simulation and Test benches</H3>
463
 
464
<p>
465
      <H3><A NAME="tth_sEc6.2">
466
6.2</A>&nbsp;&nbsp;Verification techniques and algorithms</H3>
467
 
468
<p>
469
      <H3><A NAME="tth_sEc6.3">
470
6.3</A>&nbsp;&nbsp;Test plans</H3>
471
 
472
<p>
473
        <H2><A NAME="tth_sEc7">
474
7</A>&nbsp;&nbsp;Implementations</H2>
475
 
476
<p>
477
      <H3><A NAME="tth_sEc7.1">
478
7.1</A>&nbsp;&nbsp;Scripts, files and any other information</H3>
479
 
480
<p>
481
      <H3><A NAME="tth_sEc7.2">
482
7.2</A>&nbsp;&nbsp;Design conventions and coding styles</H3>
483
 
484
<p>
485
        <H2><A NAME="tth_sEc8">
486
8</A>&nbsp;&nbsp;Reviews and comments</H2>
487
 
488
<p>
489
        <H2><A NAME="tth_sEc9">
490
9</A>&nbsp;&nbsp;References</H2>
491
 
492
<p>

powered by: WebSVN 2.1.0

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