Research Article
Architecture and Application-Aware Management of Complexity of Mapping Multiplication to FPGA DSP Blocks in High Level Synthesis
Algorithm 1
Autoidentify algorithm for identification of multiplication and allied operations.
| Input: A wordlength optimized dataflow graph (DFG) | | Output: Consolidated list of multiplication operations in three categories | | (1) Perform Breadth First Search (BFS) on DFG | | (2) At each level of DFG | | (3) If a constant value node is found | | (4) Perform a Depth First Search (DFS) with constant value node as root | | node to find its successor node | | (5) If the second input to successor node is labeled a variable, store the | | variable identity and the constant in a hash table: H(MUL) | | (6) EndIf | | (7) EndIf | | (8) End BFS | | (9) Identity (ID) = 0 | | (10) For each multiplication node | | (11) Check if successor node, SN is addition or subtraction else Step 9 | | (12) Check if successor node SNN of SN is addition or subtraction | | (13) If (11) is TRUE | | (14) Check if second operand source of SNN is a MUL node | | (15) If (13) is TRUE | | (16) Collect all nodes in 9, 10, 11, and 13 as a partial graph | | (17) SN = SNN | | (18) Repeat 11 to 16 until (11) or (13) returns FALSE | | (19) Chain Detected = Yes | | (20) Length of chain = Number of ADD/SUB nodes | | (21) Chain ID = ID + 1 | | (22) EndFor | | (23) Remove from H(MUL) all MUL nodes collected in Step 15. |
|