2/24/2008 9T6WP
BCM7405
Preliminary Hardware Data Module
Functional Description
06/29/07
Bro a d c o m C o rp o r a ti o n
Page 1-18
Data Transport Processor
Document
7405-1HDM00-R
Timestamp format is programmable—32 bit straight binary or modulo 300 for the nine LSB, similar to the MPEG PCR.
Timestamp format can be selected independent of the transport packet format. Playback pacing supports both timestamp
formats. However, PCR correction can only be done when the selected timestamp format is the same as the PCR format.
In other words, hardware cannot convert the local timestamps to the format of the PCR within the transport packets.
As the packet is being output from the data transport, the only place that the timestamp value can be output with the packet
is at the record. Here, record can select one of the two timestamp modes. In the normal mode, the 32-bit recorded timestamp
consists of a 4-bit parity and 28-bit timestamp value. In the special mode, the 32-bit recorded timestamp consists of a 2-bit
user-programmable value and a 30-bit timestamp. A preset starting timestamp value can also be synchronized with the first
recorded packet. In addition to recording timestamps with the data, record channel can also attach the timestamp with each
SCD entry generated.
During playback, the timestamps recorded with the data can be used to pace the playback data. These timestamps can also
be used to do PCR correction if playback data is to be routed out remux. Playback can also extract the two user-
programmable bits in the timestamp (for special timestamp mode), and present them in registers for the host CPU to read.
Playback pacing must have same programming of the format and mode of the timestamp as that during record.
Record function of time interval packet counting, and PCR out of range detection, will be performed by the host CPU
software. The purpose of the time interval packet counting is to later navigate within the recorded stream, performing jumps
in playback with respect to time. This function is best implemented using the record generated SCD, which provides very
accurate navigation data such as picture starts, etc. The SCD also stores PCRs found in the stream, together with their
corresponding local timestamp. This allows the software to more accurately determine the PCR errors, and to determine
unmarked PCR discontinuities. More robust algorithms can be performed by the host CPU to support this function.
PID/Packet Substitution and Generation Module
To provide facilities to adjust the SI PIDs after an MPEG or DIRECTV stream is filtered by the PID filter to remove PIDs, six
PID substitution and generation (PSUB) modules are included. The output from each of these PSUB modules are available
simultaneously to all output modules—record, A/V channels, remux, message filters. Each PID substitution and generation
module can receive input from one input band. All six modules can operate on the same or six different input bands.
Each module provides one DMA channel for packet generation. The inserted data is in linked list buffers in external DRAM,
exactly as record and playback. This packet generation process is fully automatic. The host CPU needs only to generate the
linked list and the packet buffers, program the linked list start pointer, and arm the insertion control. The module automatically
reads the linked list, then reads the external DRAM buffer content, and performs the insertion. The insertion buffer can be
any size and located anywhere in memory (32-bit address). Packets to be substituted are removed by the PID parser.
Each PSUB module is designated as either high priority or low priority, but not both. When more than one PSUB modules
are enabled and operate on the same input band, the high priority module will output all its packets before the low priority
module. If the low priority module is also programmed, and in the middle of output, the high priority module will immediately
start to output after the current packet, delaying the low priority module until all its packets are output. Then the low priority
module will resume its output. Among PSUB modules with same input band and same designated priority (all high or all low),
module 0 will have highest priority, then module 1, 2, 3, 4, and 5. Output from the PSUB modules is on a space available
basis (see below). Optionally the data transport can jam the input (asserting FORCE_SUB), which means packets are
immediately dropped to allow insertion. All six PSUB modules have an individual FORCE_SUB control. The overall priority
of insertion among PSUB modules that operate on same input band is as follows, from highest to lowest: