diff --git a/talk.md b/talk.md new file mode 100644 index 0000000..81e44fa --- /dev/null +++ b/talk.md @@ -0,0 +1,206 @@ + +- [What does it mean for silicon to be "Open"?](#what-does-it-mean-for-silicon-to-be-open) + - [Parts of chip design](#parts-of-chip-design) + - [Open tooling](#open-tooling) + - [Manual design (In The Beginning)](#manual-design-in-the-beginning) + - [Digital logic overview](#digital-logic-overview) + - [How can we use standard cells?](#how-can-we-use-standard-cells) + - [Digital design](#digital-design) + - [Process Design Kits](#process-design-kits) + - [What about blackboxes?](#what-about-blackboxes) + - [Place and route](#place-and-route) + - [Other tools](#other-tools) +- [What is the current state of the art?](#what-is-the-current-state-of-the-art) + - [Things are looking pretty good!](#things-are-looking-pretty-good) + - [End-to-end tool flow possible!](#end-to-end-tool-flow-possible) + - [Current open PDKs are "ginormous"](#current-open-pdks-are-ginormous) + - [Hardware synthesis](#hardware-synthesis) + - [High level languages](#high-level-languages) + - [Floorplanning, Placement, Routing](#floorplanning-placement-routing) + - [Power and Clock generation](#power-and-clock-generation) + - [Verification](#verification) + - [Wide selection of existing chips](#wide-selection-of-existing-chips) + - [Large selection of existing IP](#large-selection-of-existing-ip) +- [Where are we going from here?](#where-are-we-going-from-here) + - [More open PDKs](#more-open-pdks) + - [Improved analogue IP](#improved-analogue-ip) + - [Better IP discoverability](#better-ip-discoverability) + - [Better integration](#better-integration) + - [Memories are still hard](#memories-are-still-hard) + - [Flash is still hard](#flash-is-still-hard) + - [EEPROM is still hard](#eeprom-is-still-hard) + - [Exotic, non-digital IP is hard!](#exotic-non-digital-ip-is-hard) +- [Getting involved!](#getting-involved) + - [Siliwiz for raw tapeout](#siliwiz-for-raw-tapeout) + - [TinyTapeout](#tinytapeout) + - [](#) + +# What does it mean for silicon to be "Open"? + +## Parts of chip design + +* Tooling +* PDKs +* IP + +## Open tooling + +* Industry tools cost $1mm plus per seat +* Process design kits (PDKs) are closed and under NDA +* Tooling includes synthesis, placement, and routing +* Tooling also includes verification, clock generation, and power generation + +## Manual design (In The Beginning) + +* Rubylith +* Magic +* [Picture of Siliwiz] + +## Digital logic overview + +* Boolean values + +## How can we use standard cells? + +* Manual synthesis +* Automated synthesis + +Almost all code is automatically synthesized from source code! + +## Digital design + +Source code can be in a Hardware Description Language. For example: + +* Verilog +* SystemVerilog +* VHDL + +[Example of live generation of cells] + +## Process Design Kits + +* Very low-level logic +* AND +* NOR +* NOT +* Diode +* Tie + +Digital logic is, for the most part, a collection of these standard cells! + +[Image of standard cells] + +## What about blackboxes? + +* Frequently called "IP" +* Blackboxes allow for more functionality, or higher performance + * Memories, RF, ADC, etc. +* Usually have Verilog models that are non-synthesizable. +* Place-and-route tool wires up the ports +* Blackboxes are how we get analogue! + +## Place and route + +The tool will automatically place cells, and will add wires between them! + +## Other tools + +* Clock generation +* Power generation +* Reset inserters +* Parasitic extraction +* Layout-vs-Schematic + +# What is the current state of the art? + +## Things are looking pretty good! + +## End-to-end tool flow possible! + +* Open tooling, open PDK +* Chips have been produced using this flow +* Production is still an issue + +## Current open PDKs are "ginormous" + +* 180nm and 130nm are peak-1999 technology + * Still can do interesting things at 180/130nm! +* "Fake" PDKs exist + +## Hardware synthesis + +* Yosys +* GHDL + +Ingests Verilog or VHDL and generates basic netlists + +## High level languages + +* LiteX [Python] +* SpinalHDL [Scala] +* [Rust] + +These all geneate Verilog, and are fully open! + +## Floorplanning, Placement, Routing + +* OpenROAD is the current gold-standard +* Compatitive with closed tools + +## Power and Clock generation + +* Setup and hold timing validation +* Basic power nets supported +* Straps are generated as expected + +## Verification + +* Parasitic extraction works +* Layout-versus-Schematics +* Simulation of extracted netlist +* Design Rule Checking + +## Wide selection of existing chips + +* Taped out +* Still being characterized + +## Large selection of existing IP + +* [Picture of MPW list] + +# Where are we going from here? + +## More open PDKs + +* GF180MCU is relatively new +* ??? PDKs + +## Improved analogue IP + +* Each run adds even more designs + +## Better IP discoverability + +* Indexes of IP cores + +## Better integration + +* Wishbone is standard in open source +* AXI4 is common in industry + +## Memories are still hard + +## Flash is still hard + +## EEPROM is still hard + +## Exotic, non-digital IP is hard! + +# Getting involved! + +## Siliwiz for raw tapeout + +## TinyTapeout + +## \ No newline at end of file