EE 198: EECS151 Tapeout
Lecture 2: “What’s an SoC”, Chipyard style!
University of California, Berkeley
IEEE Student Branch
University of California, Berkeley
IEEE Student Branch
IEEE: How you can join! (Quick ad)
Member Officer Project
University of California, Berkeley
IEEE Student Branch
IEEE: How you can join! (Quick ad)
University of California, Berkeley
IEEE Student Branch
Last Time… Introduction
All you need to pretend you read the syllabus.
University of California, Berkeley
IEEE Student Branch
Last Week’s Actionables
How did it go (vibe checks~):
Other questions?
University of California, Berkeley
IEEE Student Branch
Logistics (Same as last week)
University of California, Berkeley
IEEE Student Branch
Transitioning to Week 2!
University of California, Berkeley
IEEE Student Branch
Shuttle Deadline Reminder
Don’t forget - this is the big deadline for any side projects!
(You will need to complete labs quick)
University of California, Berkeley
IEEE Student Branch
A Shuttle? What is that?
A Silicon Shuttle is a prototype service that utilizes a Multi-Project Wafer (MPW) to enable multiple customers to share masks and wafers
University of California, Berkeley
IEEE Student Branch
Summary of Today
University of California, Berkeley
IEEE Student Branch
Summary of Today
University of California, Berkeley
IEEE Student Branch
Lecture by Prof. Bora!
Borivoje (Bora) Nikolic
Decal Advisor
Very Cool EECS Professor
BWRC & SLICE Labs
University of California, Berkeley
IEEE Student Branch
Questions?
Next: Jumping into the new stuff!
University of California, Berkeley
IEEE Student Branch
“SoC”
University of California, Berkeley
IEEE Student Branch
“SoC”
System-on-Chip
University of California, Berkeley
IEEE Student Branch
What is a “System-on-Chip” (SoC)?
Recall
Lecture 1:
(“Southbridge” and “northbridge”: pre-SoC, core logic was spread across multiple chips outside the CPU.)
University of California, Berkeley
IEEE Student Branch
Why might we want an SoC?
University of California, Berkeley
IEEE Student Branch
Why might we want an SoC?
Area: less space than multiple discrete components
Power efficiency: less large components and circuits
Cheaper: single SoC chip may be cheaper than a set of multiple
Reliability: a single SoC has fewer connections
Performance: signals can stay on chip
University of California, Berkeley
IEEE Student Branch
Why might be drawbacks of an SoC?
University of California, Berkeley
IEEE Student Branch
Why might be drawbacks of an SoC?
Single point of failure: a failure in one component affects the entire system (which limits upgrades, too)
Time to market: designing custom SoCs requires more expertise + specialized tools than off-the-shelf components
Limited mixed signal (analog/digital) optimization:
Flexibility: An SoC has limited scope when applied for other tasks
University of California, Berkeley
IEEE Student Branch
Spoiler Alert: The benefits overshadow..
University of California, Berkeley
IEEE Student Branch
Spoiler Alert: The benefits overshadow..
University of California, Berkeley
IEEE Student Branch
SoC ASICs
“System-on-Chip Application-Specific Integrated Circuits”
University of California, Berkeley
IEEE Student Branch
Why do SoC ASICs? (EECS151 review!)
Recall EECS151 lectures - why pick ASIC over FPGA?
(Wawrzynek’s slides here to jog our memory)
University of California, Berkeley
IEEE Student Branch
Why do SoC ASICs?
J. Wawrzynek
ASIC
FPGA
EECS151 Board
University of California, Berkeley
IEEE Student Branch
Why do SoC ASICs?
(intellectual property)
(i.e. existing designs)
(process development kit)
(i.e. SKY130)
(...it’s also good fun and resume-building!)
University of California, Berkeley
IEEE Student Branch
Questions?
Next: our SoC is a Rocket Chip!
University of California, Berkeley
IEEE Student Branch
SoC Case Study: Rocket Chip
University of California, Berkeley
IEEE Student Branch
Modern SoCs are quite intense
Apple M2/MAX
67 billion transistors
Nvidia A100
54.2 billion transistors
University of California, Berkeley
IEEE Student Branch
Generators - a time saver! (if they work)
FPGA cores
C++
Cornell Efforts..
University of California, Berkeley
IEEE Student Branch
Aside: Analog Generators?!
UCB vs UoM..
Python-based
Generators
>_>
University of California, Berkeley
IEEE Student Branch
A more approachable SoC: Rocket Chip
-> now
University of California, Berkeley
IEEE Student Branch
Dissecting a Rocket Chip
The Rocket Chip Generator (2016 paper)
Core(s)
Caches
+ TLBs
(translation lookaside buffer)
RoCC
(coprocessor interface)
+ Accelerators
Tile(s) (for cache coherency)
TileLink
(protocol / network)
+ Constellation
(physical network)
Peripherals
Let’s learn more about them!
University of California, Berkeley
IEEE Student Branch
Dissecting a Rocket Chip
The Rocket Chip Generator (2016 paper)
Core(s)
Caches
+ TLBs
(translation lookaside buffer)
RoCC
(coprocessor interface)
+ Accelerators
Tile(s) (for cache coherency)
TileLink
(protocol / network)
+ Constellation
(physical network)
Peripherals
(don’t worry about all of them rn)
University of California, Berkeley
IEEE Student Branch
Rocket Chip Tiles (And All Within)
University of California, Berkeley
IEEE Student Branch
(Rocket Chip ->) Rocket Chip “Tile” (?)
University of California, Berkeley
IEEE Student Branch
(Rocket Chip ->) Rocket Chip Tile
University of California, Berkeley
IEEE Student Branch
(Rocket Chip -> Rocket Tile ->) Rocket Core
University of California, Berkeley
IEEE Student Branch
(Rocket Tile ->) L1$ Cache(s)
University of California, Berkeley
IEEE Student Branch
“Rocket” Summary
Chip
Tile
(Rocket) Tile
Core
University of California, Berkeley
IEEE Student Branch
“Rocket” Summary (Very Simplified)
Rocket Chip
(Generic) Tile
Rocket Tile
Rocket Core
Caches
University of California, Berkeley
IEEE Student Branch
Rocket Chip (Less Simplified)
Your
Tile
we will talk
more about
buses / etc /
peripherals
another time
University of California, Berkeley
IEEE Student Branch
How does this compare to “reality”?
You have access to IP that does get used in industry, and some is even pretty well known!
(BOOM as seen on prior slide)
Basically: “Wow berkeley is cool! :D” (or read the article)
University of California, Berkeley
IEEE Student Branch
What about the cutting edge SoCs?
Right now, you can’t quite generate a top-tier industry-quality SoC
(although you can read about them..)
University of California, Berkeley
IEEE Student Branch
Maybe there’s hope(™)…
Right now, you can’t quite generate an industry**-quality core*….
…Unless you are Beijing institute of open source chip!
Where is the line between unique research and engineering might?
University of California, Berkeley
IEEE Student Branch
You’ll notice many components are the same*
(2019 patent, parametrized
small core?)
University of California, Berkeley
IEEE Student Branch
You’ll notice many components are similar*
(2013 arithmetic branch fusion patent?)
University of California, Berkeley
IEEE Student Branch
You’ll notice many components are useful*
Point being: Berkeley will use Chipyard so often that you’ll get tired of it, BUT it is genuinely a good reference for SoCs!
(my/our bias >_>)
(2017/19 patent?)
University of California, Berkeley
IEEE Student Branch
Back to SoC Land:
How does a Tile fit into the SoC system?
University of California, Berkeley
IEEE Student Branch
What connects *anything* in an SoC?
(Intermodule Communication)
At this point, our SoC is like a Soup-on-Chip
What’s the point of that?
University of California, Berkeley
IEEE Student Branch
Intermodule Communication
Networking is hard!
(some interfaces.. imagine trying to implement *all* of them)
University of California, Berkeley
IEEE Student Branch
TL;DR Our Protocol: TileLink
University of California, Berkeley
IEEE Student Branch
(preview) Chipyard Tiles in this network
A “Tile” in Chipyard can be thought of as a “node” in the SoC connectivity diagram and can adopt different roles
(In a future lecture, we will talk about interconnects + NoC.. or you can take 251B)
University of California, Berkeley
IEEE Student Branch
Questions?
Next: How does this relate to our CPU?
University of California, Berkeley
IEEE Student Branch
Great, we now know a lot about *someone else’s* RISC-V CPU (Rocket Core).
Why do we care?
University of California, Berkeley
IEEE Student Branch
Your EECS151LA CPU is extremely similar!
(we will explain the rest in a second)
University of California, Berkeley
IEEE Student Branch
But also a little different..
University of California, Berkeley
IEEE Student Branch
How may we fix that?
Step 1: Create a Chisel Black Box
Step 2: Create a TileLink Adapter
University of California, Berkeley
IEEE Student Branch
Introduction to Lab 2
University of California, Berkeley
IEEE Student Branch
Lab 1 Recap: Chipyard & Chisel Setup
University of California, Berkeley
IEEE Student Branch
Lab 1 Recap: Chipyard & Chisel Setup
61C
/151
Lab 1
Lecture 2
Lecture 1
University of California, Berkeley
IEEE Student Branch
General Lab 2 Steps
Seems simple? We’ll see!
(Goal: Lab 2 is more directed, Lab 3 will be more exploratory)
University of California, Berkeley
IEEE Student Branch
What you should aim to learn from Lab 2
You will define a tile that instantiates your black box Chisel module (wrapping your verilog core), which exposes its memory interface in its io description
Your tile will contain HDL logic that maps the blackbox core memory requests to tilelink requests
Then it can play nice with other tiles on the system bus :)
University of California, Berkeley
IEEE Student Branch
What you’ll see: Chipyard Black Box
A verilog module in a chipyard trenchcoat!
class myVerilogCore() extends BlackBox
with HasBlackBoxResource
With HasMyVerilogCoreIO {
addResource(“vsrc/mycore.v”)
}
A verilog blackbox
University of California, Berkeley
IEEE Student Branch
What you’ll see: MMIO
MMIO = memory-mapped IO
To use: add extends HasRegMap your module declaration + define a regmap
https://chipyard.readthedocs.io/en/stable/Customization/MMIO-Peripherals.html#mmio-accelerators
University of California, Berkeley
IEEE Student Branch
SSH Setup Check-in
Just in case you’re getting bugs, a reminder
University of California, Berkeley
IEEE Student Branch
EECS151LA Core Check-In
University of California, Berkeley
IEEE Student Branch
Summary (Recap) of Today’s Content
University of California, Berkeley
IEEE Student Branch
Questions?
University of California, Berkeley
IEEE Student Branch
Self-Intro & work session time!~
University of California, Berkeley
IEEE Student Branch