Output Grouping-Based Decomposition of Logic Functions Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University
Outline Motivation Motivation Single-Level Partitioning Single-Level Partitioning Proposed Method Proposed Method Basic FC-Min Principles Basic FC-Min Principles Output Grouping Output Grouping Experimental Results Experimental Results Conclusions Conclusions
Motivation Typical logic synthesis process: Perform Boolean minimization Perform Boolean minimization Multi-level synthesis, decomposition Multi-level synthesis, decomposition Technology mapping Technology mapping These phases are often independent on each other - ineffective
Motivation Boolean minimization should be driven towards the target technology
Single-Level Partitioning Two-level AND-OR network Limited number of inputs/outputs in real devices Solution: divide the circuit into stand-alone blocks, while reducing the number of their inputs and complexity of the blocks
Single-Level Partitioning The way how to minimize the number of inputs of the blocks proposed before The way how to minimize the number of inputs of the blocks proposed before Fišer, P. - Kubátová, H.: Single-Level Partitioning Support in BOOM-II, Proc. 2nd Descrete-Event System Design 2004 (DESDes'04), Dychów, Poland, , pp Reducing the input set means an increase of the size of the circuits (some of the group terms cannot be shared) Reducing the input set means an increase of the size of the circuits (some of the group terms cannot be shared) The issue: how to group the outputs to minimize the complexity of the blocks
Proposed Method Method to determine the “output grouping” Method to determine the “output grouping” Based on FC-Min, even when no minimization is involved Based on FC-Min, even when no minimization is involved Significant reduction in area overhead, for both the two-level and multi-level implementations Significant reduction in area overhead, for both the two-level and multi-level implementations Input set is reduced as well Input set is reduced as well
FC-Min Two-level Boolean minimizer Two-level Boolean minimizer Primarily designed for group minimization Primarily designed for group minimization Produces only the necessary group implicants – no excessive implicants are generated Produces only the necessary group implicants – no excessive implicants are generated First, the on-set cover is found (Find Cover) First, the on-set cover is found (Find Cover) Then implicants are computed Then implicants are computed
Find Cover Generates rectangle cover of the on-set Generates rectangle cover of the on-set Determines the number of product terms in the solution, not their structure Determines the number of product terms in the solution, not their structure Independent on literals Independent on literals Directly determines group implicants
Find Cover
Output Grouping Main idea: outputs that share many group implicants should be grouped together Main idea: outputs that share many group implicants should be grouped together The effects are obvious for two-level minimization, however the same can be observed for multi-level implementation The effects are obvious for two-level minimization, however the same can be observed for multi-level implementation
Output Grouping Grouping matrix (G-Matrix) Combines influences of various group implicants Combines influences of various group implicants Symmetric matrix of dimensions [m, m] Symmetric matrix of dimensions [m, m] The value of G[i, j] defines the strength binding the two output variables i and j together The value of G[i, j] defines the strength binding the two output variables i and j together
Output Grouping G-Matrix Example Initial State
Output Grouping G-Matrix Example T 1 added
Output Grouping G-Matrix Example T 2 added
Output Grouping G-Matrix Example T 3 added
Output Grouping G-Matrix Example T 4 added
Output Grouping G-Matrix Example T 6 added
Output Grouping G-Matrix Example T 1 added Another cover, 2 nd G-Matrix
Output Grouping G-Matrix Example T 2 added Another cover, 2 nd G-Matrix
Output Grouping G-Matrix Example T 3 added Another cover, 2 nd G-Matrix
Output Grouping G-Matrix Example T 4 added Another cover, 2 nd G-Matrix
Output Grouping G-Matrix Example T 5 added Another cover, 2 nd G-Matrix
Output Grouping G-Matrix Example T 6 added Another cover, 2 nd G-Matrix
Output Grouping G-Matrix Example Normalization – transform into :2
Output Grouping G-Matrix Example Summing the two matrices: =
Output Grouping G-Matrix Example Final output grouping Task: Divide the 5-output circuit into max. 3-output blocks
Output Grouping G-Matrix Example Final output grouping Find maximum 6 possibilities – one at random G[1, 2] B 1 = {1, 2}
Output Grouping G-Matrix Example Final output grouping Find maximum in row 1 and column 2 B 1 = {1, 2, 4} Select 4
Output Grouping G-Matrix Example Final output grouping B 1 = {1, 2, 4} B 2 = {0, 3}
Experimental Results Hard MCNC benchmarks 3 experiments for each: 1. Minimize by Boom and decompose into 2-input gate network using SIS 2. Randomly divide the circuit into several blocks, then Divide the circuit using the proposed method, the 1.
Experimental Results
Conclusions A new output-grouping method A new output-grouping method Based on FC-Min Based on FC-Min Significant area reduction observed, with respect to the random technique Significant area reduction observed, with respect to the random technique Input support reduced too Input support reduced too Very fast Very fast