# A High Throughput Hardware Architecture for Parallel Recursive Systematic Convolutional Encoders
## 2 Materials and Methods
### Analysis of the Tree Network Topology as a Function of the Parallelism Degree  
In Section 2.3 we described the VHDL IP core implementing a \(k\) parallel RSC encoder. In order to characterize the IP core, let us consider the scenario where the RSC encoder is stimulated by a source producing \(k\) input data synchronously with the rising or falling edge of clock signal with frequency \(f_{clk}\). At the same time, let us suppose that the \(k\cdot N_{o}\) output code is sampled by a sink synchronously with the same reference clock signal. Such scenario is shown in Figure 5.  
The method to increase the parallelism degree illustrated in Section 2.2 has the aim to increase the capacity of a RSC encoder to process the data produced by the source fast. In particular, one merit parameter is the system throughput. In view of that, it is possible to consider as merit parameter the  
Figure 4: Tree fashion network implementing the logics described in the row \(D^{\prime}_{i}\). Figure 5: RSC encoder in a scenario with synchronous source and sink registers. input data rate \(R_{IN}\). On the contrary, the output data rate is meaningless to characterize the processing speed of the system since it is dependent on the code rate \(R\). In the scenario shown in Figure 5, \(R_{IN}\) can be calculated as described by Equation (20):  
\[R_{IN}=k\cdot f_{clk}. \tag{20}\]  
Equation (20) shows that \(R_{IN}\propto k\). Such relation might suggest that an increment of \(k\) leads to a proportional growth of \(R_{IN}\). However, if we suppose to process data with the maximum clock frequency \(f_{clk_{MAX}}\) which guarantees the correct sampling of the output code to maximize \(R_{IN}\), it shall be considered that \(f_{clk_{MAX}}\) depends on the critical path propagation delay \(T_{p}\) according to the set-up time rule [22], which is shown in Equation (21):  
\[f_{clk_{MAX}}=\frac{1}{T_{sup}+T_{p}+T_{cq}}, \tag{21}\]  
where \(T_{sup}\) is the set-up time of the sink register and \(T_{cq}\) is the time necessary to the source register to stabilize the output data after the clock edge. Although the network described by matrices \(A^{\prime}\) and \(C^{\prime}\) have constant number of inputs with the parallelism degree \(k\), the dimension of the input vector for the networks described by matrices \(B^{\prime}\) and \(D^{\prime}\) is depending on \(k\). It implies that the complexity of such networks grows with \(k\); for such reason, it reasonable to assume that there is a dependency of \(T_{p}\) on the parallelism degree. It leads to conclude that \(f_{clk_{MAX}}\) depends on \(k\), making the relation \(R_{IN}[k]\) not linear. In order to derive such relation, it is possible to consider the tree network architecture described in Section 2.3. In particular, if we define \(T_{p0}\) as the propagation delay of a single XOR gate, for such topology the total propagation delay can be estimated by using the expression shown in Equation (22). \[T_{p}[k]\approx T_{p0}\cdot\lceil log2(\Omega_{M^{\prime}i}[k])\rceil, \tag{22}\]  
where \(\Omega_{M^{\prime}i}[k]\) indicates the number of unitary elements present in the row \(i\) of a generic matrix \(M^{\prime}\). It is necessary to notice that Equation (22) does not take into consideration the delay due to the interconnections. At the same manner, it is possible to study the dependency on the number of sources as function of the parallelism degree \(k\). Indeed, if we suppose that the first layer of the tree has \(\Omega_{M^{\prime}i}[k]\) unitary elements, \(\lfloor\frac{\Omega_{M^{\prime}i}[k]}{2}\rfloor\) XOR gates are necessary for the first layer. In the second layer, \(\left(\lfloor\frac{\Omega_{M^{\prime}i}[k]}{4}\rfloor+(\lfloor\frac{\Omega_{M ^{\prime}i}[k]}{2}\rfloor\mod 2)\right)\) XOR gates are necessary. For such reason, it is possible to consider the number of XOR gates composing a tree network roughly proportional to \(\Omega_{M^{\prime}i}[k]\cdot\lceil log2(\Omega_{M^{\prime}i}[k])\rceil\).