View
12
Download
0
Category
Preview:
Citation preview
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Chisel 3.0, FIRRTL, and BeyondChisel Community Conference China 2019 (CCC19 China)
Presented by Edward WangSlides by Adam Izraelevitz
State of Chisel
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
HDL Wars: A New Hope● In 2010, the HW industry was in a difficult place
○ Dennard Scaling had ended○ Moore’s Law was on its way out
● Demand for computation kept growing○ New applications○ More performance for less power/area○ Only option was to design more complicated, specialized hardware
● Designing hardware was so difficult○ Billions of transistors○ Design complexity
● Meanwhile, in a small lab in Berkeley, a solution was brewing....
3
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Instead of writing multiple RTL instances, write one instance generator that uses meta-programming for powerful parameterization
Type-Safety
Hardware Generators: Type-Safe Meta-Programming for RTL
Design Reuse Powerful Language Features4
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
No Loss of Expressibility: “Verilog-like” Chisel
FIR (Finite Impulse Response) Filter - 3-point moving average
What about >3 points?What about weighted averages?
We want a generic FIR filter! 5
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
FIR Filter - Parameterized by bitwidth and coeffients with no loss of expressibility or performance.
Meta-programming enables powerful parameterization.
Massive Increase in Parameterizability: “Software-like” Chisel
6
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
FIR Filter - Parameterized by bitwidth and coeffients with no loss of expressibility or performance.
Meta-programming enables powerful parameterization.
Massive Increase in Parameterizability: “Software-like” Chisel
7
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Hired Jonathan Bachrach (2010)
8
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
By the End of ParLab (2013), We Learned....
9
12 Grad Students Chisel Chips
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
And so, in late 2013, the problem of designing hardware was forever solved.
10
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Just kidding.
11
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Improving RTL Design ≠ Solving The Hardware Design Loop
* from “How to Draw Chip and Dale booklet”. (Walt Disney, 1955) 12
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
What had to change?
Hardware Design Ecosystem External CollaborationsStable and User-Friendly API
13
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Platform-Specific or Application-Specific RTL Changes
IBM 45nm SOI
ST 28nm FDSOI
Zynq FPGA
Chip RTL+ scan interface+ snapshotting+ interactive debug + clock-generators
+ SRAMs with init+ specialized layout
+ SRAM macros+ modified module hierarchy+ specialized layout
14
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Platform-Specific or Application-Specific RTL Changes
IBM 45nm SOI
ST 28nm FDSOI
Zynq FPGA
Chip RTL+ scan interface+ snapshotting+ interactive debug + clock-generators
+ SRAMs with init+ specialized layout
+ SRAM macros+ modified module hierarchy+ specialized layout
15
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Realization: We need a software stack, but for hardware
libraries
language
compiler
platforms
projects
x86 ARM RISC-Vtransforms
clang
HwachaRocketBOOM
rocketchip chisel-utils
16
FIRRTLChisel Frontend
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
For an ecosystem, we needed a hardware compiler infrastructure
FPGA Snapshotting
FPGA Assertions
FPGA FAME-1
ChiselVerilog Other languages
FIRRTLASIC SRAMs
Floorplanning Hints
RetimingC++Verilog Scala
17
BIST/JTAG Stitching Early Area Estimation
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Developing, Porting, Code Reviews, Testing, and so forth
18
Spring 2015
Summer 2015
Fall 2015
Winter 2015
Spring 2016
Summer 2016
Fall 2016
Winter 2016
Spring 2017
Summer 2017
Fall 2017
Designed FIRRTL Compiler
Designed Chisel 3 Frontend
Ported RocketChip
Ported Chisel Testers
Added Fixed-Point Type
Added Analog Type
Added multi-clock
Released Chisel 3.0.0
Released FIRRTL 1.0.0
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
What had to change?
Hardware Design Ecosystem External CollaborationsStable and User-Friendly API
19
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Chisel 3.0.0Reg(UInt(3.W))RegNext(3.U)RegInit(3.U)Reg(chiselTypeOf(3.U))
Emphasis on Clarity
1. Register of type UInt, width of 32. Register whose next cycle’s value is 33. Register whose initial value is 34. Register no initial value and width of 2
20
Reg(UInt(3))
Chisel 2.0.01. Register of type UInt, width of 32. Register whose next cycle’s value is 33. Register whose initial value is 34. Register no initial value and width of 2
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Chisel 3.0.0Reg(UInt(3.W))RegNext(3.U)RegInit(3.U)Reg(chiselTypeOf(3.U))
Emphasis on Clarity
1. Register of type UInt, width of 32. Register whose next cycle’s value is 33. Register whose initial value is 34. Register no initial value and width of 2
21
Reg(UInt(3))
Chisel 2.0.01. Register of type UInt, width of 32. Register whose next cycle’s value is 33. Register whose initial value is 34. Register no initial value and width of 2
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
What had to change?
Hardware Design Ecosystem External CollaborationsStable and User-Friendly API
22
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Documentation, Documentation, Documentation
23
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Bootc
amps
and T
utoria
ls
24
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Bootc
amps
and T
utoria
ls
25
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Open-Development via Github Issues/Pull Requests
26
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Stack Overflow!
27
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Academic Impact: 338 citations (as of 2019)
28
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Active Users (That We Know Of)
29
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Looking Forward
30
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Chisel3 Github Stars
Where is Chisel headed?
31
Githu
b Star
s
Time
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Future Areas of Growth
32
Diversify and Strengthen Community
Develop Needed Features and Provide Timely Support
Formalize Governance for Ecosystem Stability
In-Person Meetups
Open Dev Meetings
Commercial Collaboration
Enable Passionate Individuals
Standardize Verification Infra
Generating Hardware Collateral
Preserve Backwards Compatibility
Advanced Circuit Transformations
CHIPS Alliance Partnership
Constitution and Member Rights
Communicate Direction/Roadmap
Closer Commercial Partnerships
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Future Areas of Growth
33
Diversify and Strengthen Community
Develop Needed Features and Provide Timely Support
Formalize Governance for Ecosystem Stability
In-Person Meetups
Open Dev Meetings
Commercial Collaboration
Enable Passionate Individuals
Standardize Verification Infra
Generating Hardware Collateral
Preserve Backwards Compatibility
Advanced Circuit Transformations
CHIPS Alliance Partnership
Constitution and Member Rights
Communicate Direction/Roadmap
Closer Commercial Partnerships
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Excited? Intrigued? Skeptical?
34
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
35
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
36
CCC19 Shanghai: Edward Wang, Adam Izraelevitz
Shoutout to Chiselers out there! (And many more!!)
37
Recommended