getting to work with openpiton o pe np...

67
Getting to Work with OpenPiton Princeton University OpenPit http://openpiton.org

Upload: lymien

Post on 30-Aug-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Getting to Work with OpenPiton

Princeton University

OpenPit

http://openpiton.org

Page 2: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

ASIC SYNTHESIS AND BACKEND

2

Page 3: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

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: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Why is it Useful?

• Research studies

– Architecture, EDA, and other HW research

• ASIC tapeout

• Education

4

Page 5: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Piton ASIC

• 25 tiles

• IBM 32nm SOI

• 36 mm2 (6mm x 6mm)

• 1 GHz Target Frequency

5

• Tested working in silicon!

Page 6: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Synthesis and Backend Flow

6

Page 7: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

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: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Getting Started

• Download Synopsys-RM

• Patch Synopsys-RM

• Familiarize with directory structure and scripts

• Port to process technology

• Running the flow

8

Page 9: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Download Synopsys-RM

• Synopsys Solvnet

• See OpenPitonSynthesis and Backend Manual

– Specify version

– Specify settings

• Broader support

9

Page 10: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Patching Synopsys-RM

10

Page 11: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Patching Synopsys-RM

10

Page 12: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Patching Synopsys-RM

10

Page 13: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Patching Synopsys-RM

10

Page 14: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Patching Synopsys-RM

11

Page 15: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Patching Synopsys-RM

11

Page 16: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Patching Synopsys-RM

11

Page 17: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Patching Synopsys-RM

11

Page 18: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 19: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 20: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 21: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 22: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 23: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Directory Structure and Scripts

• All scripts written in Tcl

• Two primary locations

– Module generic scripts

– Module specific scripts

12

Page 24: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

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: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

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: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

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: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

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: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

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: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

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: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

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 31: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

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 32: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Porting to a Process Technology

14

Page 33: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Porting to a Process Technology

14

Page 34: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Porting to a Process Technology

14

Page 35: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Porting to a Process Technology

• Module specific scripts suggested for review:

– module_setup.tcl

– floorplan.tcl

– <design_name>.constraints.tcl

15

Page 36: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Running the Flow

16

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

Page 37: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Running the Flow

16

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

Page 38: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Launch Flow

17

Page 39: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Launch Flow

17

Page 40: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Launch Flow

17

Page 41: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Launch Flow

17

Page 42: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Launch Flow

17

Page 43: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Launch Flow

17

Page 44: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Runtimes

18

Page 45: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Reports

19

Page 46: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

20

Page 47: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

20

Page 48: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

20

Page 49: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

20

Page 50: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

21

Page 51: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

21

Page 52: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

21

Page 53: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

21

Page 54: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

21

Page 55: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

21

Page 56: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

21

Page 57: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Flow Outputs

21

Page 58: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Opening the Design

22

Page 59: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Opening the Design

22

Page 60: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Opening the Design

22

Page 61: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Opening the Design

22

Page 62: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Opening the Design

23

Page 63: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Opening the Design

24

Page 64: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Opening the Design

25

Page 65: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Opening the Design

26

Page 66: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Opening the Design

26

Page 67: Getting to Work with OpenPiton O pe nP itparallel.princeton.edu/openpiton/tutorial_slides/hpca17/openpiton... · Whats in the Box? • Synthesis –Synopsys Design Compiler • Static

Opening the Design

27