# Hardware Update through Digital TV Signals
## 5 The Proposed Hardware Reconfiguration Scheme Based on the DTV Signals
### Hardware Data Multiplexing in Transport Streams  
From the point of view of DTV signals, FPGA bitstreams are seen as regular data. Thus, such content needs to be signaled (i.e., with a PID to identify a stream and a new data table) to notify receivers about its existence in a broadcast signal, aside from following a DTV system's rules. First, it is necessary to choose a suitable method for transporting reconfiguration bitstreams by considering their main characteristics. This step was already conducted above and resulted in data streaming through private sections (see Section 5.1), whose syntax is shown in Table 2[42] (reproduced here for convenience). It is worth noticing that its mnemonics are defined in the standard MPEG-2 systems. Thus, according to data streaming's rules, a hardware bitstream must be divided into private chunks 4092 bytes in length (including the header), as illustrated in Figure 6. In Table 2, identification of the private section content identification is given by table_id, an 8-bit field of private_section(), while section_number presents the sequential number, which is used to keep the correct order for data remounting. It is worth noticing that sections can arrive out of order. Therefore, resident receiver systems must implement a mechanism to maintain the correct section order. The field last_section_number indicates the total number of sections used for carrying synthesized hardware content. At the same time, private_data_byte informs about the number of bytes transmitted according to a predefined format, which is used to bear an FPGA bitstream. For this work, section_syntax_indicator was set to \"1\" to enable CRC_32 checksum validation for the private section syntax, allowing the receivers to detect errors through a checksum algorithm (see Section 3.1). Figure 5: Transmission strategy with private sections. To signal the FPGA bitstream content, HARD follows a syntax similar to the one used by AIT. In summary, it must provide an FPGA bitstream description and an access point so that the receivers can download and remount the FPGA core data. This new table, named the update information table (UIT), follows the AIT's syntax and intends to provide detailed information about the characteristics of transmitted FPGA cores. This is crucial information used by receivers to decide if transmitted content can be used or not. Information regarding the FPGA cores, borne by the new table, is then used by the receiving devices to filter hardware bitstreams. Other information related to the hardware cores must be included and broadcast. Among them is a description of a hardware upgrade module (e.g., decoder, multiplexer, and cipher), the FPGA manufacturer name, family, device part number (which was used during synthesis), size of the synthesized core in bytes, PID, and table ID (TID), which is used for section filtering. The mentioned data need to be added to a TS to provide all the necessary information related to the new content. Table 3 shows the complete UIT structure, whose mnemonics are also defined in the standard MPEG-2 systems. \begin{table}
\begin{tabular}{l c c} \hline \hline \multicolumn{1}{c}{**Syntax**} & \multicolumn{1}{c}{**Bit Rate**} & \multirow{2}{*}{**Mnemonic**} & \multirow{2}{*}{**Value**} \\  & **(n° of Bits)** & & \\ \hline private section() \{ & & \\ table\_id & 8 & uimbsbf \\ section\_syntax\_indicator & 1 & bslbf \\ private\_indicator & 1 & bslbf \\ reserved & 2 & bslbf \\ private\_section\_length & 12 & uimbsbf \\ if(section\_syntax\_indicator = '0’)\{ & & \\   for (i = 0; i < N; i++) \{ & \\   private\_data\_byte & 8 & bslbf \\ } \\ \} else \{ & & \\ table\_id\_extension & 16 & uimbsbf \\ reserved & 2 & bslbf \\ version\_number & 5 & uimbsbf \\ current\_next\_indicator & 1 & bslbf \\ section\_number & 8 & uimbsbf \\ last\_section\_number & 8 & uimbsbf \\ for (i = 0; i < private\_section\_length-9; i++)\{ & & \\   private\_data\_byte & 8 & bslbf \\  & & \\   CRC\_32 & 32 & rpchof \\ } \\ \} \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Syntax of private sections.