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.