260 likes | 384 Views
Abdullah Aldahami (11074595) Jan 29, 2010.
E N D
Abdullah Aldahami (11074595) Jan 29, 2010 Literature Review (1)FPGA Area Reduction byMulti-Output Function BasedSequential ResynthesisBy: Yu Hu, Victor Shi, RupakMajumdar, and Lei He”University of California”Appeared in: Design Automation Conference, 2008Publication Date: June 2008
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis1. Introduction • This paper propose a new resynthesis algorithm for FPGA area reduction. • The existing resynthesis techniques consider only single-output Boolean functions and the combinational portion of a circuit. • The new technique consider multi-output functions and retiming, and develop effective algorithms that incorporate recent improvements to SAT-based Boolean matching.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis1. Introduction • Resynthesis: is a technique that rewrites circuit structures while maintaining the functionalities of transition and output functions to reduce area. • Programmable Logic Block (PLB) consists of a network of interconnected non-programmable and programmable logic devices.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis2. Resynthesis With MIMO Blocks 2.1 SAT-Based Boolean Matching (BM) for MIMO Functions • First, describing the MIMO resynthesis algorithm for combinational blocks. • Using SAT-based Boolean matching to determine whether a Boolean function f can be implemented using a specific logic block. • Extending algorithms to allow multi-output logic functions and multi-output programmable logic blocks (PLBs).
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis2. Resynthesis With MIMO Blocks 2.2 Combinational Resynthesis Algorithm • In MIMO resynthesis, there is a risk that a substitution will introduce a combinational cycle in the circuit. • This problem does not occur if resynthesis is limited to MISO logic blocks. • To avoid this scenario, substitutions for MIMO logic blocks are tested prior to Boolean matching.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis2. Resynthesis With MIMO Blocks Figure 1: A MIMO extracted from IWLS’05 benchmark circuit (a) Before resynthesis (b) After resynthesis
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis2. Resynthesis With MIMO Blocks (a) Before resynthesis • Considering the MIMO, logic block consisting of nodes 1, 2 and 4 (shaded portion) in Figure 1(a). • MIMO resynthesis can introduce new reverse paths to the circuit; there is a path 3 ~ 5 outside the logic block before resynthesis.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis2. Resynthesis With MIMO Blocks (b) After resynthesis • Depending on the logic implemented, Boolean matching may determine that this logic block can be implemented by a two node logic block (6 and 7, in Figure 1(b)) saving one LUT. • After resynthesis, a new path 5 ~ 3 is created inside the logic block. Together, these paths form a combinational cycle.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis2. Resynthesis With MIMO Blocks (b) After resynthesis • For each input/output node pair ini and outj , connectivity tests are performed inside and outside the logic block. If there is a path outj ; ini outside the logic block and a path ini ; outj inside the new logic block, this resynthesis step is discarded and the Boolean matching is not performed.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Combinational Resynthesis Algorithm Figure 2: (Case 1) Classical Retiming without Duplication (a) Original logic block (b) Backward retimed logic block (c) Combinationally resynthesized logic block (d) Forward retimed resynthesized logic block.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Figure 3: (Case 2) Peripheral Retiming without Duplication. (a) Original logic block (b) Peripheral retimed logic block (c) Combinationally resynthesized logic block (with no feasible forward retiming) (d) Combinationally resynthesized logic block (with feasible forward retiming) (e) Forward retimed resynthesized logic block.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Figure 3: (Case 2) Peripheral Retiming without Duplication. (a) Original logic block • Classical retiming, which requires a non-negative number of registers during retiming, cannot be performed. • The registers between two LUTs cannot be moved either forward or backward by classical retiming.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Figure 3: (Case 2) Peripheral Retiming without Duplication. (b) Peripheral retimed logic block • In this case, a peripheral retiming can be used to maximize the combinational portion of the logic block. • The peripheral retiming may result in a negative number of registers at the peripheral edges of a logic block (the one driving output out2)
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Figure 3: (Case 2) Peripheral Retiming without Duplication. (c) Combinationally resynthesized logic block (with no feasible forward retiming) • It is possible that combinational resynthesis will create an infeasible solution. • There is no way to recover the negative edge using a local forward retiming.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Figure 3: (Case 2) Peripheral Retiming without Duplication. (d) Combinationally resynthesized logic block (with feasible forward retiming) (e) Forward retimed resynthesized logic block. • This resynthesis step is discarded to guarantee the existence of a valid forward retiming.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Figure 4: (Case 3) Peripheral Retiming with Duplication. (a) Original logic block (b) Logic block after duplication (c) Peripheral retimed logic block (d) Combinationally resynthesized logic block (e) Forward retimed resynthesized logic block (f) The final result after merging LUTs.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Figure 4: (Case 3) Peripheral Retiming with Duplication. (a) Original logic block • The inputs are duplicated for each input with different numbers of registers in multiple paths to the output.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Figure 4: (Case 3) Peripheral Retiming with Duplication. (b) Logic block after duplication • Here, there are two paths from x2 to output, where the numbers of registers are 1 and 0, respectively, so: x2 is duplicated to x12 and x02. • All LUTs driven by the duplicated inputs are also duplicated.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Figure 4: (Case 3) Peripheral Retiming with Duplication. (c) Peripheral retimed logic block • Duplication enables peripheral retiming
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Figure 4: (Case 3) Peripheral Retiming with Duplication. (d) Combinationally resynthesized logic block • The combinational portion can be resynthesized. • One LUT is saved.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis3. Sequential Resynthesis Figure 4: (Case 3) Peripheral Retiming with Duplication. (e) Forward retimed resynthesized logic block (f) The final result after merging LUTs
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis4. Experimental Results Figure 5: Programmable Logic Block (PLB) templates used in resynthesis. • The algorithms have been implemented using the Open Access Gear (OAGear) package. • The SAT-based Boolean matcher is implemented in C++ and uses theminiSAT2.0 package. • The results using the biggest 20 Microelectronics Center of North Carolina (MCNC) benchmarks, including 10 combinational and 10 sequential applications.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis4. Experimental Results • Compares the MISO and MIMO resynthesis for the 10 combinational applications. • The MIMO resynthesis reduces area by 0.09% (up to 0.4%) with 15× runtime overhead compared to the MISO resynthesis on average. • MIMO reduces area by 0.4% compared to MISO for “misex3”. • Compared to ABC, the resynthesis considering multi-outputs reduces area by up to 1.41% for “spla”.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis4. Experimental Results • Compared to the ABC mapper, sequential resynthesis reduces area by 5.07% (up to 15.91% for “s298”) on average. • Compared to the combinational version, the sequential resynthesis reduces area by 0.7% (up to 10% for “s298”) with 2× runtime overhead.
FPGA Area Reduction by Multi-Output Function Based Sequential Resynthesis5. Conclusions • New resynthesis algorithm was proposed that considers multi-output logic blocks and retiming. • The resynthesis considering multi-output Boolean functions reduces area by up to 0.4% compared to the one considering single-output Boolean functions • The sequential resynthesis reduces area by 10% compared to combinational resynthesis when both consider multi-output functions. • The proposed resynthesis reduces area by up to 16% compared to the best existing academic technology mapper, Berkeley ABC.