- THIS IS A DISCONTINUED IP CORE -
0
OPB Multi Channel HDLC Interface (v2.01a)
DS438 December 1, 2005 0 0 Product Specification
IntroductionThis specification defines the architecture and
interface requirements to this module, including registers that the
user must initialize for proper operation. The Xilinx HDLC design
allows the customer to tailor the HDLC to suit their application by
setting certain parameters to enable/disable features. The
parameterizable features of the design are discussed in HDLC Design
Parameters.
Features Support for one to eight independent full duplex
HDLC channels.
Each independent channel may have 1 to 32 TDM sub-channels.
Receive FIFO buffer of selectable depth.
Transmit FIFO buffer of selectable depth.
Support for Packets larger than FIFO depth.
Selectable 8/16 bit address receive address detection.
Selectable receive frame address discard.
Selectable receive broadcast address detection. Broadcast
address = 0xFF.
Selectable FCS 16 bit (CRC-CCITT) or 32 bit (CRC-32)
CRC error counter, with rollover interrupt
Aborted frame counter, with rollover interrupt
Multiple Events/Interrupts including:
- Rx FCS error interrupt
- Rx frame alignment error interrupt
- Memory buffer overrun/underrun interrupts
LogiCORE Facts
Core Specifics
Supported Device Family
QPro-R Virtex-II, QPro Virtex-II, Spartan-3, Spartan-3E, Virtex,
Virtex-II,
Virtex-II Pro, Virtex-4
Resources Used (minimum settings)
I/O LUTs FFsBlock RAMs
6 1203 604 2
Version of Core opb_hdlc_v2_01_a
Provided with Core
Documentation Product Specification
Design File Formats VHDL
Constraints File N/A
Verification N/A
Instantiation Template
N/A
Reference Designs & application notes
N/A
Additional Items N/A
Design Tool Requirements
Xilinx Implementation Tools
ISE 6.1i or later
with latest EDK
Verification ModelSim PE 5.7d
Simulation ModelSim PE 5.7d
Synthesis XST - ISE 6.1i
Support
Support provided by Xilinx, Inc.
DS438 December 1, 2005 www.xilinx.com 1Product Specification
2005 Xilinx, Inc. All rights reserved. All Xilinx trademarks,
registered trademarks, patents, and further disclaimers are as
listed at http://www.xilinx.com/legal.htm. All other trademarks and
registered trademarks are the property of their respective owners.
All specifications are subject to change without notice.NOTICE OF
DISCLAIMER: Xilinx is providing this design, code, or information
"as is." By providing the design, code, or information as one
possible implementation of this feature, application, or standard,
Xilinx makes no representation that this implementation is free
from any claims of infringement. You are responsible for obtaining
any rights you may require for your implemen-tation. Xilinx
expressly disclaims any warranty whatsoever with respect to the
adequacy of the implementation, including but not limited to any
warranties or representations that this imple-mentation is free
from claims of infringement and any implied warranties of
merchantability or fitness for a particular purpose.
http://www.xilinx.comhttp:www.xilinx.com/legal.htmhttp://www.xilinx.com/legal.htmhttp://www.xilinx.com/legal.htm
OPB Multi Channel HDLC Interface (v2.01a)
2
- THIS IS A DISCONTINUED IP CORE -
Features (contd) Tx frame abort control
Memory mapped direct I/O interface to registers and memory
buffers.
Flag sharing between back to back frames
Independent Rx and Tx data rates for each physical channel. The
OPB_CLK must be at least 1.1x higher frequency than the Rx or Tx
data rate when a single sub channel is selected or 3x higher when
more than one sub channel is selected.
Evaluation VersionThe HDLC LogiCORE is delivered with a hardware
evaluation license. When programmed into a Xilinx device, the core
will function in hardware for about 8 hours at the typical
frequency of operation. To use the HDLC LogiCORE without this
timeout limitation, a full license must be purchased.
HDLC Protocol
HDLC exists in layer 2 of the OSI model which is the data link
layer. HDLC uses transparency to ensure that the bit pattern of the
delimiter flag does not occur in the fields between flags. The HDLC
frame is synchronous and therefore relies on the physical layer to
provide a method of clocking and synchronizing the transmission and
reception of frames. The control and data are not used by the
hardware for any type of configuration or control.
An example of an HDLC frame that may contain no address or an
8-bit or 16-bit address is shown below.
Figure 1: HDLC Frame Example with no Address, 8-bit, or 16-bit
Address
Figure Top x-ref 1
OpeningFlag
01111110
Address(if used)8 bits or 16 bits
ControlData
8*n-bits
FCSCRC - CCITTor CRC - 32
ClosingFlag
01111110
hdlc_frame_none_8or16_bit_addr.eps
Transparency
Transparency is the process of preventing the Flag pattern from
occurring in the address, data or FCS fields. A zero bit is
inserted, by the transmitter, any time a sequence of five
consecutive ones has occurred. This will make the HDLC transparent
to any type of data because any bit stream may exist between the
opening and closing Flags. The receiver must remove the zero bit
insertion to recover the original data sent.
An original bit pattern of:
11111110 01111111 01111101
Will become after bit stuffing:
111110110 011111011 011111001
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Flag Field
Each frame starts and stops with the flag sequence as shown
above. The 0x7E flag is used for frame synchronization. Only one
flag sequence is required to be between frames. The closing flag
shown above could also be the opening flag for the next frame. A
back to back flag sequence is an empty frame.
An empty frame is not counted as an FCS error. The flag bytes
are not stored in the receive buffer. When the transmitter is
enabled and there is no data to transmit, the transmitter will
continuously send flags.
Address Field
The address field is typically 8 bits, however it can be 0 bits
in a point to point or extended to 16 bits. The address identifies
the secondary station that will receive the frame or transmit the
frame. An address of all ones, 0xFF, is interpreted as an all
stations address. This allows a broadcast frame to be received by
all secondary stations.
Control Field
The 8 or 16 bit control field provides a flow control number and
defines the frame type (control or data). The exact use and
structure of this field depends upon the protocol using the frame.
An integer number, including 0, of octets must be contained in this
field to prevent an alignment error.
Information/Data Field
Data is transmitted in the information/data field, which can
vary in length depending upon the protocol using the frame. An
integer number, including 0, of octets must be contained in this
field to prevent an alignment error.
Frame Check Sequence (FCS) Field
Error Control is implemented by appending a cyclic redundancy
check (CRC) to the frame, which is 16 bits (CRC-CCITT) or 32 bits
(CRC-32) long. The flag bits are not used in calculating the CRC.
The FCS is stored in the receive buffer.
HDLC Design ParametersThe OPB Multi Channel HDLC design is user
configurable via a set of design parameters implemented as VHDL
input generics. The generics for the OPB Multi Channel HDLC are
listed in Table 1.
Table 1: HDLC Design Parameters
GenericFeature /
DescriptionParameter Name
Allowable Values
Default Value
VHDL Type
HDLC Features
G1Number of Physical HDLC Channels
C_NUM_CHANNELS 1 - 8 1 Integer
G2Number of TDM sub-channels per Physical Channel 0
C_NUM_SUB_CHANNELS_0 0 - 32 1 Integer
G3Number of TDM sub-channels per Physical Channel 1
C_NUM_SUB_CHANNELS_1 0 - 32 0 Integer
G4Number of TDM sub-channels per Physical Channel 2
C_NUM_SUB_CHANNELS_2 0 - 32 0 Integer
ember 1, 2005 www.xilinx.com 3ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
4
- THIS IS A DISCONTINUED IP CORE -
G5Number of TDM sub-channels per Physical Channel 3
C_NUM_SUB_CHANNELS_3 0 - 32 0 Integer
G6Number of TDM sub-channels per Physical Channel 4
C_NUM_SUB_CHANNELS_4 0 - 32 0 Integer
G7Number of TDM sub-channels per Physical Channel 5
C_NUM_SUB_CHANNELS_5 0 - 32 0 Integer
G8Number of TDM sub-channels per Physical Channel 6
C_NUM_SUB_CHANNELS_6 0 - 32 0 Integer
G9Number of TDM sub-channels per Physical Channel 7
C_NUM_SUB_CHANNELS_7 0 - 32 0 Integer
OPB/IPIF Interface
G20OPB Clock period in pico-seconds
C_OPB_CLK_PERIOD_PS
The period of the OPB bus
clock in pico-seconds
10000 Integer
G21 Device Block ID C_DEV_BLK_ID See note 5. 0 Integer
G22Module Identification Register Enable
C_DEV_MIR_ENABLE See note 5. 0 Integer
G23 OPB High Address C_HIGHADDR
Address range must
be a power of 2 and can
vary with the number of
HDLC channels(4)
None(2,3)std_logic_vector
G24Location of the first IPIF register.
C_BASEADDRValid Address
Range(4)None(2,3)
std_logic_vector
G25 OPB Address Bus Width C_OPB_AWIDTH 32 32 integer
G26 OPB Data Bus Width C_OPB_DWIDTH 32 32 integer
G27FPGA Device Family Type
C_FAMILY
spartan2
spartan2e
spartan3virtex
virtexe
virtex2
virtex2pqvirtex2
qrvirtex2
virtex2p string
Table 1: HDLC Design Parameters (Contd)
GenericFeature /
DescriptionParameter Name
Allowable Values
Default Value
VHDL Type
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
G28 DMA Present C_DMA_PRESENT(2)
1 = No DMA is used and
normal IPIF is used
2 = DMA with Scatter/Gather is used and normal IPIF
1 integer
Channel FIFO
G30Transmit FIFO Depth in bytes(6)
C_TX_MEM_DEPTH_0(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
2048 Integer
G31Receive FIFO Memory Depth in bytes(7)
C_RX_MEM_DEPTH_0(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
2048 Integer
G32Transmit FIFO Depth in bytes(6)
C_TX_MEM_DEPTH_1(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G33Receive Buffer Memory Depth in bytes(7)
C_RX_MEM_DEPTH_1(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G34Transmit FIFO Depth in bytes(6)
C_TX_MEM_DEPTH_2(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G35Receive Buffer Memory Depth in bytes(7)
C_RX_MEM_DEPTH_2(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G36Transmit FIFO Depth in bytes(6)
C_TX_MEM_DEPTH_3(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G37Receive Buffer Memory Depth in bytes(7)
C_RX_MEM_DEPTH_3(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G38Transmit FIFO Depth in bytes(6)
C_TX_MEM_DEPTH_4(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
Table 1: HDLC Design Parameters (Contd)
GenericFeature /
DescriptionParameter Name
Allowable Values
Default Value
VHDL Type
ember 1, 2005 www.xilinx.com 5ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
6
- THIS IS A DISCONTINUED IP CORE -
G39Receive Buffer Memory Depth in bytes(7)
C_RX_MEM_DEPTH_4(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G40Transmit FIFO Depth in bytes(6)
C_TX_MEM_DEPTH_5(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G41Receive Buffer Memory Depth in bytes(7)
C_RX_MEM_DEPTH_5(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G42Transmit FIFO Depth in bytes(6)
C_TX_MEM_DEPTH_6(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G43Receive Buffer Memory Depth in bytes(7)
C_RX_MEM_DEPTH_6(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G44Transmit FIFO Depth in bytes(6)
C_TX_MEM_DEPTH_7(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
G45Receive Buffer Memory Depth in bytes(7)
C_RX_MEM_DEPTH_7(6, 7, 8, 9)
1 BRAM Minimum(8)
32 BRAMs Maximum(9)
0 Integer
HDLC I/O
G90Number of bits required to encode the number of
sub-channels
C_NUM_SUB_CHANNEL_BITS_0
1 - log2(C_NUM_SUB_CHAN
NELS(0))
1 integer
G91Number of bits required to encode the number of
sub-channels
C_NUM_SUB_CHANNEL _BITS_1
1 - log2(C_NUM_SUB_CHAN
NELS(1))
0 integer
G92Number of bits required to encode the number of
sub-channels
C_NUM_SUB_CHANNEL_ BITS_2
1 - log2(C_NUM_SUB_CHAN
NELS(2))
0 integer
G93Number of bits required to encode the number of
sub-channels
C_NUM_SUB_CHANNEL_ BITS_3
1 - log2(C_NUM_SUB_CHAN
NELS(3))
0 integer
Table 1: HDLC Design Parameters (Contd)
GenericFeature /
DescriptionParameter Name
Allowable Values
Default Value
VHDL Type
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Allowable Parameter Combinations
The address range specified by C_BASEADDR and C_HIGHADDR must be
a power of 2, and C_HIGHADDR must be at least 0x3FFFF. For example,
if C_BASEADDR = 0x60100000 C_HIGHADDR must be at least =
0x6013FFFF.
G94Number of bits required to encode the number of
sub-channels
C_NUM_SUB_CHANNEL_ BITS_4
1 - log2(C_NUM_SUB_CHAN
NELS(4))
0 integer
G95Number of bits required to encode the number of
sub-channels
C_NUM_SUB_CHANNEL_ BITS_5
1 - log2(C_NUM_SUB_CHAN
NELS(5))
0 integer
G96Number of bits required to encode the number of
sub-channels
C_NUM_SUB_CHANNEL_ BITS_6
1 - log2(C_NUM_SUB_CHAN
NELS(6))
0 integer
G97Number of bits required to encode the number of
sub-channels
C_NUM_SUB_CHANNEL_ BITS_7
1 - log2(C_NUM_SUB_CHAN
NELS(7))
0 integer
Notes: 1. Each physical channel may have an independent serial
transmit and serial receive clock inputs.2. Anytime DMA is present,
interrupt coalescing is enabled3. For example, C_BASEADDR =
0x60100000, C_HIGHADDR = 0x6013FFFF 4. Address range specified by
C_BASEADDR and C_HIGHADDR must be at least 0X3FFFF and must be
a
power of 2. C_BASEADDR must be a multiple of the range, where
the range is C_HIGHADDR - C_BASEADDR +1.
5. For a Virtex-II Pro a single BRAM is 2048 bytes and 32 Brams
is 65536 bytes. 6. Both the receive and transmit FIFO is equally
divided in powers of 2 among all the sub-channels.7. For example a
transmit FIFO of 2048 bytes (1 BRAM) and 24 sub-channels would
cause a transmit FIFO depth
of 60 bytes for each individual sub-channel, (2048/(32)) - 4.
2048 is the memory depth, 32 is the next power of two equal to or
larger than 24, and 4 bytes are used by each sub channel in the
FIFO to maintain status.
8. It is possible to specify a FIFO depth smaller than 1 BRAM,
however 1 BRAM will be used and the unused memory is not
available.
9. The maximum size for a sub channel FIFO is 16384 bytes. If
two sub channels are specified on a single physical channel, the
maximum FIFO size is 32768. If three sub channels are specified on
a single physical channel the maximum FIFO depth is 49152.
Table 1: HDLC Design Parameters (Contd)
GenericFeature /
DescriptionParameter Name
Allowable Values
Default Value
VHDL Type
ember 1, 2005 www.xilinx.com 7ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
8
- THIS IS A DISCONTINUED IP CORE -
HDLC I/O SignalsThe I/O signals for the HDLC are listed in Table
2.
Table 2: HDLC I/O Signals
Port Signal Name Interface I/OInitial State
Description
HDLC Signals
P1 RXD(0 to C_NUM_CHANNELS - 1) System I HDLC Serial Data
Input
P2 TXD(0 to C_NUM_CHANNELS - 1) System O 0 HDLC Serial Data
Output
P3 RXden(0 to C_NUM_CHANNELS - 1) 1 System I HDLC RX data
enable
P4 TXden(0 to C_NUM_CHANNELS - 1) 1 System I HDLC TX data
enable
P5 RXCLK(0 to C_NUM_CHANNELS - 1) 1 System IHDLC Serial Receive
Clock Input
P6 TXCLK(0 to C_NUM_CHANNELS - 1) 1 System IHDLC Serial Transmit
Clock Input
P7
Rx_Chnl_Sel(0 to C_NUM_SUB_CHANNEL_BITS_0 +
C_NUM_SUB_CHANNEL_BITS_1 + C_NUM_SUB_CHANNEL_BITS_2 +
C_NUM_SUB_CHANNEL_BITS_3 + C_NUM_SUB_CHANNEL_BITS_4 +
C_NUM_SUB_CHANNEL_BITS_5 + C_NUM_SUB_CHANNEL_BITS_6 +
C_NUM_SUB_CHANNEL_BITS_7) 2, 3
System IHDLC receive sub-channel select input
P8
Tx_Chnl_Sel(0 to C_NUM_SUB_CHANNEL_BITS_0 +
C_NUM_SUB_CHANNEL_BITS_1 + C_NUM_SUB_CHANNEL_BITS_2 +
C_NUM_SUB_CHANNEL_BITS_3 + C_NUM_SUB_CHANNEL_BITS_4 +
C_NUM_SUB_CHANNEL_BITS_5 + C_NUM_SUB_CHANNEL_BITS_6 +
C_NUM_SUB_CHANNEL_BITS_7) 2, 3
System O 0HDLC transmit sub-channel select output
OPB Signals
P17 Sln_DBus(0:C_OPB_DWIDTH-1) IPIF O 0 HDLC output data bus
P18 Sln_xferAck IPIF O 0 HDLC transfer acknowledge
P19 Sln_Retry IPIF O 0 HDLC retry
P20 Sln_ToutSup IPIF O 0 HDLC timeout suppress
P21 Sln_ErrAck IPIF O 0 HDLC error acknowledge
P22 OPB_ABus(0:C_OPB_AWIDTH-1) IPIF I OPB address bus
P23 OPB_BE(0:C_OPB_DWIDTH/8-1) IPIF I OPB byte enables
P24 OPB_DBus(0:C_OPB_DWIDTH-1) IPIF I OPB data bus
P25 OPB_RNW IPIF IRead not Write (OR of all master RNW
signals)
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
HDLC Port DependenciesThe width of some of the HDLC signals
depends on parameters selected in the design. The dependencies
between the HDLC design parameters and I/O signals are shown in
Table 3.
P26 OPB_select IPIF IMaster has taken control of the bus (OR of
all master selects)
P27 OPB_seqAddr IPIF I OPB sequential address
P28 OPB_errAck IPIF I OPB error acknowledge
P29 OPB_MGrant IPIF I OPB master bus grant
P30 OPB_retry IPIF I OPB retry
P31 OPB_timeout IPIF I OPB timeout error
P32 OPB_xferAck IPIF I OPB transfer acknowledge
P33 Mn_request IPIF O 0 HDLC master bus request
P34 Mn_busLock IPIF O 0HDLC master bus arbitration lock
P35 Mn_select IPIF O 0 HDLC master select
P36 Mn_RNW IPIF O 0 HDLC master Read not Write
P37 Mn_BE(0:C_OPB_DWIDTH/8-1) IPIF O 0 HDLC master byte
enables
P38 Mn_seqAddr IPIF O 0HDLC master sequential address
P39 Mn_ABus(0:C_OPB_ABUS_WIDTH-1) IPIF O 0 HDLC master address
bus
System
P40 OPB_Clk System I System clock
P41 OPB_Rst System I System Reset (active high)
P42 IP2INTC_Irpt System O System Interrupt
P43 Freeze System I System Freeze Input
Notes: 1. The OPB_CLK must be at least 1.1x faster than the Rx
or Tx data rate for a physical channel with one sub
channel, the OPB_CLK must be at least 3x faster than Rx or Tx
data rates for a physical channel with more than one sub channel.
The Rx data rate is controlled by the RXCLK and RXden, the Tx data
rate is controlled by TXCLK and TXden.
2. If a no TDM sub-channels exist on any of the physical
channels then this signal is undefined, but the vector will exist
and be of length one (0 to 0). If any of the physical channels have
more than one TDM sub-channel then this vector will be the
concatenation of all the physical channels. For example if physical
channel one has 24 sub-channels and physical channel two has 32
sub-channels and physical channel three has two sub-channels, then
the vector is divided as follows, (0 to 4) physical channel one, (5
to 9) physical channel two, (10) physical channel three.
3. This vector will always be one larger than necessary. The top
bit is to be ignored.
Table 2: HDLC I/O Signals (Contd)
Port Signal Name Interface I/OInitial State
Description
ember 1, 2005 www.xilinx.com 9ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
10
- THIS IS A DISCONTINUED IP CORE -
Table 3: HDLC Parameter Port Dependencies
Generic or Port
Name Affects Depends Relationship Description
Design Parameters
G1 C_NUM_CHANNELSP1, P2, P3, P4, P5, P6
Specifies the number of physical channels
G2 C_NUM_SUB_CHANNELS_0 P7, P8Specifies the number of
sub-channels for Physical Channel 0
G3 C_NUM_SUB_CHANNELS_1 P7, P8Specifies the number of
sub-channels for Physical Channel 1
G4 C_NUM_SUB_CHANNELS_2 P7, P8Specifies the number of
sub-channels for Physical Channel 2
G5 C_NUM_SUB_CHANNELS_3 P7, P8Specifies the number of
sub-channels for Physical Channel 3
G6 C_NUM_SUB_CHANNELS_4 P7, P8Specifies the number of
sub-channels for Physical Channel 4
G7 C_NUM_SUB_CHANNELS_5 P7, P8Specifies the number of
sub-channels for Physical Channel 5
G8 C_NUM_SUB_CHANNELS_6 P7, P8Specifies the number of
sub-channels for Physical Channel 6
G9 C_NUM_SUB_CHANNELS_7 P7, P8Specifies the number of
sub-channels for Physical Channel 7
G28 C_OPB_DWIDTHP17, P23, P24
Specifies the OPB Data Bus width
G27 C_OPB_AWIDTHP22, P39
Specifies the OPB Address Bus width
I/O Signals
P1 RXD(0 to C_NUM_CHANNELS - 1) G1Width varies with the number
of channels.
P2 TXD(0 to C_NUM_CHANNELS - 1) G1Width varies with the number
of channels.
P3 RXden(0 to C_NUM_CHANNELS - 1) G1Width varies with the number
of channels.
P4 TXden(0 to C_NUM_CHANNELS - 1) G1Width varies with the number
of channels.
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
HDLC Register DescriptionsThe HDLC contains addressable
registers for read/write operations as shown in Table 4, Table 5,
Table 6, Table 7 and Table 9 The base address for these registers
is set in the parameter C_BASEADDR. C_BASEADDR + 0x1000 represents
the address of the first register in the HDLC - in this case, the
HDLC Status FIFO (SF). The address of each register is then
calculated by an offset to the base address plus the physical
channel offset plus the sub-channel offset.
The registers in Table 4 are contained in the IPIF module and
are included for completeness of this specification. Please refer
to the Processor IP Reference Guide under Part 1: Embedded
Processor IP, under IPIF, under OPB IPIF Architecture, under OPB
IPIF Register Descriptions for a complete description of these
registers.
P5RXCLK(0 to log2(C_NUM_CHANNELS) - 1)
G1Width varies with the number of channels.
P6TXCLK(0 to log2(C_NUM_CHANNELS) - 1)
G1Width varies with the number of channels.
P7
Rx_Chnl_Sel(0 to C_NUM_SUB_CHANNEL_BITS_0 +
C_NUM_SUB_CHANNEL_BITS_1 + C_NUM_SUB_CHANNEL_BITS_2 +
C_NUM_SUB_CHANNEL_BITS_3 + C_NUM_SUB_CHANNEL_BITS_4 +
C_NUM_SUB_CHANNEL_BITS_5 + C_NUM_SUB_CHANNEL_BITS_6 +
C_NUM_SUB_CHANNEL_BITS_7)
G1, G2Width varies with the number of channels. Width varies
with the number of sub-channels.
P8
Tx_Chnl_Sel(0 to C_NUM_SUB_CHANNEL_BITS_0 +
C_NUM_SUB_CHANNEL_BITS_1 + C_NUM_SUB_CHANNEL_BITS_2 +
C_NUM_SUB_CHANNEL_BITS_3 + C_NUM_SUB_CHANNEL_BITS_4 +
C_NUM_SUB_CHANNEL_BITS_5 + C_NUM_SUB_CHANNEL_BITS_6 +
C_NUM_SUB_CHANNEL_BITS_7)
G1, G2Width varies with the number of channels. Width varies
with the number of sub-channels.
P17 Sln_DBus(0:C_OPB_DWIDTH-1) G28 Width varies with the size of
the OPB Data bus.
P22 OPB_ABus(0:C_OPB_AWIDTH-1) G27Width varies with the size of
the OPB Address bus.
P23 OPB_BE(0:C_OPB_DWIDTH/8-1) G28Width varies with the size of
the OPB Data bus.
P24 OPB_DBus(0:C_OPB_DWIDTH-1) G28Width varies with the size of
the OPB Data bus.
P39M_ABus(0:C_OPB_ABUS_WIDTH-1)
G27Width varies with the size of the OPB Data bus.
Table 3: HDLC Parameter Port Dependencies (Contd)
Generic or Port
Name Affects Depends Relationship Description
ember 1, 2005 www.xilinx.com 11ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
12
- THIS IS A DISCONTINUED IP CORE -
IPIF Registers used by the HDLC
Table 4: HDLC IPIF Registers
Register Name OPB ADDRESS Access
Device Interrupt Status Register C_BASEADDR + 0x0000
Read/Write
Device Interrupt Pending Register C_BASEADDR + 0x0004
Read/Write
Device Interrupt Enable Register C_BASEADDR + 0x0008
Read/Write
Device Interrupt Identification Register C_BASEADDR + 0x0018
Read/Write
Device Global Interrupt Enable C_BASEADDR + 0x001C
Read/Write
IP Interrupt Status Register C_BASEADDR + 0x0020 Read/Write
IP Interrupt Enable Register C_BASEADDR + 0x0028 Read/Write
Device Software Reset (write) Module Identification (read)
Register
C_BASEADDR + 0x0040 Read/Write
DMA Module Identification Register(1) C_BASEADDR + 0x1010
Read
DMA Global CSR(1) C_BASEADDR + 0x1014 Read/Write
DMA Event FIFO(1) C_BASEADDR + 0x1018 Read
DMA Reserved for system(1,2) C_BASEADDR + dmasg_chan*0X20 +
0x10000 none
DMA Control Register(1,2) C_BASEADDR + dmasg_chan*0X20 + 0x10004
Read/Write
DMA Source Address(1,2) C_BASEADDR + dmasg_chan*0X20 + 0x10008
Read/Write
DMA Destination Address(1,2)C_BASEADDR + dmasg_chan*0X20 +
0x1000CRead/Write
DMA Length(1,2) C_BASEADDR + dmasg_chan*0X20 + 0x10010
Read/Write
DMA Status Register(1,2) C_BASEADDR + dmasg_chan*0X20 + 0x10014
Read
DMA Buffer Descriptor Address(1,2) C_BASEADDR + dmasg_chan*0X20
+ 0x10018 Read/Write
DMA Software Control Register(1,2)C_BASEADDR + dmasg_chan*0X20
+
0x1001CRead/Write
Notes: 1. These registers are available only if C_DMA_PRESENT =
2.2. These 8 registers are repeated for every DMA channel. A DMA
channel is a half duplex channel, so a single
channel HDLC which is full duplex contains 2 DMA channels one
for Tx and one for Rx.
HDLC Registers
Table 5, Table 6, and Table 7 shows the HDLC registers and
addresses, the physical channel offset, and the sub-channel offset.
Table 8 and Table 9 show the address offsets for the channel
FIFOs.
Table 5: HDLC Registers
Register Name OPB Address Access
Status FIFO (SF) C_BASEADDR + 0x1000 Read
Device Control Register (MSCR) C_BASEADDR + 0x1100
Read/Write
TX Event FIFO (TXEF) C_BASEADDR + 0x1104 Read
RX Event FIFO (RXEF) C_BASEADDR + 0x1108 Read
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Physical Channel 0 Control Register (PCCR(0)) C_BASEADDR +
0x1110 Read/Write
Number of Aborted Frames per physical channel 0 (ABRT(0))
C_BASEADDR + 0x1114 Read/Write
Number of CRC Errors per physical channel 0 (CRCE(0)) C_BASEADDR
+ 0x1118 Read/Write
Physical Channel 1 Control Register (PCCR(1))1 C_BASEADDR +
0x1120 Read/Write
Number of Aborted Frames per physical channel 1 (ABRT(1))1
C_BASEADDR + 0x1124 Read/Write
Number of CRC Errors per physical channel 1 (CRCE(1))1
C_BASEADDR + 0x1128 Read/Write
Physical Channel 2 Control Register (PCCR(2))1 C_BASEADDR +
0x1130 Read/Write
Number of Aborted Frames per physical channel 2 (ABRT(2))1
C_BASEADDR + 0x1134 Read/Write
Number of CRC Errors per physical channel 2 (CRCE(2))1
C_BASEADDR + 0x1138 Read/Write
Physical Channel 3 Control Register (PCCR(3))1 C_BASEADDR +
0x1140 Read/Write
Number of Aborted Frames per physical channel 3 (ABRT(3))1
C_BASEADDR + 0x1144 Read/Write
Number of CRC Errors per physical channel 3 (CRCE(3))1
C_BASEADDR + 0x1148 Read/Write
Physical Channel 4 Control Register (PCCR(4))1 C_BASEADDR +
0x1150 Read/Write
Number of Aborted Frames per physical channel 4 (ABRT(4))1
C_BASEADDR + 0x1154 Read/Write
Number of CRC Errors per physical channel 4 (CRCE(4))1
C_BASEADDR + 0x1158 Read/Write
Physical Channel 5 Control Register (PCCR(5))1 C_BASEADDR +
0x1160 Read/Write
Number of Aborted Frames per physical channel 5 (ABRT(5))1
C_BASEADDR + 0x1164 Read/Write
Number of CRC Errors per physical channel 5 (CRCE(5))1
C_BASEADDR + 0x1168 Read/Write
Physical Channel 6 Control Register (PCCR(6))1 C_BASEADDR +
0x1170 Read/Write
Number of Aborted Frames per physical channel 6 (ABRT(6))1
C_BASEADDR + 0x1174 Read/Write
Number of CRC Errors per physical channel 6 (CRCE(6))1
C_BASEADDR + 0x1178 Read/Write
Physical Channel 7 Control Register (PCCR(7))1 C_BASEADDR +
0x1180 Read/Write
Number of Aborted Frames per physical channel 7 (ABRT(7))1
C_BASEADDR + 0x1184 Read/Write
Number of CRC Errors per physical channel 7 (CRCE(7))1
C_BASEADDR + 0x1188 Read/Write
TX Sub channel Control (TXCR)(2)C_BASEADDR + Physical Offset(3)
+ Sub-Channel
Offset(4)Read/Write
RX Sub channel Control, Address (RXCA)(2)C_BASEADDR + Physical
Offset(3) + Sub-Channel
Offset(4) + 0x800Read/Write
Table 5: HDLC Registers (Contd)
Register Name OPB Address Access
ember 1, 2005 www.xilinx.com 13ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
14
- THIS IS A DISCONTINUED IP CORE -
TX DATA FIFO STATUS (TXDFS)C_BASEADDR + FIFO
Offset(5) + FIFO Sub-channel Offset(6)
Read
TX DATA FIFO (TXDF)C_BASEADDR + FIFO
Offset(5) + FIFO Sub-channel Offset(6)
Write
RX DATA FIFO STATUS (RXDFS)C_BASEADDR + FIFO
Offset(5) + FIFO Sub-channel Offset(6) + 0x2000
Read
RX DATA FIFO (RXDF)C_BASEADDR + FIFO
Offset(5) + FIFO Sub-channel Offset(6) + 0x2004
Read
Notes: 1. The availability of these registers depends on
C_NUM_CHANNELS.2. If more than one sub channel is specified these
registers are stored in BRAM. After a reset the entire Tx and
Rx BRAM must be initialized to zeros. This includes all the
address space between each control register.3. The Physical Offset
values are listed in Table 6.4. The Sub-channel Offset values are
listed in Table 7.5. The FIFO Offset values are listed in Table
8.6. The FIFO Sub-channel Offset values are listed in Table 9.
Table 6: HDLC Physical Channel Control Registers Offset
Values
Register Name Offset Value
Physical Channel 0, Sub-Channel 0 0x18000
Physical Channel 1, Sub-Channel 0 0x19000
Physical Channel 2, Sub-Channel 0 0x1A000
Physical Channel 3, Sub-Channel 0 0x1B000
Physical Channel 4, Sub-Channel 0 0x1C000
Physical Channel 5, Sub-Channel 0 0x1D000
Physical Channel 6, Sub-Channel 0 0x1E000
Physical Channel 7, Sub-Channel 0 0x1F000
Table 7: HDLC Sub-channel Control Registers Offset Values
Register Name Offset Value
Sub-Channel 0 0x0000
Sub-Channel 1 0x0020
Sub-Channel 2 0x0040
Sub-Channel 3 0x0060
Sub-Channel 4 0x0080
Table 5: HDLC Registers (Contd)
Register Name OPB Address Access
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Sub-Channel 5 0x00A0
Sub-Channel 6 0x00C0
Sub-Channel 7 0x00E0
Sub-Channel 8 0x0100
Sub-Channel 9 0x0120
Sub-Channel 10 0x0140
Sub-Channel 11 0x0160
Sub-Channel 12 0x0180
Sub-Channel 13 0x01A0
Sub-Channel 14 0x01C0
Sub-Channel 15 0x01E0
Sub-Channel 16 0x0200
Sub-Channel 17 0x0220
Sub-Channel 18 0x0240
Sub-Channel 19 0x0260
Sub-Channel 20 0x0280
Sub-Channel 21 0x02A0
Sub-Channel 22 0x02C0
Sub-Channel 23 0x02E0
Sub-Channel 24 0x0300
Sub-Channel 25 0x0320
Sub-Channel 26 0x0340
Sub-Channel 27 0x0360
Sub-Channel 28 0x0380
Sub-Channel 29 0x03A0
Sub-Channel 30 0x03C0
Sub-Channel 31 0x03E0
Table 8: HDLC FIFO Offset Values
Register Name Offset Value
Physical Channel 0, Sub-Channel 0 0x20000
Physical Channel 1, Sub-Channel 0 0x24000
Physical Channel 2, Sub-Channel 0 0x28000
Table 7: HDLC Sub-channel Control Registers Offset Values
(Contd)
Register Name Offset Value
ember 1, 2005 www.xilinx.com 15ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
16
- THIS IS A DISCONTINUED IP CORE -
Physical Channel 3, Sub-Channel 0 0x2C000
Physical Channel 4, Sub-Channel 0 0x30000
Physical Channel 5, Sub-Channel 0 0x34000
Physical Channel 6, Sub-Channel 0 0x38000
Physical Channel 7, Sub-Channel 0 0x3C000
Table 9: HDLC FIFO Sub Channel Offset Values
Register Name Offset Value
FIFO Sub-Channel 0 0x0000
FIFO Sub-Channel 1 0x0080
FIFO Sub-Channel 2 0x0100
FIFO Sub-Channel 3 0x0180
FIFO Sub-Channel 4 0x0200
FIFO Sub-Channel 5 0x0280
FIFO Sub-Channel 6 0x0300
FIFO Sub-Channel 7 0x0380
FIFO Sub-Channel 8 0x0400
FIFO Sub-Channel 9 0x0480
FIFO Sub-Channel 10 0x0500
FIFO Sub-Channel 11 0x0580
FIFO Sub-Channel 12 0x0600
FIFO Sub-Channel 13 0x0680
FIFO Sub-Channel 14 0x0700
FIFO Sub-Channel 15 0x0780
FIFO Sub-Channel 16 0x0800
FIFO Sub-Channel 17 0x0880
FIFO Sub-Channel 18 0x0900
FIFO Sub-Channel 19 0x0980
FIFO Sub-Channel 20 0x0A00
FIFO Sub-Channel 21 0x0A80
FIFO Sub-Channel 22 0x0B00
FIFO Sub-Channel 23 0x0B80
FIFO Sub-Channel 24 0x0C00
Table 8: HDLC FIFO Offset Values
Register Name Offset Value
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Address Bus Usage for Channel FIFOs
Figure 2: Address Bus Usage for Channel FIFOs
Figure Top x-ref 2
addr_bus_usage_channel_fifos.eps
0 13 14 17 18 27 2825 26 29 30 31
Device Address FIFO Sub-channel Tag(1)
FIFO Phy Channel Tag(0) Tag(2) Zero
Tag(3)
Tag Bits(0 to 3), Address bits(26 to 29)
Tag bits make use of the extra data bits that exist in a BRAM.
By placing the tag bits in the address space, sixteen extra address
ranges are used for each FIFO. This allows the processor to write
36 bits of data to each FIFO, 32 bits of data are written on the
data bus as normal, then depending upon which address is written to
the tag bits are set as shown in Table 10
FIFO Sub-Channel 25 0x0C80
FIFO Sub-Channel 26 0x0D00
FIFO Sub-Channel 27 0x0D80
FIFO Sub-Channel 28 0x0E00
FIFO Sub-Channel 29 0x0E80
FIFO Sub-Channel 30 0x0F00
FIFO Sub-Channel 31 0x0F80
Table 10: Address Usage for Channel FIFO
Address Tag Value Tag Bit Meaning
0b 0000 0000 0000 001x xxxx xxxx xx00 0000+ C_BASEADDR
Tag(0 to 3) = 0x0Normal Data4 bytes to TX, not EOP
0b 0000 0000 0000 001x xxxx xxxx xx00 0100+ C_BASEADDR
Tag(0 to 3) = 0x1 Undefined
0b 0000 0000 0000 001x xxxx xxxx xx00 1000+ C_BASEADDR
Tag(0 to 3) = 0x2 Undefined
0b 0000 0000 0000 001x xxxx xxxx xx00 1100+ C_BASEADDR
Tag(0 to 3) = 0x3 Undefined
0b 0000 0000 0000 001x xxxx xxxx xx01 0000+ C_BASEADDR
Tag(0 to 3) = 0x4End of packet (EOP)4 bytes valid
0b 0000 0000 0000 001x xxxx xxxx xx01 0100+ C_BASEADDR
Tag(0 to 3) = 0x5End of packet (EOP) 1 byte valid
0b 0000 0000 0000 001x xxxx xxxx xx01 1000+ C_BASEADDR
Tag(0 to 3) = 0x6End of packet (EOP) 2 bytes valid
0b 0000 0000 0000 001x xxxx xxxx xx01 1100+ C_BASEADDR
Tag(0 to 3) = 0x7End of packet (EOP) 3 bytes valid
Table 9: HDLC FIFO Sub Channel Offset Values (Contd)
ember 1, 2005 www.xilinx.com 17ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
18
- THIS IS A DISCONTINUED IP CORE -
FIFO Sub-channel(0 to 7) Address Bits(18 to 25)
FIFO sub-channel(0 to 7) 0 is the MSB (address bit 18) and 7 is
the LSB (address bit 25). The MSB is used to select between either
a Tx channel (MSB = 0) or a Rx channel (MSB = 1). The remainder of
the bits in this range are used to select a sub-channel.
FIFO Phy channel(0 to 3) Address Bits(14 to 17)
Each physical HDLC interface contains an independent Tx Channel
FIFO and independent Rx Channel FIFO.
Example Memory Map
This example is based upon a system that contains eight physical
channels 32 sub-channels and a receive and transmit memory depth of
2048 for each physical channel. Only two physical and two
sub-channels are shown in Table 11.
0b 0000 0000 0000 001x xxxx xxxx xx10 0000+ C_BASEADDR
Tag(0 to 3) = 0x8 Undefined
0b 0000 0000 0000 001x xxxx xxxx xx10 0100+ C_BASEADDR
Tag(0 to 3) = 0x9 Undefined
0b 0000 0000 0000 001x xxxx xxxx xx10 1000+ C_BASEADDR
Tag(0 to 3) = 0xA Undefined
0b 0000 0000 0000 001x xxxx xxxx xx10 1100+ C_BASEADDR
Tag(0 to 3) = 0xB Undefined
0b 0000 0000 0000 001x xxxx xxxx xx11 0000+ C_BASEADDR
Tag(0 to 3) = 0xC Undefined
0b 0000 0000 0000 001x xxxx xxxx xx11 0100+ C_BASEADDR
Tag(0 to 3) = 0xD Undefined
0b 0000 0000 0000 001x xxxx xxxx xx11 1000+ C_BASEADDR
Tag(0 to 3) = 0xE Undefined
0b 0000 0000 0000 001x xxxx xxxx xx11 1100+ C_BASEADDR
Tag(0 to 3) = 0xF Undefined
Table 11: Example Memory Map Consisting of 8 Physical Channels,
32 sub-channels 2048 bytes Rx and Tx Memory depth for all physical
channels
Category Relative Absolute Description
HDLC Device
+ 0x0000 + 0x0000 IPIF Registers
+ 0x1000 + 0x1000 Status FIFO
+ 0x1100 + 0x1100 Device Control Register
+ 0x1104 + 0x1104 Tx Event FIFO
+ 0x1108 + 0x1108 Rx Event FIFO
Table 10: Address Usage for Channel FIFO (Contd)
Address Tag Value Tag Bit Meaning
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Physical Channel 0
+ 0x1110 + 0x1110 Physical Channel 0 Control Register
+ 0x1114 + 0x1114 Aborted Frame Counter
+ 0x1118 + 0x1118 CRC Error Counter
Physical Channel 1
+ 0x1120 + 0x1120 Physical Channel 1 Control Register
+ 0x1124 + 0x1124 Aborted Frame Counter
+ 0x1128 + 0x1128 CRC Error Counter
Physical Channel 0
Sub-channel 0+ 0x18000 (Physical Offset)+ 0x00000 (Sub Channel
Offset)
+ 0x18000 Tx Control (TXCR(0,0))
Physical Channel 0 Sub-channel 1
+ 0x18000 (Physical Offset)+ 0x00020 (Sub Channel Offset)
+ 0x18020 Tx Control (TXCR(0,1))
Physical Channel 0Sub-channel 0
+ 0x18000 (Physical Offset)+ 0x00000 (Sub Channel Offset) +
0x00800 (Constant Offset)
+ 0x18800 Rx Control (RXCA(0,0))
Physical Channel 0 Sub-channel 1
+ 0x18000 (Physical Offset)+ 0x00020 (Sub Channel Offset)+
0x00800 (Constant Offset)
+ 0x18820 Rx Control RXCA(0,1))
Physical Channel 0
Sub-channel 0
+ 0x20000 (FIFO Offset)+ 0x00000 (FIFO Sub Offset)+ 0x00000 (Tag
Offset)
+ 0x20000
Write - TXDF(0,0) normal Tx data as defined in Table 10Read -
TXDFS(0,0) Tx Data FIFO Status
Physical Channel 0
Sub-channel 0
+ 0x20000 (Physical Offset)+ 0x00000 (FIFO Sub Offset)+ 0x00004
- 0x0003C (Tag Offset)
+ 0x20004 through
+ 0x2003C
Write - TXDF(0,0) as defined in Table 10Read - undefined
Physical Channel 0Sub-channel 0
+ 0x20000 (Physical Offset)+ 0x00000 (FIFO Sub Offset)+ 0x02000
(Constant Offset)
+ 0x22000Write - UndefinedRead - RXDFS(0,0) Rx Data FIFO
Status
Physical Channel 0Sub-channel 0
+ 0x20000 (Physical Offset)+ 0x00000 (FIFO Sub Offset)+ 0x02004
(Constant Offset)
+ 0x22004Write - UndefinedRead - RXDF(0,0) Rx Data FIFO
Physical Channel 0 Sub-channel 1
+ 0x20000 (Physical Offset)+ 0x00080 (FIFO Sub Offset)+ 0x00000
(Tag Offset)
+ 0x20080
Write - TXDF(0,1) normal Tx data as defined in Table 10Read -
TXDFS(0,1) Tx Data FIFO Status
Physical Channel 0 Sub-channel 1
+ 0x20000 (Physical Offset)+ 0x00080 (FIFO Sub Offset)+ 0x00004
- 0x0003C (Tag Offset)
+ 0x20084 through
+ 0x200BC
Write - TXDF(0,1) as defined in Table 10Read - undefined
Physical Channel 0 Sub-channel 1
+ 0x20000 (Physical Offset)+ 0x00080 (FIFO Sub Offset)+ 0x02000
(Constant Offset)
+ 0x22080Write - UndefinedRead - RXDFS(0,1) Rx Data FIFO
Status
Table 11: Example Memory Map Consisting of 8 Physical Channels,
32 sub-channels 2048 bytes Rx and Tx Memory depth for all physical
channels (Contd)
Category Relative Absolute Description
ember 1, 2005 www.xilinx.com 19ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
20
- THIS IS A DISCONTINUED IP CORE -
Physical Channel 0Sub-channel 1
+ 0x20000 (Physical Offset)+ 0x00080 (FIFO Sub Offset)+ 0x02004
(Constant Offset)
+ 0x22084Write - UndefinedRead - RXDF(0,1) Rx Data FIFO
Physical Channel 1
Sub-channel 0+ 0x19000 (Physical Offset)+ 0x00000 (Sub Channel
Offset)
+ 0x19000 Tx Control (TXCR(1,0))
Physical Channel 1 Sub-channel 1
+ 0x19000 (Physical Offset)+ 0x00020 (Sub Channel Offset)
+ 0x19020 Tx Control TXCR(1,1))
Physical Channel 1Sub-channel 0
+ 0x19000 (Physical Offset)+ 0x00000 (Sub Channel Offset)+
0x00800 (Constant Offset)
+ 0x19800 Rx Control (RXCA(1,0))
Physical Channel 1 Sub-channel 1
+ 0x19000 (Physical Offset)+ 0x00020 (Sub Channel Offset)+
0x00800 (Constant Offset)
+ 0x19820 Rx Control (RXCA(1,1))
Physical Channel 1
Sub-channel 0
+ 0x24000 (Physical Offset)+ 0x00000 (FIFO Sub Offset)+ 0x00000
(Tag Offset)
+ 0x24000
Write - TXDF(1,0) normal Tx data as defined in Table 10Read -
TXDFS(1,0)Tx Data FIFO Status
Physical Channel 1Sub-channel 0
+ 0x24000 (Physical Offset)+ 0x00000 (FIFO Sub Offset)+ 0x00004
- 0x0003C (Tag Offset)
+ 0x24004
through
+ 0x2403C
Write - TXDF(1,0) as defined in Table 10Read - undefined
Physical Channel 1
Sub-channel 0
+ 0x24000 (Physical Offset)+ 0x00000 (FIFO Sub Offset)+ 0x02000
(Constant Offset)
+ 0x26000Write - UndefinedRead - RXDFS(1,0) Rx Data FIFO
Status
Physical Channel 1
Sub-channel 0
+ 0x24000 (Physical Offset)+ 0x00000 (FIFO Sub Offset)+ 0x02004
(Constant Offset)
+ 0x26004Write - UndefinedRead - RXDF(1,0) Rx Data FIFO
Physical Channel 1 Sub-channel 1
+ 0x24000 (Physical Offset)+ 0x00080 (FIFO Sub Offset)+ 0x00000
(Tag Offset)
+ 0x24080
Write - TXDF(1,1) normal Tx data as defined in Table 10Read -
TXDFS(1,1) Tx Data FIFO Status
Physical Channel 1 Sub-channel 1
+ 0x24000 (Physical Offset)+ 0x00080 (FIFO Sub Offset)+ 0x00004
- 0x0003C (Tag Offset)
+ 0x24084
through
+ 0x240B4
Write - TXDF(1,1) as defined in Table 10Read - undefined
Physical Channel 1 Sub-channel 1
+ 0x24000 (Physical Offset)+ 0x00080 (FIFO Sub Offset)+ 0x02000
(Constant Offset)
+ 0x26080Write - UndefinedRead - RXDFS(1,1) Rx Data FIFO
Status
Physical Channel 1Sub-channel 1
+ 0x24000 (Physical Offset)+ 0x00080 (FIFO Sub Offset)+ 0x02004
(Constant Offset)
+ 0x26084Write - UndefinedRead - RXDF(1,1) Rx Data FIFO
Table 11: Example Memory Map Consisting of 8 Physical Channels,
32 sub-channels 2048 bytes Rx and Tx Memory depth for all physical
channels (Contd)
Category Relative Absolute Description
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
HDLC Device Control Register (MSCR), C_BASE_ADDR + 0x1100
There is one HDLC Device Control Register for the entire HDLC
device, regardless of the number of physical channels or
sub-channels specified. The bit definitions are shown in Table
12.
Figure 3: HDLC Device Control Register Bit Mapping
Figure Top x-ref 3
addr_bus_usage_channel_fifos.eps
0 3 4 3029 31
MSB LSB Unused
Number of Physical
Channels - 1
MSEN
TXSEN
Table 12: HDLC Device Control Register Bit Definitions
Bit(s) Name Access Reset Value Description
0 - 3 NPC ReadC_NUM_
CHANNELS - 1
Number of Physical Channels - 1.This is the generic
C_NUM_CHANNELS - 1 that is a read only. Writing to these bits is
ignored and has no effect.
4-29 Unused Undefined Reserved
30 TXSEN Read/Write 0
Transmit Status Write Enable.Setting this bit to a 0 prevents
all transmit status from being written into the Status FIFO. All
receive status will still be written to the Status FIFO.Setting
this bit to a 1 is required to use DMA and allows transmit status
and transmit data length to be written into the Status FIFO.
31 MSEN Read/Write 0
Master Enable.Setting this bit to a 0 prevents the HDLC from
receiving or transmitting any data. All registers should be
initialized prior to setting this bit to a 1
Status FIFO (SF) C_BASE_ADDR + 0x1000
There is one Status FIFO for the entire HDLC device, regardless
of the number of physical channels or sub-channels specified. This
FIFO is 16 locations deep and is read only. The The Status FIFO bit
mapping is shown in Figure 4, while the bit definitions are listed
in Table 13.
Figure 4: Status FIFO Bit Mapping
Figure Top x-ref 4
0 3 4 98 10 23 24 25 31
Length
EOPTx - 0Rx - 1
Sub-Channel Status
status_fifo_bit_mapping.epsPhysical Channel
ember 1, 2005 www.xilinx.com 21ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
22
- THIS IS A DISCONTINUED IP CORE -
Table 13: HDLC Status FIFO Bit Definitions
Bit(s) Name Access Reset Value Description
0-3Physical Channel
Read UndefinedPhysical Channel Number.This field contains the
binary encoding of the Physical Channel number. Data Bit 0 is the
MSB
4 - 8Sub-
channelRead Undefined
Sub-Channel Number.This field contains the binary encoding of
the Sub-Channel number. Data Bit 4 is the MSB.
9 RxTx Read UndefinedRxTx.Tx = 0Rx = 1
10 - 23 Length Read UndefinedThis is the number of bytes of data
that has been written to the Rx Channel FIFO, or the number of
bytes of data that has been read from Tx Channel FIFO.
24 EOP Read UndefinedEnd of Packet. This bit will be set high to
indicate that the final byte has been received. This bit is
undefined for transmit status.
25 - 27 Status(1) Read Undefined Reserved Status Bits
28 RXFA(1) Read UndefinedRX Frame Aborted. This bit will be set
to a 1 when the last frame was aborted. This bit is cleared upon
receiving the end flag of a complete frame.
29 RXFCS(1) Read UndefinedRX FCS Error. The last received frame
contained an error. This bit will be set to a 1 once the end flag
has been received if the frame contained an error.
30 RXAE(1) Read UndefinedRX Alignment Error. This bit is set to
a 1 whenever the receiver did not receive an integer number of
bytes.
31 RXBA(1) Read UndefinedBroadcast Address Received. This bit is
set high when a transmitter has issued a broadcast address and the
broadcast address match bit is set high, RXCA(30) = 1.
Notes: 1. The HDLC only returns a receive status, these bits are
undefined and unused for a transmit status
HDLC Events
The HDLC events are converted into interrupts by the IPIF
interrupt register set. The HDLC has multiple Transmit (Tx) and
Receive (Rx) events. These Tx and Rx events are stored in separate
event FIFOs. The event FIFOs are 16 locations deep and are read
only. The following six events are managed by the IP Interrupt
Source Controller Function which is contained in the IPIF module.
This interface provides many of the features commonly provided for
interrupt handling. The IPIER and IPISR contain the bit mapping as
shown in Figure 5. Please refer to the Processor IP Reference Guide
under Part 1: Embedded Processor IP, under IPIF, under OPB IPIF
Architecture, under OPB IPIF Interrupt for a complete description
of the IPIF interrupt processing including the GIE, IPISR and
IPIER. The number in the parenthesis is the IPIF interrupt bit
number. The bit definitions are described below.
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Figure 5: HDLC Event Mapping
Figure Top x-ref 5
26250 27 28 29 30 31
Event(4)
Event(2)
Event(0)
Event(5)
Event(3)
Event(1)
Unused
hdlc_event_mapping.eps
Event(0) -- Tx Event FIFO not empty
This event indicates that one or more of the events listed in
Table 14 has occurred. The Tx event FIFO must be read to determine
the physical channel and sub-channel number and the event
condition. This event will remain active until the Tx event FIFO is
empty.
Event(1) -- Tx Event FIFO Full
This event indicates that one or more of the events listed in
Table 14 occurred, but that the Tx event FIFO was full and unable
to store the latest event. This indicates that information has been
lost and the recommended approach to recover from this condition is
that the HDLC device transmit channels, both the physical and
sub-channels, should be reset to initial conditions.
Event(2) -- Rx Event FIFO not empty
This event indicates that one or more of the events listed in
Table 15 has occurred. The Rx event FIFO must be read to determine
the physical channel and sub-channel number and the event
condition. This event will remain active until the Rx event FIFO is
empty.
Event(3) -- Rx Event FIFO Full
This event indicates that one or more of the events listed in
Table 15 occurred, but that the Rx event FIFO was full and unable
to store the latest event. This indicates that information has been
lost and the recommended approach to recover from this condition is
that the HDLC device receive channels, both the physical and
sub-channels, should be reset to initial conditions.
Event(4) -- HDLC Status FIFO not empty
This event indicates that data exists in the HDLC Status
FIFO.
Event (5) -- HDLC Status FIFO Full
Indicates that the HDLC Status FIFO became full during the
reception or transmission of a packet and data was lost. This
indicates that information has been lost and the recommended
approach to recover from this condition is that the HDLC, both
physical and sub-channels, should be reset to initial
conditions.
HDLC Tx Event FIFO (TXEF) C_BASE_ADDR + 0x1104
There is one HDLC Tx Event FIFO for the device. This FIFO is 16
location deep and is read only. The HDLC Tx Event FIFO bit mapping
is shown inFigure 6, while the bit definitions are shown in Table
14.
ember 1, 2005 www.xilinx.com 23ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
24
- THIS IS A DISCONTINUED IP CORE -
Figure 6: HDLC Tx Event FIFO Bit Mapping
Figure Top x-ref 6
2928 30 31
Tx_Event(1)
Tx_Event(2)Tx_Event(0)
UnusedReserved
PhysicalChannel Sub-Channel
hdlc_tx_event_fifo_bit_mapping.eps
30 4 76 11 12
Table 14: HDLC Tx Event FIFO
Bit(s) Name AccessReset Value
Description
0 - 3Physical Channel
Read 0Physical Channel NumberBit 0 is the MSB of the Physical
Channel Number.
4 - 6 Reserved Read 0Reserved.Reserved for future sub channel
growth.
7 - 11 Sub-Channel Read 0Sub Channel NumberBit 7 is the MSB of
the Sub-Channel Number.
12 - 28
Unused Undefined Reserved
29 Tx_Event (2) Read 0
Tx_Event (2) -- Tx Channel FIFO Half EmptyIndicates that the Tx
channel FIFO is half empty. This event is only caused by the Tx
channel FIFO transitioning from less than half empty to more than
half empty.
30 Tx_Even t(1) Read 0Tx_Event (1) -- Tx dual port
underrunIndicates that a Tx dual port underrun occurred. This event
occurs if the Tx data rate is to high relative to the OPB_CLK.
31 Tx_Event (0) Read 0
Tx_Event (0) -- Transmit CompleteEvent(0) is the transmit
complete. This event will occur as the last byte of data is being
transmitted, prior to the transmission of the CRC or the ending
flag. This event is a pulse and there is no action required by
software to clear this event condition.
HDLC Rx Event FIFO (RXEF) C_BASE_ADDR + 0x1108
There is one HDLC Rx Event FIFO for the device. This FIFO is 16
location deep and is read only. The HDLC Rx Event FIFO bit mapping
is shown in Figure 7, while the bit definitions are shown in Table
15.
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Figure 7: HDLC Rx Event FIFO Bit Mapping
Figure Top x-ref 7
2928 30 31
Rx_Event(1)
Rx_Event(2)Rx_Event(0)
UnusedReserved
PhysicalChannel Sub-Channel
hdlc_rx_event_fifo_bit_mapping.eps
30 4 76 11 12
Table 15: HDLC Rx Event FIFO
Bit(s) Name AccessReset Value
Description
0 - 3Physical Channel
Read 0Physical Channel NumberBit 0 is the MSB of the Physical
Channel Number.
4 - 6 Reserved Read 0Reserved.Reserved for future sub channel
growth.
7 - 11Sub-
ChannelRead 0
Sub Channel NumberBit 7 is the MSB of the Sub-Channel
Number.
12 - 28 Unused Undefined Reserved
29 Rx_Event (2) Read 0Rx_Event (2) -- Rx dual port
overrunIndicates that an Rx dual port overrun occurred. This event
occurs if the Rx data rate is to high relative to the OPB_CLK.
30 Rx_Event (1) Read 0
Rx_Event (1) -- CRC counter or Aborted frames counter rollover
eventIndicates that either the CRC counter incremented from 65535
to 0 or the aborted frames counter incremented from 65535 to 0.
31 Rx_Event (0) Read 0
Rx_Event (0) -- Receive Data FIFO Overrun eventIndicates that
the receive data FIFO became full during the reception of a packet
and data was lost. Receive packets stored in the FIFO should be
processed to free up more locations. This event occurs every time
an attempt to write data to the FIFO and the FIFO is full.
HDLC Physical Control Register (PCCR) C_BASE_ADDR + 0x1110,
0x1120, 0x1130, ...
There will be one HDLC Physical Control Register for each
physical channel. The HDLC Physical Control Register bit mapping is
shown in Figure 8, while the bit definitions are shown in Table
16.
ember 1, 2005 www.xilinx.com 25ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
26
- THIS IS A DISCONTINUED IP CORE -
Figure 8: HDLC Physical Control Register Bit Mapping
Figure Top x-ref 8
2928 30 31
LoopRXEN
TXEN
Number of Sub-Channels - 1
MSB LSB Unused
hdlc_phy_control_register_bit_mapping.eps
0 7 8
Table 16: HDLC Physical Control Register Bit Definitions
Bit(s) Name Access Reset Value Description
0 - 7 NSC ReadC_NUM_SUB_CHANNELS - 1
Number of Sub-Channels - 1.This is the generic
C_NUM_SUB_CHANNELS - 1 that is a read only. Writing to these bits
is ignored and has no effect.
8-28 Unused Undefined Reserved
29 RXEN Read/Write 0
HDLC Receiver Enable. This bit must be set before any of the
RXCA bits have an effect.1 enables the HDLC RX controller.0
disables the HDLC RX controller.
30 TXEN Read/Write 0
HDLC Transmitter Enable. This bit must be set before any of the
TXCR bits have an effect. 1 enables the HDLC TX controller. 0
disables the HDLC TX controller.
31 LOOP Read/Write 0
Loop Back Test. Note that when toggling this bit, it is best if
the receiver is disabled (RXEN = 0) to prevent any spurious events
from occurring. Loop Back Test is not supported with DMA.1 - Loop
Back Test is enabled0 - Loop Back Test is disabled
Number of Aborted Frames (ABRT) C_BASE_ADDR + 0x1114, 0x1124,
0x1134, ...
This field contains the number of aborted frames received per
physical channel. The value will count to 65535, then rollover to
0, and continue counting. A write of any value will reset this
value. The bit mapping for this field is shown in Figure 9, while
the Aborted Frame Counter bit definitions are listed inTable
17.
Figure 9: HDLC Number of Aborted Frames Bit Mapping
Figure Top x-ref 9
31
AFC_EN
Unused Rx Aborted Frame Count
hdlc_number_aborted_frames_bit_mapping.eps
15140 16
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Table 17: Aborted Frame Counter
Bit(s) Name Access Reset Value Description
0-14 Unused Undefined Reserved
15 AFC_EN Read/Write 0
Setting this bit to a 0 will disable event (9), counter
rollover, from occurring.Setting this bit to a 1 will allow event
(9), counter rollover, to be passed to the Rx Event FIFO and then
to the IPIF for interrupt processing.
16-31Rx Aborted
Frame CountRead/Write 0x0000 This register is cleared to 0x00
with every write.
Number of CRC Errors (CRCE) C_BASE_ADDR + 0x1118, 0x1128,
0x1138, ...
This field contains the number of CRC errors received per
physical channel. The value will count to 65535, then rollover to
0, and continue counting. A write of any value will reset this
value. The bit mapping for this field is shown in Figure 10, while
the bit description is listed in Table 18.
Figure 10: HDLC Number of CRC Errors Bit Mapping
Figure Top x-ref 10
31
CCT_EN
Unused Rx CRC Error Count
hdlc_number_crc_errors_bit_mapping.eps
15140 16
Table 18: FCS Error Counter
Bit(s) Name AccessReset Value
Description
0-14 Unused Undefined Reserved
15 CCT_EN Read/Write 0
Setting this bit to a 0 will disable event (9), counter
rollover, from occurring.Setting this bit to a 1 will allow event
(9), counter rollover, to be passed to the IPIF for interrupt
processing.
16-31Rx CRC
Error Count
Read/Write 0x0000 This register is cleared to 0x00 with every
write.
HDLC RX Sub-channel Control and Address (RXCA)
There is one HDLC RX Sub-channel Control and Address register
for each sub-channel. The HDLC RX Control and Address Bit Mapping
register is shown in Figure 11, while the bit mapping for this
register is listed in Table 19.
ember 1, 2005 www.xilinx.com 27ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
28
- THIS IS A DISCONTINUED IP CORE -
Figure 11: HDLC Rx Sub-channel Control and Address Bit
MappingFigure Top x-ref 11
hdlc_rx_subchan_control_addr_bit_mapping.eps
0 7 8 1615 17 27 282625 29 30 31
High Byte of Slave Address Rx_Event(0)EN Unused ADSIZE RXSEN
Low Byte of Slave Address CRC ADREC BAMEN
RMADDR
Table 19: HDLC RX Control and Address Bit Definitions
Bit(s) Name AccessReset Value
Description
0-7High Byte of
Slave Address
Read/Read Modify Write
UndefinedAddress used by the OPB HDLC RX Interface for 16 bit
addresses
8-15Low Byte of
Slave Address
Read/Read Modify Write
UndefinedAddress used by the OPB HDLC RX Interface for 8 or 16
bit addresses
16Rx_Event
(0)_EnRead/Read Modify Write
Undefined
Rx_Event(0)_En. Receive Data FIFO Overrun enable. Setting this
bit to a 0 will disable the Receive Data FIFO Overrun RX_Event(1).
Setting this bit to a 1 will allow the Receive Data FIFO Overrun
RX_Event(1) to be passed to the IPIF for further interrupt
processing.
17 - 25 ReservedRead/Read Modify Write
Undefined Reserved
26 CRCRead/Read Modify Write
UndefinedCRC select. 1 - CRC-32 is used for the FCS field0 -
CRC-CCITT is used for the FCS fields.
27 ADSIZERead/Read Modify Write
UndefinedAddress Size. 1 - 16 bits of address are used for
address recognition.0 - 8 bit of address are used for address
recognition.
28 ADRECRead/Read Modify Write
Undefined
Address Recognition. 1 Address and data is written to the
receive memory buffer when the address received matches the address
stored in the address register(s).0 All addresses and data is
written to the receive memory buffer
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
HDLC TX Sub-channel Control Register (TXCR)
The HDLC TX Sub-channel Control Register is shown in Figure 12,
while the bit definitions for the register are listed Table 20.
Figure 12: HDLC Tx Sub-channel Control Register Bit Mapping
Figure Top x-ref 12
hdlc_tx_subchan_control_register_bit_mapping.eps
0 171615 18 2827 29 30 31
Unused Tx_Event(2)EN Unused DISCRC TXFA
Tx_Event(0)EN TXCRC TXSEN
29 RMADRRead/Read Modify Write
Undefined
Address Field Removed. Note that when the Address Recognition is
set to 0 the address field is written to the receive buffer
regardless of this bit setting.1 The address field is not written
to the receive memory buffer0 The address field is written to the
receive memory buffer
30 BAMENRead/Read Modify Write
Undefined
Broadcast address match. This bit will determine if the receiver
responds to a broadcast address.1 Receiver does respond to an 8 bit
broadcast address (0XFF).0 Receiver does not respond to a broadcast
address.
31 RXSENRead/Read Modify Write
Undefined
HDLC Receiver Sub-channel Enable. This bit must be set before
any other CR bits have any effect.1 enables the HDLC RX
controller.0 resets and disables the HDLC RX controller.
Table 20: HDLC TX Control Register Bit Definitions
Bit(s) Name Access Reset Value Description
0-15 Reserved Undefined Reserved.
16Transmit Complete
Event(0) EnableRead/Write
Undefined
Transmit Event(0) Enable. Setting this bit to a 0 will disable
the Transmit Complete Event(0). Setting this bit to a 1 will allow
the Transmit Complete Event(0) to be passed to the IPIF for further
interrupt processing.
17Transmit Complete
Event(2) EnableRead/Write Undefined
Transmit Event(2) Enable. Setting this bit to a 0 will disable
the Transmit Complete Event(2). Setting this bit to a 1 will allow
the Transmit Complete Event(2) to be passed to the IPIF for further
interrupt processing.
18 - 27 Reserved Undefined Reserved.
Table 19: HDLC RX Control and Address Bit Definitions
(Contd)
Bit(s) Name AccessReset Value
Description
ember 1, 2005 www.xilinx.com 29ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
30
- THIS IS A DISCONTINUED IP CORE -
Receive (read) Data Channel FIFO Status (RXDFS)
There is one Receive Data Channel FIFO Status for each
sub-channel. The register bit mapping is shown in , while the bit
definitions are described in Table 21.
Figure 13: HDLC Receive Data Channel FIFO Status Bit Mapping
Figure Top x-ref 13
hdlc_rec_data_chan_fifo_stat_bit_mapping.eps
0 2 31 31
Almost Empty Occupancy
Empty HalfEmpty
28 DISCRCRead/Write
Undefined
Disable CRC Generation.1 = A CRC value of all zeros will
generated and appended on to the transmitted data.0 = CRC will be
generated and appended on to the transmitted data.
29 TXCRC Read/Write UndefinedTX CRC size. 1 = CRC-32 is used for
the FCS field0 = CRC-CCITT is used for the FCS field
30 TXFA Read/Write1 Undefined
TX Frame Abort. Setting this bit to a 1 will cause the
transmitter to initiate a frame abort sequence. Abort flags will be
sent as long as this bit is set to a 1.
31 TXSEN Read/Write Undefined
HDLC Transmitter Sub-channel Enable. This bit must be set before
any other TXCR bits have any effect. 1 enables the HDLC transmitter
to read data, if present, from the transmit channel FIFO. 0
prevents the HDLC transmitter from reading data out of the transmit
channel FIFO. This does not prevent any data currently in the 32
shift register or the CRC or idle flags from being transmitted.
Notes: 1. The abort flag must occur between a start flag and an
ending flag for the receiver to detect and report the abort
condition. The transmitter will transmit all data remaining in
the packet before generating the abort flag.
Table 21: Receive Data Channel FIFO Status
Bit(s) Name Access Reset Value Description
0 Empty ReadRXDFS Empty -- Please refer to the Xilinx Channel
FIFO for the complete specification of the receive channel FIFO
status
1Almost Empty
ReadRXDFS Almost Empty -- Please refer to the Xilinx Channel
FIFO for the complete specification of the receive channel FIFO
status
Table 20: HDLC TX Control Register Bit Definitions (Contd)
Bit(s) Name Access Reset Value Description
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Receive (read) Data Channel FIFO (RXDF)
This field contains data received from the HDLC. See Figure 14
and Table 22.
Figure 14: HDLC Receive Data
Figure Top x-ref 14
hdlc_receive_data.eps
0 31
Rx Data
Table 22: Receive Memory Buffer
Bit(s) Name Access Reset Value Description
0-31 RXDF ReadReceived Data is buffered in this FIFO prior to
either a DMA or software transfer.(1,2)
Notes: 1. For example if a Virtex-II is chosen and the receive
memory depth is set for 65536 bytes (32 BRAMs will be
used) and 24 sub-channels is selected, then each sub channel
will have 2048 bytes of buffering, ((65536/32) - 4). 65536 is the
receive memory depth, 32 is the next power of two equal to or
greater than the number of sub-channels, and 4 bytes are used for
sub channel FIFO status.
2. Please refer to the Xilinx Channel FIFO for the complete
specification of the receive (read) channel FIFO data.
Transmit (write) Data Channel FIFO Status (TXDFS)
There is one Transmit Data Channel FIFO Status for each
sub-channel. See Figure 15and Table 23.
Figure 15: HDLC Transmit Data Channel FIFO Status Bit
Mapping
Figure Top x-ref 15
hdlc_trans_data_chan_fifo_stat_bit_mapping.eps
0 2 3 41 31
AlmostFull Empty Vacancy
HalfFull
Full
2Half
EmptyRead
RXDFS Half Empty -- Please refer to the Xilinx Channel FIFO for
the complete specification of the receive channel FIFO status
3-31 RXDFS ReadRXDFS Occupancy -- Please refer to the Xilinx
Channel FIFO for the complete specification of the receive channel
FIFO status
Table 21: Receive Data Channel FIFO Status
ember 1, 2005 www.xilinx.com 31ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
32
- THIS IS A DISCONTINUED IP CORE -
Table 23: Transmit Data Channel FIFO Status
Bit(s) Name Access Reset Value Description
0 Full ReadTXDFS Full -- Please refer to the Xilinx Channel FIFO
for the complete specification of the transmit (write) channel FIFO
status
1Almost
FullRead
TXDFS Almost Full -- Please refer to the Xilinx Channel FIFO for
the complete specification of the transmit (write) channel FIFO
status
2 Half Full ReadTXDFS Half Full -- Please refer to the Xilinx
Channel FIFO for the complete specification of the transmit (write)
channel FIFO status
3 Empty ReadTXDFS Empty -- Please refer to the Xilinx Channel
FIFO for the complete specification of the transmit (write) channel
FIFO status
4-31 Vacancy ReadTXDFS Vacancy -- Please refer to the Xilinx
Channel FIFO for the complete specification of the transmit (write)
channel FIFO status
Transmit (write) Channel FIFO (TXDF)
This field contains the data to be transmitted on the HDLC. See
Figure 16 and Table 24.
Figure 16: HDLC Transmit Data
Figure Top x-ref 16
hdlc_transmit_data.eps
0 31
Tx Data
Table 24: Transmit Memory Buffer
Bit(s) Name Access Reset Value Description
0-31 TXDF Write UndefinedTransmit Data is buffered in this FIFO
prior to the HDLC
transmitting this data.(1,2)
Notes: 1. For example if a Virtex-II is chosen and the receive
memory depth is set for 65536 bytes (32 BRAMs will be
used) and 5 sub-channels is selected then each sub channel will
have 8188 bytes of buffering, ((65536/8) - 4). 65536 is the
transmit memory depth, 8 is the next power of two equal to or
greater than the number of sub-channels, 4 bytes are used for each
sub-channel FIFO status
2. Please refer to the Xilinx Channel FIFO for the complete
specification of the transmit (write) channel FIFO data.
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
HDLC Block DiagramFigure 17 shows the top-level block diagram
for the single channel HDLC.
Figure 17: HDLC Module Block Diagram
Figure Top x-ref 17
ByteCount
CRCCheck
ZeroDelete
RagMatch
AddrDetect
CRCE
ABRT
PhysicalChannel
PCCR
ByteCount
CRCGen
ZeroInsert
RagGen
Rx LengthFIFO
Rx StatusFIFO
Rx FrameControl
Rx Controland Status
Tx LengthFIFO
Tx StatusFIFO
Tx FrameControl
Tx Controland Status
BRAM Contex Storagesub-channel registers
Rx Channel FIFO1 BRAM minimum
32 BRAM maximum
Rx Channel FIFO1 BRAM minimum
32 BRAM maximum
DualPortFIFO
rxd
OPB_CLK
DualPortFIFO
txd
OPB_CLK
LoopBackDualPortFIFO
txd
OPB_CLK
rxcl loop back
HDLC #1 1-32 TDM Sub Channels
RXDO
RXCLK0
TXCLK0
RXDEN0
TXDEN0
TXD0
RX_CHN_SEL0
TX_CHN_SEL0
RXD1
RXCLK1
TXCLK1
RXDEN1
TXDEN1
TXD1
RX_CHN_SEL1
TX_CHN_SEL1
RXD7
RXCLK7
TXCLK7
RXDEN7
TXDEN7
TXD7
RX_CHN_SEL7
TX_CHN_SEL7
ByteCount
CRCCheck
ZeroDelete
RagMatch
AddrDetect
OCRE
ABRT
PhysicalChannel
POOR
ByteCount
CRCGen
ZeroInsert
RagGen
Rx LengthFIFO
Rx StatusFIFO
Rx FrameControl
Rx Controland Status
Tx LengthFIFO
Tx StatusFIFO
Tx FrameControl
Tx Controland Status
BRAM Contex Storagesub-channel registers
Rx Channel FIFO1 BRAM minimum
32 BRAM maximum
Rx Channel FIFO1 BRAM minimum
32 BRAM maximum
DualPortFIFO
rxcl
OPB_CLK
DualPortFIFO
rxcl
OPB_CLK
LoopBackDualPortFIFO
rxcl
OPB_CLK
rxcl loop back
HDLC #2 1-32 TDM Sub Channels
ByteCount
CRCCheck
ZeroDelete
RagMatch
AddrDetect
OCRE
ABRT
PhysicalChannel
POOR
ByteCount
CRCGen
ZeroInsert
RagGen
Rx LengthFIFO
Rx StatusFIFO
Rx FrameControl
Rx Controland Status
Tx LengthFIFO
Tx StatusFIFO
Tx FrameControl
Tx Controland Status
BRAM Contex Storagesub-channel registers
Rx Channel FIFO1 BRAM minimum
32 BRAM maximum
Rx Channel FIFO1 BRAM minimum
32 BRAM maximum
DualPortFIFO
rxcl
OPB_CLK
DualPortFIFO
rxcl
OPB_CLK
LoopBackDualPortFIFO
rxcl
OPB_CLK
rxcl loop back
HDLC #3 1-32 TDM Sub Channels
DeviceRegisterInterface
StatusFIFO
Event 4 & 5
Tx EventFIFO
Event 0 &1
MSCR
Rx EventFIFO
Event 2 & 3
IPIFRegister Set
Containing a256 Channel
DMA Controller
IPIF
hdlc_multichan_if_block_diagram.eps
Frame Check Sequence (FCS)
This block provides a CRC generation. The block is preset to
force the registers to a 1 (and hence comply to CCITT
specifications). The CRC Calculator generates a CRC code from the
following polynomials.
CRC-CCITT shown in Figure 18 uses the following polynomial.
G(x) = x16 + x12 + x5 + 1.
ember 1, 2005 www.xilinx.com 33ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
34
- THIS IS A DISCONTINUED IP CORE -
Figure 18: CRC - CCITT Code Generation
Figure Top x-ref 18
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DataOutData In
Clock In
crc_code_generation.eps
CRC-32, shown in Figure 19 uses the following polynomial.
G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
Figure 19: CRC-32 Code Generation
Figure Top x-ref 19
0 2 31
1716 18 19 20 2928 30 3122
12 13 14 154 5 6 7 8 9 1110
Data Out
Data In
Clock In
crc32_code_generation.eps
2423 25 272621
Time Division Multiplexing (TDM)
The HDLC can support 1 to 32 TDM channels on a single physical
channel.
If a physical channel is configured to have one sub channel then
this physical channel does not implement any TDM functions. The
transmit or receive data rate must be at least 10% slower than the
OPB_CLK, a 100MHz OPB_CLK requires the Rx/Tx data rate to be less
than or equal to 90MHz. The transmit data rate is determined by
TxClk and Txden. The receive data rate is determine by RxClk and
Rxden. There is a small asynchronous dual port FIFO that will
buffer the Tx and Rx data. An overrun or under run of these FIFO is
an error condition and is reported through the Tx or Rx Event
FIFOs. This error condition indicates that the data rate is higher
than the HDLC can handle.
If a physical channel has two or more sub channels configured
than the TDM function is implemented. The transmit or receive data
rates must be less the 1/3 the OPB_CLK, a 100MHz OPB_CLK requires
the Tx/Rx data rate to be less than or equal to 33.3MHz. The TDM
function uses internal BRAM to context switch the state of each sub
channel, the current sub channel state is stored and the next sub
channel state is retrieved. Figure 21 shows the timing for three
different configurations of a physical channel, no TDM, TDM with
two sub channels and TDM with 32 sub channels.
The transmit TDM will always start at sub channel zero and
transmit 8 bits and then increment to sub channel 1 and transmit 8
bits. The sub channel will increment through the number of sub
channels configured for this physical channel and then return to
sub-channel zero. The Tx_Chnl_Sel indicates which sub channel the
data bit is being transmitted to. The Txden and/or the TxClk can be
used to control the data output from the Tx channel.
The receive TDM channel is controlled by the Rx_Chnl_Sel input.
Every time a change is detected on the Rx_Chnl_Sel a context switch
occurs and processing on the new sub channel continues until a new
sub channel is detected. It is possible to change sub channels with
every RxClk, however a context switch requires up to 14 OPB_CLKs to
perform the context switch so the Rx data rate must be less than or
equal to 1/14 the OPB_CLK.
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Figure 20: Timing Information
Figure Top x-ref 20
Tx Channel 0 Tx Channel 1 Tx Channel 0 Tx Channel 1 Tx Channel 0
Tx Channel 1 Tx Channel 00 7 0 7 0 7 0 7 0 7 0 7 0 7 0
Tx Clock
Tx Clock
Tx Data Tx Data
Tx Channel 0 Tx Channel 1 Tx Channel 2 Tx Channel 3 Tx Channel
30 Tx Channel 31 Tx Channel 00 7 0 6 0 7 0 7 0 7 0 7 0 7
Tx Clock
1 2 3 4 5 6 1 2 3 4 5 6
Txden
Txden
1 2 3 4 5 7 0 71 2 3 4 5 6
Txden
Tx Data Tx Data
32 Sub Channels configured
2 Sub Channels configured
Single Sub Channel configured
Figure 21: I/O Timing
Figure Top x-ref 21
TxClk
TxDen
TxD
Tx_Chnl_Sel
RxClk
RxDen
Rx_Chnl_Sel
RxD
Eighth bit of Chnl 0 First bit of Chnl 1 Second Bit of Chnl
1
Channel 0 Channel 1
Tsu
Th
Tsu
Th
Tsu
Th
Tsu
Th
Clk_to_Q Clk_to_Q Clk_to_Q
Tsu
Tsu
Th
Th
Clk_to_Q
Tsu
Tsu
Th
Th
Clk_to_Q
Tsu
Th
Tsu
Tsu
Th
Th
Clk_to_Q
Design Implementation
Design Tools
Xilinxs XST is the synthesis tool used for synthesizing the
HDLC.
Target Technology
The intended target technology is a Virtex-II Pro FPGA.
ember 1, 2005 www.xilinx.com 35ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
36
- THIS IS A DISCONTINUED IP CORE -
Device Utilization and Performance Benchmarks
Because the HDLC is a module that will be used with other design
pieces in the FPGA, the utilization and timing numbers reported in
this section are just estimates. As the HDLC is combined with other
pieces of the FPGA design, the utilization of FPGA resources and
timing of the HDLC design will vary from the results reported
here.
In order to analyze the HDLC timing within the FPGA, a design
was created that instantiated the HDLC with the following
parameters set.
The HDLC benchmarks are shown in Table 25 for a Virtex-II
XC2V6000-6 FPGA, using Design Manager release version 6.2.01i
application version G.29.
Table 25: OPB HDLC Interface FPGA Performance and Resource
Utilization Benchmarks (Virtex-II XC2V6000-6)
Parameter Values Device Resources fMAX
C_D
MA
_PR
ES
EN
T
C_N
UM
_CH
AN
NE
LS
C_N
UM
_SU
B_C
HA
NN
ELS
_0
C_N
UM
_SU
B_C
HA
NN
ELS
_1
C_N
UM
_SU
B_C
HA
NN
ELS
_2
C_N
UM
_SU
B_C
HA
NN
ELS
_3
C_N
UM
_SU
B_C
HA
NN
ELS
_4
C_N
UM
_SU
B_C
HA
NN
ELS
_5
C_N
UM
_SU
B_C
HA
NN
ELS
_6
C_N
UM
_SU
B_C
HA
NN
ELS
_7
C_T
X_M
EM
_DE
PT
H(4
)
C_R
X_M
EM
_DE
PT
H(4
)
C_N
UM
_SU
B_C
HA
NN
EL_
BIT
SS
_0
C_N
UM
_SU
B_C
HA
NN
EL_
BIT
SS
_1
C_N
UM
_SU
B_C
HA
NN
EL_
BIT
SS
_2
C_N
UM
_SU
B_C
HA
NN
EL_
BIT
SS
_3
C_N
UM
_SU
B_C
HA
NN
EL_
BIT
SS
_4
C_N
UM
_SU
B_C
HA
NN
EL_
BIT
SS
_5
C_N
UM
_SU
B_C
HA
NN
EL_
BIT
SS
_6
C_N
UM
_SU
B_C
HA
NN
EL_
BIT
SS
_7
Slic
es
Slic
e F
lip-F
lops
4-in
put L
UT
s
BR
AM
s
GC
LKs
MH
z
IPIF
Rem
oved
NA 1 1 0 0 0 0 0 0 0
2048
2048 1 0 0 0 0 0 0 0 743
604
1078 2 1(3)
151
NA 1 1 1 0 0 0 0 0 0 0
2048
2048 1 0 0 0 0 0 0 0 860
794
1203 2 1(3)
151
NA 2 1 1 0 0 0 0 0 0 0
2048
2048 1 0 0 0 0 0 0 0
1614
1246
2513 3 1(3)
100
NA 1 1 2 0 0 0 0 0 0 0
2048
2048 1 0 0 0 0 0 0 0
1172
864
1942 4 1(3)
144
NA 2 1 2 0 0 0 0 0 0 0
2048
2048 1 0 0 0 0 0 0 0
1939
1319
3256 5 1(3)
100
NA 1 1 2 0 0 0 0 0 0 0
4096
4096 1 0 0 0 0 0 0 0
1176
874
1955 6 1(3)
117
NA 1 1 4 0 0 0 0 0 0 0
2048
2048 2 0 0 0 0 0 0 0
1151
852
1903 4 1(3)
119
NA 1 1 8 0 0 0 0 0 0 0
2048
2048 3 0 0 0 0 0 0 0
1143
845
1893 4 1(3)
119
NA 1 1 16 0 0 0 0 0 0 0 2048
2048 4 0 0 0 0 0 0 0
1143
838
1874 4 1(3)
115
NA 1 1 24 0 0 0 0 0 0 0 2048
2048 5 0 0 0 0 0 0 0
1142
834
1879 4 1(3)
116
NA 1 1 24 0 0 0 0 0 0 0
6553
6
6553
6
5 0 0 0 0 0 0 0
1267
921
2062 74 1(3)
99
NA 1 1 32 0 0 0 0 0 0 0 2048
2048 5 0 0 0 0 0 0 0
1135
837
1862 4 1(3)
122
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
DS438 DecProduct Sp
- THIS IS A DISCONTINUED IP CORE -
Specification Exceptions
Exceptions to the HDLC specification
There are currently no known exceptions.
Reference DocumentsThe the International Telecommunication Union
ITU-T Q.921 (09/97) reference document to gain a greater
understanding of the OPB HDLC Interface design.
NA 2 1 32 0 0 0 0 0 0 0 2048
2048 5 0 0 0 0 0 0 0
1929
1302
3215 5 1(3)
100
NA 1 2 1 1 0 0 0 0 0 0
2048
2048 1 1 0 0 0 0 0 0
1541
1414
2091 4 1(3)
119
NA 1 2 1 2 0 0 0 0 0 0
4096
2048 1 1 0 0 0 0 0 0
1841
1504
2868 8 1(3)
119
NA 1 2 2 2 0 0 0 0 0 0
2048
2048 1 1 0 0 0 0 0 0
2156
1554
3638 8 1(3)
118
NA 1 2 32 32 0 0 0 0 0 0 2048
2048 5 5 0 0 0 0 0 0
2089
1496
3475 8 1(3)
108
NA 1 2 32 32 0 0 0 0 0 0
3276
8
3276
8
5 5 0 0 0 0 0 0
2279
1621
3817 76 1(3)
98
NA 1 4 1 1 1 1 0 0 0 0
2048
2048 1 1 1 1 0 0 0 0
2886
2648
3909 8 1(3)
125
NA 1 4 32 32 32 32 0 0 0 0 2048
2048 5 5 5 5 0 0 0 0
4047
2813
6703 16 1(3)
104
NA 1 8 1 1 1 1 1 1 1 1
2048
2048 1 1 1 1 1 1 1 1
5687
5116
7645 16 1(3)
104
NA 1 8 32 32 32 32 32 32 32 32 2048
2048 5 5 5 5 5 5 5 5
7887
5442
1318
4
32 1(3)
103
Notes: 1. These benchmark designs contain only the HDLC without
any additional logic. Benchmark numbers approach the performance
ceiling rather than
representing performance under typical user conditions. ISE
version 6.1 was used for synthesis, map and PAR. The design was
targeted into a Virtex-II Pro XC2vP20-fg676-6
2. The C_OPB_CLK_PERIOD_PS is set to 10000 for the above
examples.3. It is preferable to use a global clock buffer for the
Receive Clock and Transmit Clock. If global clock buffers are not
used, care must be taken to ensure
the setup and hold times of the inputs are met.4. To reduce the
complexity of this table all physical channels had the same value
for C_TX_MEM_DEPTH, and for C_RX_MEM_DEPTH. This is not a
requirement for the design, but an attempt to make this table
more readable.
Table 25: OPB HDLC Interface FPGA Performance and Resource
Utilization Benchmarks (Virtex-II XC2V6000-6)
ember 1, 2005 www.xilinx.com 37ecification
http://www.xilinx.com
OPB Multi Channel HDLC Interface (v2.01a)
38
- THIS IS A DISCONTINUED IP CORE -
Revision History
Date Version Revision
05/01/03 2.0 Initial Xilinx release.
05/21/03 2.1 Update to current template; update for EDK minor
SP2
07/15/03 2.2 Update for EDK Granite
3/29/04 2.3 Updates for DMA and Write Channel FIFO
5/1/04 2.4 Updated to new hardware version V2.01a
8/19/04 2.5 Updated for Gmm; updated trademarks and supported
device family listing.
9/22/04 2.5.1In Table 16, added Loop Back Test is not supported
with DMA to Description column for LOOP signal.
3/18/05 2.6Converted to new DS template; updated figures to
Xilinx graphic standards; revised text for HDLC Design Parameters;
added Figure 20; made other minor content edits; added Spartan-3E
to supported device family listing.
12/1/05 2.7 Added Spartan-3E to supported device listing.
www.xilinx.com DS438 December 1, 2005Product Specification
http://www.xilinx.com
OPB Multi Channel HDLC Interface
(v2.01a)IntroductionFeaturesEvaluation VersionHDLC ProtocolHDLC
Design ParametersAllowable Parameter CombinationsHDLC I/O
SignalsHDLC Port DependenciesHDLC Register DescriptionsIPIF
Registers used by the HDLCHDLC RegistersExample Memory MapHDLC
Device Control Register (MSCR), C_BASE_ADDR + 0x1100Status FIFO
(SF) C_BASE_ADDR + 0x1000HDLC EventsHDLC Tx Event FIFO (TXEF)
C_BASE_ADDR + 0x1104HDLC Rx Event FIFO (RXEF) C_BASE_ADDR +
0x1108HDLC Physical Control Register (PCCR) C_BASE_ADDR + 0x1110,
0x1120, 0x1130, ...Number of Aborted Frames (ABRT) C_BASE_ADDR +
0x1114, 0x1124, 0x1134, ...Number of CRC Errors (CRCE) C_BASE_ADDR
+ 0x1118, 0x1128, 0x1138, ...HDLC RX Sub-channel Control and
Address (RXCA)HDLC TX Sub-channel Control Register (TXCR)Receive
(read) Data Channel FIFO Status (RXDFS)Receive (read) Data Channel
FIFO (RXDF)Transmit (write) Data Channel FIFO Status
(TXDFS)Transmit (write) Channel FIFO (TXDF)HDLC Block DiagramFrame
Check Sequence (FCS)Time Division Multiplexing (TDM)Design
ImplementationDesign ToolsTarget TechnologyDevice Utilization and
Performance BenchmarksSpecification ExceptionsExceptions to the
HDLC specificationReference DocumentsRevision History