## 4 Derivation of the Hybrid Compact Systolic Multiplier
### Scheduling Function  
Let us denote any node in the DG by the point \(\Gamma(i,j)=[i\,j]\). Furthermore, we apply the following scheduling function to the scheduling vector \(\mathbf{Y}=[v_{0}\,v_{1}]\) in order to determine the time scheduling for each node.  
\[\Delta(\mathbf{\Gamma})=\mathbf{Y}\mathbf{\Gamma}-\delta=iv_{0}+jv_{1}-\delta \tag{7}\]  
To ensure that no nodes in the DG are assigned negative time values, a scalar parameter \(\delta\) has been introduced in the previous formula. In the specific scenario under consideration, selecting \(\delta\equiv 0\) results in the DG nodes depicted in Figure 1 receiving only positive time values. This choice of \(\delta\) effectively eliminates any negative time allocations during the execution of the algorithm.  
The scheduling vector operates within a predetermined range and adheres to specific constraints that govern its functionality. Specifically, nodes positioned at \(\mathbf{\Gamma}=[i,j]\) are mandated to run only following the activation of nodes at \(\mathbf{\Gamma}=[i-1,j]\). This requirement is crucial, as it establishes a clear sequential order of execution. Consequently, it ensures that the essential dependency relationships between the nodes are preserved throughout the process. Such an organized approach is imperative for maintaining the integrity of the scheduling framework.  
\[\Delta(\mathbf{\Gamma}=[i,j])>\Delta(\mathbf{\Gamma}=[i-1,j]) \tag{8}\]  
Taking into account the coordinate values of \(\mathbf{Y}\), the previously mentioned formula can be represented as follows:  
\[iv_{0}+jv_{1} > (i-1)v_{0}+jv_{1}\] \[v_{0} > 0 \tag{9}\]  
By examining Equation (6), we can expand our timing constraints by noting that the operations linked to nodes \(\mathbf{\Gamma}=[i,j+1]\) must be executed only after those associated with nodes \(\mathbf{\Gamma}=[i-1,j]\) have been completed. This means that the execution sequence is critical, as it ensures that the necessary dependencies are respected and that the overall scheduling framework operates efficiently.  
\[\Delta(\mathbf{\Gamma}=[i,j+1])>\Delta(\mathbf{\Gamma}=[i-1,j]) \tag{10}\]  
Based on the coordinate values of \(\mathbf{Y}\), the previously mentioned formula can be articulated as follows:  
\[iv_{0}+jv_{1}+v_{1} > iv_{0}-v_{0}+jv_{1}\] \[v_{1} > -v_{0} \tag{11}\]  
By utilizing the inequality pairs, Equations (9) and (11), we can identify the most effective scheduling vectors. An illustrative example of a fitting scheduling vector is the next vector \(\mathbf{Y}\), which aids in deriving the planned hybrid systolic design.  
\[\mathbf{Y}=\ \ \ [\ \ 1\ \ \ 0\ ] \tag{12}\]  
By inserting the derived scheduling vector \(\mathbf{Y}\) into Equation (7), we can formulate the corresponding scheduling function as:  
\[\Delta(\mathbf{\Gamma})=i \tag{13}\]Figure 2 illustrates the scheduling times in the dependency graph (DG) after applying the derived function to each node. It is evident that the nodes within each row can be computed simultaneously, while the partial results from one row are transferred to the nodes of the subsequent row with a delay of one time instance. Given that the DG remains consistent for the three matrix-vector products specified in Equation (6), it will be utilized to compute \(H_{1}\), \(H_{2}\), and \(H_{3}\) sequentially. Consequently, the aggregated output \(H\) can be available after \(r+2\) time instances. This latency can be achieved by employing a conventional two-dimensional systolic array to compute the aggregated product. However, to develop a compact one-dimensional systolic array suitable for integration into resource-constrained IoT nodes, it is essential to ensure that the DG computes each matrix-vector product separately over \(r\) time instances. Consequently, this approach will result in the aggregated product \(H\) being available at the output after \(3r\) time instances, thereby optimizing the design for resource efficiency while maintaining functionality as will be described later.