Collaborating at Work

A silicon compiler is a piece of software that reads a high level specification and automatically translates it into a complete layout of an integrated circuit (IC). The term was coined in 1979 at a conference at Caltech at the height of the 1st VLSI revolution led by Carver Mead and Lynn Conway. Mead and Conway created abstractions and design methodologies that enabled a community of engineers without a background in solid state device physics to design circuits. 

Silicon compilers further expanded the design community through abstraction and automation. 


The initial idea behind the early “silicon compilers” was one where chips would be specified as a series of parameterized building blocks and the silicon compiler would automatically stitch them together to create the final set of photmasks containing all the layers needed to create transistors and interconnect. In today’s terminology, we would probably call these early “silicon compilers” generators.  The initial silicon compilers had a compelling vision, but were not fully automated and proved too limited for the rapidly evolving VLSI community. For the industry, what  eventually won out was a new kind of silicon compiler where a standardized high level hardware description language (Verilog/VHDL) is automatically translated to a physical layout using a series of automated transformations (synthesis, placement, routing, timing analysis, signal integrity, dfm, dft ..).  


This new “RTL to GDS” silicon compiler approach has been used in every  System-On-Chip designed in the last 20 years, but challenges remain:


  1. Silicon compilation technology is inaccessible for most

  2. Silicon compilation still not fully automated

  3. Silicon compilation still not PDK agnostic

  4. Silicon design abstractions are leaking PDK data


With the SiliconCompiler project our goal is to leverage the state of the art in RTL to GDS technology combined with virtually infinite cloud compute to address these challenges. For now, due to NDA restrictions SiliconCompiler only works publicly with two virtual PDKs, but we hope that will change soon.


To run SiliconCompiler, install the python package, read the docs, and launch a compilation run either on your own hardware or through the silicon compiler remote server (account needed).