03/30/031 ece 551 - digital system design synthesis lecture 9.0 - design partitioning for synthesis...

14
03/30/03 1 ECE 551 - Digital System Design & Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies Partition for design reuse Keep related combinational logic together Avoid glue logic, particularly at top level Register block outputs Partition by design goal Partition by compile technique Keep sharable resources together Keep UDRs (User-Defined Resources) with logic they drive Isolate special functions such as pads, clocks, boundary scan at top level Place large SRAMs and DRAMS at top core level Size blocks based on available computational resources

Upload: emil-osborne

Post on 19-Jan-2018

213 views

Category:

Documents


0 download

DESCRIPTION

03/30/033 Design Reuse  Partition so that existing designs can be used in your design  To permit future reuse:  Define and document interface thoroughly  Standardized interface  Parameterize the code

TRANSCRIPT

Page 1: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 1

ECE 551 - Digital System Design & Synthesis Lecture 9.0 - Design Partitioning for Synthesis

Strategies Partition for design reuse Keep related combinational logic together Avoid glue logic, particularly at top level Register block outputs Partition by design goal Partition by compile technique Keep sharable resources together Keep UDRs (User-Defined Resources) with logic they drive Isolate special functions such as pads, clocks, boundary scan at top level Place large SRAMs and DRAMS at top core level Size blocks based on available computational resources

Page 2: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 2

References Most from section 3 of Design

Compiler User Guide (DCUG) Others from project experience

Page 3: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 3

Design Reuse Partition so that existing designs can

be used in your design To permit future reuse:

Define and document interface thoroughly

Standardized interface Parameterize the code

Page 4: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 4

Keeping Related Combinational Logic Together Reasons:

Default DC cannot move logic across hierarchical boundaries

Logic optimization cannot cross block boundaries

Group related combinational logic & destination register together Improves logic optimization potential Enables sequential optimization

Page 5: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 5

Avoid Glue Logic Glue Logic

Small amounts of logic added to correct interface mismatch or add missing functionality

Eliminating glue logic Improves logic optimization potential Reduces compile time At top level, simplifies floor-planning

Page 6: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 6

Register module outputs If module outputs are not registered:

long, complex inter-module delay paths can exist• Example

Simulation speed is slower due to sensitivity lists that contain more than clock & reset• Example

Drive strengths on inputs to modules differ

Page 7: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 7

Register module outputs (continued) Negatives

Registering outputs may add clock periods to system delays for function execution

Registering outputs may severely restrict module boundary locations

Page 8: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 8

Partition by Design Goal Design Goals

Area minimization Delay minimization

By partitioning on design goals: Allows area constraints on logic without

timing issues Allows timing constraints on logic

without area issues Reduces optimization effort

Page 9: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 9

Partition by Compile Technique Compile Techniques

Forcing Structure (factoring) Forcing Flattening (2-level logic)

Examples: XOR-heavy error detection and correction

Circuits should be structured Random logic should be flattened Therefore, should not be together in module

Page 10: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 10

Keep Sharable Resources TogetherOnly resources within the same always can be shared.

Page 11: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 11

Isolating Special Functions Includes pads, I/O drivers, clock generation,

boundary scan, and asynchronous modules The external interface should be at the top

level and not placed in modules Special functions that tie to the interface

should be at the next hierarchical level down Asynchronous functions should be separate

modules at an appropriate level of the hierarchy

Example: Figure 3-10 DCUG (See next slide)

Page 12: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 12

Page 13: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 13

Place large SRAMs, DRAMS & ROMs at top core level

Relates to physical design interaction with synthesis

Large memory structures need to be placed in the floorplan independently of logic

Floorplanning is needed to do accurate timing analysis and control

Example

Page 14: 03/30/031 ECE 551 - Digital System Design  Synthesis Lecture 9.0 - Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related

03/30/03 14

Size blocks based on computational resources Large blocks permit optimization

flexibility Large block may overwhelm

workstation in terms of memory, swap space or processing throughput

Large blocks my cause excessive compile times

Thus, need to select workable intermediate size for blocks