how to design your own chip?

50
How to design your own chip? LibreCores Free and Open Digital Hardware Philipp Wagner FrOSCon 2016

Upload: philipp-wagner

Post on 16-Jan-2017

595 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: How to design your own chip?

How to design your own chip?

LibreCoresFree and Open Digital Hardware

Philipp WagnerFrOSCon 2016

Page 2: How to design your own chip?

How to design your own chip? 22016-08-20

The story of Ton Lear

Page 3: How to design your own chip?

How to design your own chip? 32016-08-20

The story of Ton LearNot Real

Page 4: How to design your own chip?

How to design your own chip? 42016-08-20

Digital Hardware Design

Free and Open Source Silicon (FOSSi)

maker

open (source) hardware

What's the difference?

Page 5: How to design your own chip?

How to design your own chip? 52016-08-20

Design Entry: HDL

Page 6: How to design your own chip?

How to design your own chip? 62016-08-20

The Digital Hardware Design Flow

HDL Sources simulation

3rd-party librariesIP Cores

design project

Page 7: How to design your own chip?

How to design your own chip? 72016-08-20

Simulation

Page 8: How to design your own chip?

How to design your own chip? 82016-08-20

The Digital Hardware Design Flow

HDL Sources

synthesis

simulation

3rd-party librariesIP Cores

FPGA implementation

design project

Page 9: How to design your own chip?

How to design your own chip? 92016-08-20

Chips?

Image source: https://deliciousgf.wordpress.com/2012/04/29/gluten-free-and-vegan-veggie-chips/

Page 10: How to design your own chip?

How to design your own chip? 102016-08-20

The Digital Hardware Design Flow

HDL Sources

synthesis

simulation

3rd-party librariesIP Cores

ASIC backend

FPGA implementation

design project

Page 11: How to design your own chip?

How to design your own chip? 112016-08-20

Chips!

image from https://pixabay.com/en/chips-potato-chips-unhealthy-thick-448746/, CC0 (public domain)

Page 12: How to design your own chip?

How to design your own chip? 122016-08-20

FOSSi Reality Check 1

The Simulation Check

Page 13: How to design your own chip?

How to design your own chip? 132016-08-20

Simulation: Required Ingredients● code to simulate● a simulator● testing

Page 14: How to design your own chip?

How to design your own chip? 142016-08-20

Write your code● Choose from the incumbents

– Verilog/SystemVerilog– VHDL

● or one of the new contenders– Bluespec SystemVerilog– Chisel (UC Berkely)– MyHDL

Page 15: How to design your own chip?

How to design your own chip? 152016-08-20

Simulation● The “big 3” commercial simulators

– Incisive Enterprise Simulator/ NCSim (Cadence)– ModelSim (Mentor)– VCS (Synopsys)

● FOSS solutions– Icarus Verilog– GHDL– Verilator

● Add a good waveform viewer– gtkview

Page 16: How to design your own chip?

How to design your own chip? 162016-08-20

Testing & Verification● cocotb: Python-based test● vunit: VHDL unit testing● Open Source VHDL Verification Methodology

(OS-VVM)

Page 17: How to design your own chip?

How to design your own chip? 172016-08-20

“The Simulation Check”: Results● Hobbyist-Accessibility-Score: 4/5● FOSS score: 4/5● Fun score: 2/5

Page 18: How to design your own chip?

How to design your own chip? 182016-08-20

FOSSi Reality Check 2

The FPGA Check

Page 19: How to design your own chip?

How to design your own chip? 192016-08-20

FPGA Design: Required Ingredients● code to simulate● a simulator● testing● a synthesis tool● an implementation tool● an FPGA board

Page 20: How to design your own chip?

How to design your own chip? 202016-08-20

FPGA Synthesis● Commercial

– Synopsys Synplify– vendor tools (Xilinx, Altera, …)

● free alternatives– Verilog-to-Routing (VTR)– Yosys

Page 21: How to design your own chip?

How to design your own chip? 212016-08-20

FPGA Implementation● Mostly vendor tools

– Xilinx ISE/Vivado, Altera Quartus, …● free alternatives

– IceStorm for Lattice iCE40something to watch: Clifford @ FOSDEM 2016https://archive.fosdem.org/2016/schedule/event/icestorm/

Page 22: How to design your own chip?

How to design your own chip? 222016-08-20

FPGA Boards: student (< 100 $)

DE0-Nano$79

22,320 cells

Artix-7 35T$99

33,280 cells

iCEstick$20

1280 cells

All board pictures (c) by the manufacturers.

Page 23: How to design your own chip?

How to design your own chip? 232016-08-20

FPGA Boards: amateur (~ 500 $)

Nexys 4 DDR

ZTEX 2.1x

Altera DE2-115

All board pictures (c) by the manufacturers.

Page 24: How to design your own chip?

How to design your own chip? 242016-08-20

FPGA Board: pro (> 1000 $)

Xilinx KC705

Xilinx VC707All board pictures (c) by the manufacturers.

Altera Cyclone V SoC Development Kit

Page 25: How to design your own chip?

How to design your own chip? 252016-08-20

“The FPGA Check”: Results● Hobbyist-Accessibility-Score: 3/5● FOSS score: 2/5● Fun score: 4/5

Page 26: How to design your own chip?

How to design your own chip? 262016-08-20

FOSSi Reality Check 3

The ASIC Check

Page 27: How to design your own chip?

How to design your own chip? 272016-08-20

ASIC Production: Required Ingredients● code to simulate● a simulator● a synthesis tool● really good testing & verification● a design kit● an implementation tool● money

Page 28: How to design your own chip?

How to design your own chip? 282016-08-20

The Design Kit● standard cell libraries, design rules, electrical

parameters, ...● get it from the foundry● bad: requires pretty tough NDA● good: it's usually for free (again, as in beer)

Page 29: How to design your own chip?

How to design your own chip? 292016-08-20

ASIC Implementation● Commercial options

– Synopsys Design Compiler– Cadence Encounter Toolset

● FOSS options– qflow– Coriolis2

Page 30: How to design your own chip?

How to design your own chip? 302016-08-20

Got Money?

[[use

r:]]

via

Wik

imed

ia C

omm

ons,

CC

BY-S

A

Page 31: How to design your own chip?

How to design your own chip? 312016-08-20

Need Money● Multi-Project Wafer

– available from multiple vendors, e.g. Europractice– example

● 50 pcs Globalfoundries 40 nm● 4 750 €/mm² (at least 9 mm² = 42 750 €) + packaging, etc.● up to 1500 KGates/mm²

– cheaper in older technologies (65nm + up)● eASIC

– pre-characterized ASICs “configured” with one custom layer

Page 32: How to design your own chip?

How to design your own chip? 322016-08-20

“The ASIC Check”: Results● Hobbyist-Accessibility-Score: 0.1/5● FOSS score: 1/5● Fun score: 1-5/5● Satisfaction score: 10/5

let's do it anyways?

Page 33: How to design your own chip?

How to design your own chip? 332016-08-20

Don't celebrate alone.

Pict

ure

by W

eI-c

hieh

Chi

u (fl

ickr

), CC

BY-

SA

Page 34: How to design your own chip?

How to design your own chip? 342016-08-20

Join the party!

The bachelor party. Signed Louis Wain. Oil on canvas, 29.5 x 60 cm (public domain, via Wikimedia Commons)

Page 35: How to design your own chip?

How to design your own chip? 352016-08-20

FOSSi Reality Check 4

The Community Check

Page 36: How to design your own chip?

How to design your own chip? 362016-08-20

Required ingredients● Let others participate● Build on existing work● Learn, teach and exchange ideas

Page 37: How to design your own chip?

How to design your own chip? 372016-08-20

How to live together?

phot

o by

Prs

kavk

a (W

ikim

edia

Com

mon

s), p

ublic

dom

ain

Page 38: How to design your own chip?

How to design your own chip? 382016-08-20

Choose a license● Permissive● Weak Copyleft● Strong Copyleft

Page 39: How to design your own chip?

How to design your own chip? 392016-08-20

Licensing: Permissive● without patent clause

– MIT and BSD widely used– example project: RISC V

● with patent clause– new: SolderPad License by Andrew Katz

Page 40: How to design your own chip?

How to design your own chip? 402016-08-20

Licensing: Weak Copyleft● File-based copyleft

– OHDL: Julius Baxter for mor1kx, based on MPLv2● library copyleft

– LGPL● commonly used on opencores.org● what's “linking” in a hardware context?

Page 41: How to design your own chip?

How to design your own chip? 412016-08-20

Licensing: Strong Copyleft● GPL

– GPLv3 uses “hardware-friendly” language● lesson learned from open sourcing SPARC

– example user: Gaisler LEON3 (GPLv2+)– implications not fully understood

● ASIC (design kit)?● FPGA (built-in primitives)?

Page 42: How to design your own chip?

How to design your own chip? 422016-08-20

OpenCores.org

phot

o by

And

re G

lech

ikoff

(Flic

kr),

CC B

Y-SA

Page 43: How to design your own chip?

How to design your own chip? 432016-08-20

Community hub needed● publish your work● find code to re-use● learn, teach, inspire

Page 44: How to design your own chip?

How to design your own chip? 442016-08-20

Introducing LibreCores

Page 45: How to design your own chip?

How to design your own chip? 452016-08-20

LibreCores Goals● Documentation

– How to get started?– Best practices– Success stories

● News & Discussion– Planet LibreCores

● Project repository– a directory of FOSSi projects– with quality indicators

Page 46: How to design your own chip?

How to design your own chip? 462016-08-20

LibreCores: Where are we today?● Documentation

– How to get started?– Best practices– Success stories

● News & Discussion– Planet LibreCores

● Project repository– a directory of FOSSi projects– with quality indicators

First content online

online!

to be releasedin October!

Page 47: How to design your own chip?

How to design your own chip? 472016-08-20

Who's behind all that?● OpenRISC community● Group formed ~2 years ago● First plans presented at ORCONF

2015 at CERN● since end of 2015: FOSSi

Foundation, CiC (UK) to provide shared legal entity

Page 48: How to design your own chip?

How to design your own chip? 482016-08-20

So: How to design your own chip?● join an existing project: OpTiMSoC, lowrisc, … ● fire up your editor: most tools are free (as in

beer)● FPGA designs are within reach● ASICs only for some of us

Page 49: How to design your own chip?

How to design your own chip? 492016-08-20

Conference Announcement

● October 7 – 9

● University of Bologna, in Bologna, Italy

● No admission fee (but please register)

visit www.orconf.org for more info & registration

Page 50: How to design your own chip?

me

Philipp Wagner

[email protected]

let's talk!

FOSSi Foundation

[email protected]

www.fossi-foundation.org #librecores on freenode

You can freely remix this presentation under the terms of the Creative Commons BY-SA 4.0 license.