
RELEASED
DATASHEET
PM7383 FREEDM-32A256
ISSUE 1
PMC-2010336
FRAME ENGINE AND DATA LINK MANAGER 32A256
PROPRIETARY AND CONFIDENTIAL
50
on packets that do not have octet alignment errors, in order to allow the
RHDL256 to perform CRC calculations on a byte-basis.
The partial packet buffer is a 32 Kbyte RAM that is divided into 16-byte blocks.
Each block has an associated pointer which points to another block. A logical
FIFO is created for each provisioned channel by programming the block pointers
to form a circular linked list. A channel FIFO can be assigned a minimum of 3
blocks (48 bytes) and a maximum of 2048 blocks (32 Kbytes). The depth of the
channel FIFOs are monitored in a round-robin fashion. Requests are made to
the Receive Any-PHY Interface block (RAPI256) to transfer, on the Rx APPI, data
in channel FIFOs with depths exceeding their associated threshold.
8.4.1 HDLC Processor
The HDLC processor is a time-slice state machine which can process up to 256
independent channels. The state vector and provisioning information for each
channel is stored in a RAM. Whenever new channel data arrives, the
appropriate state vector is read from the RAM, processed and written back to the
RAM. The HDLC state-machine can be configured to perform flag delineation, bit
de-stuffing, CRC verification and length monitoring. The resulting HDLC data
and status information is passed to the partial packet buffer processor to be
stored in the appropriate channel FIFO buffer.
The configuration of the HDLC processor is accessed using indirect channel read
and write operations. When an indirect operation is performed, the information is
accessed from RAM during a null clock cycle generated by the upstream Receive
Channel Assigner block (RCAS256). Writing new provisioning data to a channel
resets the channel's entire state vector.
8.4.2 Partial Packet Buffer Processor
The partial packet buffer processor controls the 32 Kbyte partial packet RAM
which is divided into 16 byte blocks. A block pointer RAM is used to chain the
partial packet blocks into circular channel FIFO buffers. Thus, non-contiguous
sections of the RAM can be allocated in the partial packet buffer RAM to create a
channel FIFO. System software is responsible for the assignment of blocks to
individual channel FIFOs. Figure 4 shows an example of three blocks (blocks 1,
3, and 200) linked together to form a 48 byte channel FIFO.