asic synthesis and backend

64
Getting to Work with OpenPiton Jonathan Balkind, Michael McKeown, Yaosheng Fu, Tri Nguyen, Yanqi Zhou, Alexey Lavrov, Mohammad Shahrad, Adi Fuchs, Samuel Payne, Xiaohua Liang, Matthew Matl, David Wentzlaff Princeton University OpenPit http://openpiton.org

Upload: dinhmien

Post on 12-Feb-2017

248 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ASIC Synthesis and Backend

Getting to Work with OpenPiton

Jonathan Balkind, Michael McKeown, Yaosheng Fu, Tri Nguyen,

Yanqi Zhou, Alexey Lavrov, Mohammad Shahrad, Adi Fuchs,

Samuel Payne, Xiaohua Liang, Matthew Matl, David Wentzlaff

Princeton University

OpenPit

http://openpiton.org

Page 2: ASIC Synthesis and Backend

ASIC SYNTHESIS AND BACKEND

2

Page 3: ASIC Synthesis and Backend

Whats in the Box?

• Synthesis– Synopsys Design Compiler

• Static timing analysis (STA)– Synopsys Primetime

• Formal equivalence checking (RVS)– Synopsys Formality

• Place and route (PAR)– Synopsys IC Compiler

• Layout versus schematic (LVS)– Mentor Graphics Calibre

• Design rule checking (DRC)– Mentor Graphics Calibre

• Coming soon: Gate-level simulation

3

Page 4: ASIC Synthesis and Backend

Why is it Useful?

• Research studies

– Architecture, EDA, and other HW research

• ASIC tapeout

• Education

4

Page 5: ASIC Synthesis and Backend

Piton ASIC

• 25 tiles

• IBM 32nm SOI

• 36 mm2 (6mm x 6mm)

• 1 GHz Target Frequency

5

• Tested working in silicon!

Page 6: ASIC Synthesis and Backend

Synthesis and Backend Flow

6

Page 7: ASIC Synthesis and Backend

What do you need?

• OpenPiton

• Synopsys License– Tools and Reference Methodology (RM)

• Mentor Graphics License– Calibre (for LVS and DRC only)

• Standard cell library and process development kit

7

Page 8: ASIC Synthesis and Backend

Getting Started

• Download Synopsys-RM

• Patch Synopsys-RM

• Familiarize with directory structure and scripts

• Port to process technology

• Running the flow

8

Page 9: ASIC Synthesis and Backend

Download Synopsys-RM

• Synopsys Solvnet

• See OpenPitonSynthesis and Backend Manual

– Specify version

– Specify settings

• Broader support

9

Page 10: ASIC Synthesis and Backend

Patching Synopsys-RM

10

Page 11: ASIC Synthesis and Backend

Patching Synopsys-RM

10

Page 12: ASIC Synthesis and Backend

Patching Synopsys-RM

11

Page 13: ASIC Synthesis and Backend

Patching Synopsys-RM

11

Page 14: ASIC Synthesis and Backend

Patching Synopsys-RM

11

Page 15: ASIC Synthesis and Backend

Patching Synopsys-RM

11

Page 16: ASIC Synthesis and Backend

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 17: ASIC Synthesis and Backend

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 18: ASIC Synthesis and Backend

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 19: ASIC Synthesis and Backend

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 20: ASIC Synthesis and Backend

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 21: ASIC Synthesis and Backend

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 22: ASIC Synthesis and Backend

Porting to a Process Technology

• ${PITON_ROOT}/piton/tools/synopsys/script/common/env_setup.tcl

• ${PITON_ROOT}/piton/tools/synopsys/script/common/process_setup.tcl

• ${PITON_ROOT}/piton/tools/calibre/script/common/calibre_ env

13

Page 23: ASIC Synthesis and Backend

Porting to a Process Technology

• ${PITON_ROOT}/piton/tools/synopsys/script/common/env_setup.tcl

• ${PITON_ROOT}/piton/tools/synopsys/script/common/process_setup.tcl

• ${PITON_ROOT}/piton/tools/calibre/script/common/calibre_ env

13

Page 24: ASIC Synthesis and Backend

Porting to a Process Technology

• ${PITON_ROOT}/piton/tools/synopsys/script/common/env_setup.tcl

• ${PITON_ROOT}/piton/tools/synopsys/script/common/process_setup.tcl

• ${PITON_ROOT}/piton/tools/calibre/script/common/calibre_ env

13

Page 25: ASIC Synthesis and Backend

Porting to a Process Technology

• ${PITON_ROOT}/piton/tools/synopsys/script/common/env_setup.tcl

• ${PITON_ROOT}/piton/tools/synopsys/script/common/process_setup.tcl

• ${PITON_ROOT}/piton/tools/calibre/script/common/calibre_ env

13

Page 26: ASIC Synthesis and Backend

Porting to a Process Technology

• ${PITON_ROOT}/piton/tools/synopsys/script/common/env_setup.tcl

• ${PITON_ROOT}/piton/tools/synopsys/script/common/process_setup.tcl

• ${PITON_ROOT}/piton/tools/calibre/script/common/calibre_ env

13

Page 27: ASIC Synthesis and Backend

Porting to a Process Technology

• ${PITON_ROOT}/piton/tools/synopsys/script/common/env_setup.tcl

• ${PITON_ROOT}/piton/tools/synopsys/script/common/process_setup.tcl

• ${PITON_ROOT}/piton/tools/calibre/script/common/calibre_ env

13

Page 28: ASIC Synthesis and Backend

Porting to a Process Technology

• ${PITON_ROOT}/piton/tools/synopsys/script/common/env_setup.tcl

• ${PITON_ROOT}/piton/tools/synopsys/script/common/process_setup.tcl

• ${PITON_ROOT}/piton/tools/calibre/script/common/calibre_ env

13

Page 29: ASIC Synthesis and Backend

Porting to a Process Technology

• ${PITON_ROOT}/piton/tools/synopsys/script/common/env_setup.tcl

• ${PITON_ROOT}/piton/tools/synopsys/script/common/process_setup.tcl

• ${PITON_ROOT}/piton/tools/calibre/script/common/calibre_ env

13

Page 30: ASIC Synthesis and Backend

Porting to a Process Technology

14

Page 31: ASIC Synthesis and Backend

Porting to a Process Technology

14

Page 32: ASIC Synthesis and Backend

Porting to a Process Technology

14

Page 33: ASIC Synthesis and Backend

Porting to a Process Technology

• Module specific scripts suggested for review:

– module_setup.tcl

– floorplan.tcl

– <design_name>.constraints.tcl

15

Page 34: ASIC Synthesis and Backend

Running the Flow

16

• ${PITON_ROOT}/piton/tools/synopsys/block.list

Page 35: ASIC Synthesis and Backend

Running the Flow

16

• ${PITON_ROOT}/piton/tools/synopsys/block.list

Page 36: ASIC Synthesis and Backend

Launch Flow

17

Page 37: ASIC Synthesis and Backend

Launch Flow

17

Page 38: ASIC Synthesis and Backend

Launch Flow

17

Page 39: ASIC Synthesis and Backend

Launch Flow

17

Page 40: ASIC Synthesis and Backend

Launch Flow

17

Page 41: ASIC Synthesis and Backend

Flow Runtimes

18

Page 42: ASIC Synthesis and Backend

Flow Reports

19

Page 43: ASIC Synthesis and Backend

Flow Outputs

20

Page 44: ASIC Synthesis and Backend

Flow Outputs

20

Page 45: ASIC Synthesis and Backend

Flow Outputs

20

Page 46: ASIC Synthesis and Backend

Flow Outputs

20

Page 47: ASIC Synthesis and Backend

Flow Outputs

21

Page 48: ASIC Synthesis and Backend

Flow Outputs

21

Page 49: ASIC Synthesis and Backend

Flow Outputs

21

Page 50: ASIC Synthesis and Backend

Flow Outputs

21

Page 51: ASIC Synthesis and Backend

Flow Outputs

21

Page 52: ASIC Synthesis and Backend

Flow Outputs

21

Page 53: ASIC Synthesis and Backend

Flow Outputs

21

Page 54: ASIC Synthesis and Backend

Flow Outputs

21

Page 55: ASIC Synthesis and Backend

Opening the Design

22

Page 56: ASIC Synthesis and Backend

Opening the Design

22

Page 57: ASIC Synthesis and Backend

Opening the Design

22

Page 58: ASIC Synthesis and Backend

Opening the Design

22

Page 59: ASIC Synthesis and Backend

Opening the Design

23

Page 60: ASIC Synthesis and Backend

Opening the Design

24

Page 61: ASIC Synthesis and Backend

Opening the Design

25

Page 62: ASIC Synthesis and Backend

Opening the Design

26

Page 63: ASIC Synthesis and Backend

Opening the Design

26

Page 64: ASIC Synthesis and Backend

Opening the Design

27