Abstract :
A macro block is a functional unit that can be re-used in circuit designs. The problem of general macro block mapping is to identify such embedded parts, whose I/O signals are unknown, from the netlist that may have been optimized in various ways. The mapping results can then be used to ease the functional verification process or for replacement by more advanced intellectual property (IP) macros. In the past literatures, the mapping problem is mostly limited to the identification of a single adder or multiplier with I/O signals given, which is already NP-hard. However, in today´s typical arithmetic circuits (like digital signal processing (DSP) applications), it is not unusual to have combinations of arithmetic operators implemented as macro blocks for performance gain. To solve this new practical mapping problem, we propose a flow to identify and build a forest of one-bit-adder trees using structural information and formal verification techniques, followed by algorithms that locate macro boundaries and I/O signal orders. Experimental results show that our algorithm is highly practical and scalable. It is capable of identifying any combinations of arbitrary adders and multipliers such as (a + b) × c and a × b + c × d +e × f, where each operand is a multi-bit constant or variable. Most of the benchmarks in ICCAD 2013 CAD Contest [1] can be well handled by our algorithm.
Keywords :
adders; formal verification; logic circuits; logic design; multiplying circuits; DSP; I/O signals; ICCAD 2013 CAD contest; NP-hard; arbitrary adders; arithmetic circuits; circuit designs; digital signal processing; embedded parts; formal verification techniques; intellectual property macros; macro block mapping; multipliers; one-bit-adder trees; single adder; structural information; Adders; Boolean functions; Data structures; Indexes; Logic gates; Pins; Vegetation; Adder; Arithmetic logic; Multiplier; Technology mapping;