how to design your own chip?
TRANSCRIPT
How to design your own chip?
LibreCoresFree and Open Digital Hardware
Philipp WagnerFrOSCon 2016
How to design your own chip? 22016-08-20
The story of Ton Lear
How to design your own chip? 32016-08-20
The story of Ton LearNot Real
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?
How to design your own chip? 52016-08-20
Design Entry: HDL
How to design your own chip? 62016-08-20
The Digital Hardware Design Flow
HDL Sources simulation
3rd-party librariesIP Cores
design project
How to design your own chip? 72016-08-20
Simulation
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
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/
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
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)
How to design your own chip? 122016-08-20
FOSSi Reality Check 1
The Simulation Check
How to design your own chip? 132016-08-20
Simulation: Required Ingredients● code to simulate● a simulator● testing
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
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
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)
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
How to design your own chip? 182016-08-20
FOSSi Reality Check 2
The FPGA Check
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
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
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/
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.
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.
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
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
How to design your own chip? 262016-08-20
FOSSi Reality Check 3
The ASIC Check
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
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)
How to design your own chip? 292016-08-20
ASIC Implementation● Commercial options
– Synopsys Design Compiler– Cadence Encounter Toolset
● FOSS options– qflow– Coriolis2
How to design your own chip? 302016-08-20
Got Money?
[[use
r:]]
via
Wik
imed
ia C
omm
ons,
CC
BY-S
A
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
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?
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
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)
How to design your own chip? 352016-08-20
FOSSi Reality Check 4
The Community Check
How to design your own chip? 362016-08-20
Required ingredients● Let others participate● Build on existing work● Learn, teach and exchange ideas
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
How to design your own chip? 382016-08-20
Choose a license● Permissive● Weak Copyleft● Strong Copyleft
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
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?
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)?
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
How to design your own chip? 432016-08-20
Community hub needed● publish your work● find code to re-use● learn, teach, inspire
How to design your own chip? 442016-08-20
Introducing LibreCores
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
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!
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
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
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
me
Philipp Wagner
let's talk!
FOSSi Foundation
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.