risc-v design using foss · memory fifo ifetch to dec fifo dec to ifetch calcul next pc bypasss...

40
RISC - V design using FOSS Jean-Paul CHAPUT LIP, Sorbonne Université CIAN Team Marie-Minerve LOUËRAT, Roselyne CHOTIN, Jean-Paul CHAPUT, Adrian SATIN [email protected] Paris, October nd , This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike . International License J.-P. CHAPUT (SU-LIP) RISC-V design using FOSS Oct nd , /

Upload: others

Post on 03-Aug-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

RISC-V design using FOSSJean-Paul CHAPUT

LIP6, Sorbonne UniversitéCIAN Team

Marie-Minerve LOUËRAT, Roselyne CHOTIN, Jean-Paul CHAPUT, Adrian [email protected]

Paris, October 2nd, 2019This work is licensed under a Creative CommonsAttribution-NonCommercial-ShareAlike 4.0 International License

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 1 / 21

Page 2: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Plan1 Goals2 A First Try at RISC-V3 Design Flow4 Introduction to Symbolic Layout5 Description of the Design Flow6 Demo

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 2 / 21

Page 3: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Goals

/ Taking the next step for an open processor./ Give the ability to publish, share and modify the hardware designdown to the layout./ Increase security./ Ensure the continued existence of the hardware.

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 3 / 21

Page 4: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Goals

/ Taking the next step for an open processor./ Give the ability to publish, share and modify the hardware designdown to the layout./ Increase security./ Ensure the continued existence of the hardware.

2019-0

9-30 RISC-V design using FOSSGoals

Goals

• It seems only natural for a free and open processor to be built using freetools.• By checking the layout, we can better detect hardware trojan and ensurethe chip is exactly what it is.• We expect FOSS to have the same effect of community building.• NASA was forced to scavenge 8086 on eBay for the space shuttle around2002.

Page 5: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Implemented RISC-V ISA

/ RV32I user-space ISA only./ Target node will be AMS 350nm, 4metal layers.

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 4 / 21

Page 6: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Implemented RISC-V ISA

/ RV32I user-space ISA only./ Target node will be AMS 350nm, 4metal layers.

2019-0

9-30 RISC-V design using FOSSA First Try at RISC-V

Implemented RISC-V ISA

• We choose to start with as small possible a component. Always betterfor debugging...• Use of amature node so not too expensive and not too much features toimplement in the tools.

Page 7: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Architecture of our RISC-V

Request

INST to

memory

FIF

O I

FE

TC

H t

o D

EC

FIF

O D

EC

to

IF

ET

CH Calcul next PC

BYPASSs

DECOD logic

MAE

REGISTERs

FIF

O D

EC

to

EX

E

adder

shifter

Comparator

< S/U

LOGIC

and

or

xor FIF

O E

XE

to

ME

M

Request data

to memory

FIF

O M

EM

to

WB

MEM

byte select

and

sign propagation

Comparators

−=

− < S/U

IFETCH DEC EXE

bypass value

MEM WB

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 5 / 21

Page 8: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Architecture of our RISC-V

Request

INST to

memory

FIF

O I

FE

TC

H t

o D

EC

FIF

O D

EC

to

IF

ET

CH Calcul next PC

BYPASSs

DECOD logic

MAE

REGISTERs

FIF

O D

EC

to

EX

E

adder

shifter

Comparator

< S/U

LOGIC

and

or

xor FIF

O E

XE

to

ME

M

Request data

to memory

FIF

O M

EM

to

WB

MEM

byte select

and

sign propagation

Comparators

−=

− < S/U

IFETCH DEC EXE

bypass value

MEM WB

2019-0

9-30 RISC-V design using FOSSA First Try at RISC-V

Architecture of our RISC-V

• A simple five stage pipeline.• Based on our experience over the design of the MIPS R3000.• I’m not the architect, so I couldn’t answer tricky design questions...

Page 9: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

What Do We Want to Do ?

ENTITY halfadder ISPORT (

a : in BIT;b : in BIT;cout : out BIT;sout : out BIT;

);END halfadder_x2;

ARCHITECTURE behaviour OFhalfadder IS

BEGINsout <= (a xor b);cout <= (a and b);

END;

cout

sout

cin

a

b

RTL netlist layout

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 6 / 21

Page 10: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

What Do We Want to Do ?

ENTITY halfadder ISPORT (

a : in BIT;b : in BIT;cout : out BIT;sout : out BIT;

);END halfadder_x2;

ARCHITECTURE behaviour OFhalfadder IS

BEGINsout <= (a xor b);cout <= (a and b);

END;

cout

sout

cin

a

b

RTL netlist layout2019-0

9-30 RISC-V design using FOSSDesign Flow

What Do We Want to Do ?

• RTL toward netlist is «logical synthesis».• netlist toward layout is «physical synthesis».

Page 11: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

General Outline of a VLSI Design Flow

abc

yosys

Logical

synthesisRTL

vhdl

vlog

netlist

vhdl

vlog

library

Cell

symboliclayout

ap

Physical

synthesis

Cadence

Coriolis

symbolicto real

s2r

reallayout

gds

validation validation validation

RTLGenerators

Migen

Chisel

SpinalHDL

Chisel https://www.chisel-lang.org/SpinalRTL https://github.com/SpinalHDL/Migen https://m-labs.hk/gateware/migen/

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 7 / 21

Page 12: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

General Outline of a VLSI Design Flow

abc

yosys

Logical

synthesisRTL

vhdl

vlog

netlist

vhdl

vlog

library

Cell

symboliclayout

ap

Physical

synthesis

Cadence

Coriolis

symbolicto real

s2r

reallayout

gds

validation validation validation

RTLGenerators

Migen

Chisel

SpinalHDL

Chisel https://www.chisel-lang.org/SpinalRTL https://github.com/SpinalHDL/Migen https://m-labs.hk/gateware/migen/

2019-0

9-30 RISC-V design using FOSSDesign Flow

General Outline of a VLSI Design Flow

• A word about HDL languages, for now we did it the old way in VHDL.CHISEL and SPINALHDL have a logic more suited for programmers thancomputer scientists or electronic people. MIGEN is better and written inPython but do not generate VHDL (yet ?). All of them are difficult toextend if an unsupported feature occurs.• The LIP6 contribution to the flow is mostly focused on the physicaldesign stage.• More tools exists for the stage before because they can also target FPGAs.• The equal size of the boxes do not reflect on the hardness of eachstage...• The last step, with S2R will be explained shortly thereafter.

Page 13: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

A brief history of symbolic layout (1/2)

1λ = 0.5 µ

µm

µ1

µm

µ2

symboliclayout

ap

reallayout

GDS

Symbolic

METAL2

λ

λ

Mead & Conway

metal2

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 8 / 21

Page 14: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

A brief history of symbolic layout (1/2)

1λ = 0.5 µ

µm

µ1

µm

µ2

symboliclayout

ap

reallayout

GDS

Symbolic

METAL2

λ

λ

Mead & Conway

metal22019-0

9-30 RISC-V design using FOSSIntroduction to Symbolic Layout

A brief history of symbolic layout (1/2)

• Invented in 1980 by MEAD & CONWAY. Draw your layout using a specialdimension unit, the λ. Then scale to the target node. Assume that theshrink rate is almost the same for all layers.• Designed to cross the boundaries of foundries and nodes.• Allows a drastic reduction in the number of design rules.• Main drawback : the area loss, about 10%.• At the origin of MOSIS.• Simple shrink finally proven a little bit too rigid.

Page 15: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

A brief history of symbolic layout (2/2)

1λ = 0.5 µ

µmµm

δe

δw

symboliclayout

ap

reallayout

GDS

Symbolic

METAL2

λ

λ

Alliance

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 9 / 21

Page 16: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

A brief history of symbolic layout (2/2)

1λ = 0.5 µ

µm

µm

δe

δw

symboliclayout

ap

reallayout

GDS

Symbolic

METAL2

λ

λ

Alliance

2019-0

9-30 RISC-V design using FOSSIntroduction to Symbolic Layout

A brief history of symbolic layout (2/2)

• Refined by BULL, to give ALLIANCE symbolic. Add cap and widthextensions to give more slack in the transformation process.• BULL is fabless and did not want to be tied to one foundry but didn’twant to develop twice it’s designs.• Has a big advantage unforeseen at the time, it is NDA free but still veryclose the the real layout.• So, layout is publishable and can be verified against what comes backfrom the foundry. Can be critical for security.

Page 17: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

symbolic vs. real layout

Under NDAFree

design rules

rds

GDSII

real layout

symbolic layout

ap

Symbolic

to real

s2r

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 10 / 21

Page 18: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

symbolic vs. real layout

Under NDAFree

design rules

rds

GDSII

real layout

symbolic layout

ap

Symbolic

to real

s2r

2019-0

9-30 RISC-V design using FOSSIntroduction to Symbolic Layout

symbolic vs. real layout

• The translation from symbolic to real layout is ensured by the S2Rprogram. It needs a parametrisation for the target node.• We are working for a way to provide this file (and some more) to otherusers through the MYCMP service.• We keep as much as possible of the toolchain on the «left side»...• This is more difficult when it comes down to timing informations andextraction.• The other way around NDA has been taken by FREEPDK, which developfake but realistic design kits. Still they are made mainly for commercialtools.

Page 19: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Simulation Plateform with GHDL

badgood

0 1

1

32

32

32

1

1

1

1

RISC−V core

1

1

32

32

D−Cache

data_in

data_valid

data_out

data_adr

data_store_b

data_store_h

data_store_w

data_load_w

inst_in

inst_adr

inst_valid

inst_req

reset_n

ck

I−Cache

Memory

Code

Data

Stack

VHDL C

ELF

Data

Code

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 11 / 21

Page 20: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Simulation Plateform with GHDL

badgood

0 1

1

32

32

32

1

1

1

1

RISC−V core

1

1

32

32

D−Cache

data_in

data_valid

data_out

data_adr

data_store_b

data_store_h

data_store_w

data_load_w

inst_in

inst_adr

inst_valid

inst_req

reset_n

ck

I−Cache

Memory

Code

Data

Stack

VHDL C

ELF

Data

Code2019-0

9-30 RISC-V design using FOSSDescription of the Design Flow

Simulation Plateform with GHDL

• We provide the RISC-V VHDL model with a simple access to data andinstructions. D-Cache and I-Cache are a misnomer, they are just VHDLproxies for code and datas stored in the C part of the platform.• Code and datas are loaded at runtime from an ELF file generated fromthe tests provided by the RISC-V fondation.• The whole platform is compiled (both VHDL and C) as a binary.• It is also used to validate the description after synthesis and place androute.

Page 21: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

The NSXLIB Standart Cell Library

/ Portage by N. SHIMIZU from SXLIB./ Contains 89 cells. Logic gates, D flip-flop,multiplexers./ Well validated, designs have already beendone with it.

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 12 / 21

Page 22: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

The NSXLIB Standart Cell Library

/ Portage by N. SHIMIZU from SXLIB./ Contains 89 cells. Logic gates, D flip-flop,multiplexers./ Well validated, designs have already beendone with it.

2019-0

9-30 RISC-V design using FOSSDescription of the Design Flow

The NSXLIB Standart Cell Library

• The symbolic rules needed to be adapted to better fit the deepsubmicron technologies (45nm and below).• Automatic characterization procedure with a fake technology togenerate a liberty file .lib (SYNOPSYS).

Page 23: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Logical SynthesisNSXLIB

Memory

core

RISC−V

D−Cache

I−Cache

GHDL

.lib

Yosys

vasy

RISC−V

netlistvst

RISC−V

netlistblif

RISC−V

RTLvlog

RISC−V

RTLvhdl

Logical

Synthesis

VHDL

to

Verilog VHDL

toblif

blif2vst

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 13 / 21

Page 24: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Logical SynthesisNSXLIB

Memory

core

RISC−V

D−Cache

I−Cache

GHDL

.lib

Yosys

vasy

RISC−V

netlistvst

RISC−V

netlistblif

RISC−V

RTLvlog

RISC−V

RTLvhdl

Logical

Synthesis

VHDL

to

Verilog VHDL

toblif

blif2vst

2019-0

9-30 RISC-V design using FOSSDescription of the Design Flow

Logical Synthesis

• We use YOSYS to perform the logical synthesis.• This is a nightmare of format translation between, VHDL, Verilog, blifand vst... (give some details about those formats).• Color code: cian for ALLIANCE, blue for CORIOLIS.• The GHDL platform is used to check that the generated netlist (RTL) isconsistent with the behavioral description.

Page 25: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Physical Synthesis

Memory

core

RISC−V

D−Cache

I−Cache

GHDL

cts_r.vst

cts_r.ap

connect DFFs to leafs

place standard cells

create H−Tree

global route

detailed route

route

route

CTS

place

CTS

placeI/O pads & core

py

py

C++

py

C++

C++

Hurricane

Database

doChip.py

vst

netlist

+clock tree

layout

+clock tree

netlist

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 14 / 21

Page 26: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Physical Synthesis

Memory

core

RISC−V

D−Cache

I−Cache

GHDL

cts_r.vst

cts_r.ap

connect DFFs to leafs

place standard cells

create H−Tree

global route

detailed route

route

route

CTS

place

CTS

placeI/O pads & core

py

py

C++

py

C++

C++

Hurricane

Database

doChip.py

vst

netlist

+clock tree

layout

+clock tree

netlist

2019-0

9-30 RISC-V design using FOSSDescription of the Design Flow

Physical Synthesis

• Scan-path is inserted in the netlist just after the logical synthesis. Itchains the FIFOs, the DECOD & and IFECTH state. Not the register file.• All tools works in memory using the HURRICANE database, this allow atight integration between the tools. In particular, notice the interleavingbetween CTS and standard cell placement, this way we can easilyconnect the DFFs to the nearest clock-tree leaf.• Another feature of importance is seamless integration between Pythonand C++ parts. Here again, we can mix them almost any way we want.• This is so true that there isn’t event a CORIOLIS binary. It is only Pythonscripts that we can tailor to whatever we want.• As we modify the netlist when inserting the clock tree, we check againwith the GHDL platform.• The placer is analytical, based on SIMPL.

Page 27: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Validation

Free

lvx

LVS

Extractorcougar

druc

DRC

Under NDA

HiTas

STAcougar

Extractor

symboliclayoutap

vst

netlist

vst

netlist

to real

symbolic

s2r

design rules

rds

GDSII

layout

trans.

al

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 15 / 21

Page 28: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Validation

Free

lvx

LVS

Extractorcougar

druc

DRC

Under NDA

HiTas

STAcougar

Extractor

symboliclayoutap

vst

netlist

vst

netlist

to real

symbolic

s2r

design rules

rds

GDSII

layout

trans.

al2019-0

9-30 RISC-V design using FOSSDescription of the Design Flow

Validation

• The STA HiTas is an old but industry proven tool.• For the cougar extractor to work it needs technological informations. Wesupply a fake technology.

Page 29: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Design Flow Automation

/ Alliance Check Toolkit provides a set of GNU Makefiles to fullyautomate the flow./ Only one top level Makefile is needed to build a design./ A regression suite for the tools./ Various example designs of blocks or whole chips.

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 16 / 21

Page 30: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Design Flow Automation

/ Alliance Check Toolkit provides a set of GNU Makefiles to fullyautomate the flow./ Only one top level Makefile is needed to build a design./ A regression suite for the tools./ Various example designs of blocks or whole chips.

2019-0

9-30 RISC-V design using FOSSDescription of the Design Flow

Design Flow Automation

• Alliance Check Toolkit contains a lot of paraphernalia.• We are at the limit to what can be done with even evolved GNUMakefiles. In the future we may write an integrated Python script.

Page 31: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

The Chip

/ 11K gates (symbolic layout)./ 144 I/O pad (real layout)./ Chip is core limited./ Size is 5×5mm (25mm2)

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 17 / 21

Page 32: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

The Chip

/ 11K gates (symbolic layout)./ 144 I/O pad (real layout)./ Chip is core limited./ Size is 5×5mm (25mm2)

2019-0

9-30 RISC-V design using FOSSDescription of the Design Flow

The Chip

• Precisely 11348 gates with YOSYS 0.7.• As we are not finished yet, those results will slightly evolve still.• The core is symbolic but we use the I/O pad supplied by AMS. This is apart that we cannot make symbolic due to foundry constraints.

Page 33: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Features Checklist

Implemented :/ Basic scan-path (CORIOLIS)./ Clock-tree (H-Tree).To be implemented (december 2019):

/ Smart scan-path (post-placement path optimization)./ Improve power plan to control IR-drop./ Check for hold-violations./ Net high fanout synthesis (HFS).

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 18 / 21

Page 34: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

Features Checklist

Implemented :/ Basic scan-path (CORIOLIS)./ Clock-tree (H-Tree).To be implemented (december 2019):

/ Smart scan-path (post-placement path optimization)./ Improve power plan to control IR-drop./ Check for hold-violations./ Net high fanout synthesis (HFS).201

9-09-3

0 RISC-V design using FOSSDescription of the Design FlowFeatures Checklist

• Of courses, we are talking about features besides classic place and route.• Our middle term goal is to implement features allowing us to usesmaller and smaller nodes.

Page 35: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

References (1/2)/ GHDL, Tristan GRINGOLD, http://ghdl.free.fr/./ YOSYS, Clifford WOLF, http://www.clifford.at/yosys/./ ALLIANCE, SU-LIP6

http://www-soc.lip6.fr/git/alliance.git/./ CORIOLIS, SU-LIP6

http://www-soc.lip6.fr/git/coriolis.git/./ Alliance Check Toolkit, SU-LIP6

http://www-soc.lip6.fr/git/alliance-check-toolkit.git/Provide the NSXLIB symbolic standard cells library./ RISC-V RV32I, SU-LIP6,

http://www-soc.lip6.fr/git/RISC-V.git/

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 19 / 21

Page 36: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

References (1/2)/ GHDL, Tristan GRINGOLD, http://ghdl.free.fr/./ YOSYS, Clifford WOLF, http://www.clifford.at/yosys/./ ALLIANCE, SU-LIP6

http://www-soc.lip6.fr/git/alliance.git/./ CORIOLIS, SU-LIP6

http://www-soc.lip6.fr/git/coriolis.git/./ Alliance Check Toolkit, SU-LIP6

http://www-soc.lip6.fr/git/alliance-check-toolkit.git/Provide the NSXLIB symbolic standard cells library./ RISC-V RV32I, SU-LIP6,

http://www-soc.lip6.fr/git/RISC-V.git/2019-0

9-30 RISC-V design using FOSSDescription of the Design Flow

References (1/2)

Pas de notes pour ce transparent.

Page 37: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

References (2/2)

/ ISCAS : N. Shimizu, J. Akita, M.-M. Louërat, Haralampos-G.Stratigopoulos, J.-P. Chaput, D. Galayko : “Open Source Hardwareand EDA Tools for Analog/Mixed-Signal Design and Prototyping”,2018 IEEE International Symposium on Circuits and Systems(ISCAS), Florence, Italy, (IEEE) (2018)/ FSiC : The development of the NSXLIB standard cell scalable library/ ESSCIRC : “A 29 Gops/Watt 3D-ready 16-core computing fabric withscalable cache coherent architecture using distributed L2 andadaptive L3 caches” E. Guthmuller, C. Fuguet, P. Vivet, C. Bernard, I.Miro-Panades, J. Durupt, E. Beigne, D. Lattard, S. Cheramy, A.Greiner, Q. Meunier and P. Bazargan Sabet

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 20 / 21

Page 38: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

References (2/2)

/ ISCAS : N. Shimizu, J. Akita, M.-M. Louërat, Haralampos-G.Stratigopoulos, J.-P. Chaput, D. Galayko : “Open Source Hardwareand EDA Tools for Analog/Mixed-Signal Design and Prototyping”,2018 IEEE International Symposium on Circuits and Systems(ISCAS), Florence, Italy, (IEEE) (2018)/ FSiC : The development of the NSXLIB standard cell scalable library/ ESSCIRC : “A 29 Gops/Watt 3D-ready 16-core computing fabric withscalable cache coherent architecture using distributed L2 andadaptive L3 caches” E. Guthmuller, C. Fuguet, P. Vivet, C. Bernard, I.Miro-Panades, J. Durupt, E. Beigne, D. Lattard, S. Cheramy, A.Greiner, Q. Meunier and P. Bazargan Sabet201

9-09-3

0 RISC-V design using FOSSDescription of the Design FlowReferences (2/2)

Pas de notes pour ce transparent.

Page 39: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

And now, let’s have a demo...

J.-P. CHAPUT (SU-LIP6) RISC-V design using FOSS Oct 2nd , 2019 21 / 21

Page 40: risc-v design using foss · memory FIFO IFETCH to DEC FIFO DEC to IFETCH Calcul next PC BYPASSs DECOD logic MAE REGISTERs FIFO DEC to EXE adder shifter Comparator < S/U LOGIC and

And now, let’s have a demo...

2019-0

9-30 RISC-V design using FOSSDemo

And now, let’s have a demo...

• Run the logical synthesis stage on the console, then switch to graphicalmode for the physical synthesis.• Commands:ego@home:RISC-V> cd PlaceAndRouteego@home:PlaceAndRoute> make scanego@home:PlaceAndRoute> cgt -V –cell=riscv_core_scanGenerate the chip from the pads using AMS pads.Place chip (with clock tree).Do not forget to go down the corona.Global then detail route the corona / core.

• Comment on Etesian analytical placer (force directed).