Making Memories: Clojure For Hardware Engineers (And Others)
summary
A memory-generation pipeline replaces a legacy C system by using Clojure on the JVM to produce parameterized placed-and-routed embedded SRAMs (toy example: 12 words × 8 bits = 96 bitcells) and returns hierarchical placement plus netlists. Upstream hardware designers learn a focused subset (only 58 core symbols used out of 651) and use REPL with CIDER, Emacs and version control. The system produces silicon wafers that are lab-tested, yields simpler code, comparable performance, and faster iteration.
AI-written summary · about
chapters (25)
- 0:00Intro
- 1:06Definitions
- 7:40Electronic Design Automation
- 10:01Let's build a memory
- 11:23Assemble full memory
- 14:49Designer inputs
- 15:10Designers creations
- 17:40How we enabled this (legacy)
- 19:18Stepping back
- 19:50What instead?
- 20:25Greenspun's Tenth Rule
- 20:57Moving forward
- 21:42Parens really the problem? /* C, Java, Perl
- 22:57Is learning Clojure hard?
- 23:35Assembly
- 23:54Simple Java Function
- 24:24Translate to Clojure
- 24:50Another Java function
- 28:39Reduce
- 31:38Focus
- 32:15clojure.core used
- 35:59Success!
- 36:48Steele's Observation
- 37:14What's next
- 38:10Credits
related talks
23mHigh-Performance Hardware Design with Hardcaml
28mHardware implementation of OCaml using a synchronous functional language
29mProgramming machine learning algorithms in hardware, sanely, using Haskell and Rust!
01h 03mOLD VERSION: Building Abstractions at the Hardware-software Boundary
12mExperience with Chisel in designing a scalable, manufacturable cache directory
05mInterview
45mThe endless war in memory: security without slowdowns
22mDemo: From Blueprint to Reality: Navigating SoC Tradeoffs, IP, and Ecosystem
