Documente Academic
Documente Profesional
Documente Cultură
Design Partitioning
• Design partitioning is another important factor for efficient logic
synthesis.
• The way the designer partitions the design can greatly affect the
output of the logic synthesis tool.
• Various partitioning techniques can be used.
Horizontal partitioning
• Use bit slices to give the logic synthesis tool a smaller block to
optimize. This is called horizontal partitioning.
Horizontal partitioning
• It reduces complexity of the problem and produces more optimal
results for each block.
• For example, instead of directly designing a 16-bit ALU, design a 4-bit
ALU and build the 16-bit ALU with four 4-bit ALUs.
Horizontal Partitioning of 16-bit ALU
Vertical Partitioning
• Vertical partitioning implies that the functionality of a block is divided
into smaller submodules.
• This is different from horizontal partitioning. In horizontal
partitioning, all blocks do the same function.
• In vertical partitioning, each block does a different function.
• Assume that the 4-bit ALU described earlier is a four-function ALU
with functions add, subtract, shift right, and shift left.
• Each block is distinct in function.
Vertical Partitioning of 4-bit ALU
Vertical Partitioning
• For logic synthesis, it is important to create a hierarchy by partitioning
a large block into separate functional subblocks.
• A design is best synthesized if levels of hierarchy are created and
smaller blocks are synthesized individually.
• Creating modules that contain a lot of functionality can cause logic
synthesis to produce suboptimal designs.
• Instead, divide the functionality into smaller modules and instantiate
those modules.
Parallelizing design structure
• In this technique, we use more resources to produce faster designs.
• We convert sequential operations into parallel operations by using
more logic.
• A good example is the carry lookahead full adder.
Parallelizing design structure
• Contrast the carry lookahead adder with a ripple carry adder.
• A ripple carry adder is serial in nature.
• A 4-bit ripple carry adder requires 9 gate delays to generate all sum
and carry bits.
Parallelizing design structure
• On the other hand, assuming that up to 5-input and and or gates are
available, a carry lookahead adder generates the sum and carry bits in
4 gate delays.
• Thus, we use more logic gates to build a carry lookahead unit, which
is faster compared to an n-bit ripple carry adder.
Design Constraint Specification
• Design constraints are as important as efficient HDL descriptions in
producing optimal designs.
• Accurate specification of timing, area, power, and environmental
parameters such as input drive strengths, output loads, input arrival
times, etc., are crucial to produce a gate-level netlist that is optimal.
• A deviation from the correct constraints or omission of a constraint
can lead to nonoptimal designs.