Skip to content

Session 4 > Fabrication Basics

Research

It was late and I was tired…so the class with Alex Wynn was a bit of a blur. I will have to review the video to understand more deeply all the content of the session. What stuck with me from the session was the description of nanoscale circuitry in stacked layers.

So while I wait for the class video to be uploaded, my classmate and friend Thorarinn posted this in our mattermost channel > 3D Printable Inverter Model

alt text

A 3D Model we can print and get a tactile and intuitive understanding of nanoscale circuitry. I was sold. Press print, let’s go!!

Class Review

Analog > Layout > Design

Transistors > SPICE > Verilog

Digital design abstracts away the physics, but the physics is still there.
alt text

Alex gave us a roadmap of where we have been and where we are going (in this course). Up till now, we have been learning the fundamental knowledge (electrons, transistors, CMOS Logic gates) and tools needed to do what this course was meant to teach. From this point forward, we dive fully into the digital realm to progress towards a fabricatable (rudimentary) chip design.

  • SPICE is good up until up to about 1000 devices
  • Analog Flow vs Digital Flow
    alt text

  • Verilog HDL code describes logic that exists as hardware gates and transistors on silicon (or on FPGA)

Layout Tools
- K-layout (used for what? vs XSchem?)

File Format
- GDS > most common, binary format
- Oasis > 10x more compact than GDS

Layout Procedure 1. Draw schematic > schematic capture: Xschem, LTspice 2. Convert to HDL Netlist 3. Run Simulations 4. View Waveforms

Open Source Analog ASIC design

LVS > Layout vs Schematic, the difference between schematic and actual physical devices. Schematic vs Layout Netlists!

Standard Cells > pre-designed, pre-verified layout blocks for common logic gates

Gotta admit, even after the second time through the lecture, I am still not certain as to what I am supposed to do and how to do it.

Design Rules

“DRC ensures that your layout meets the physical constraints of the fabrication process…because of lithography resolution limits, etching characteristics and reliability requirements.”

Example key Geometry Design Rules include:
- Minimum (metal pad) Width
- Minimum Spacing (between metal pads)
- Via (metal) Enclosure Width
- Metal Density (within a specific area)

Example Reliability Rules
- Antenna Rules > disperse charge on long wires with diodes or vias
- Electromigration Rules > minimum wire widths depending on expected current to avoid atoms migration

Layout Versus Schematic (LVS) Check
- extracts Netlist and compares it to the original physical geometry

Process Development Kit (PDK)
- all specifications needed for designing for a specific Fab process.
alt text

Multilayered Metal
alt text
Modern processors, in order to get more transistors in a smaller space, stacks metal layers 3-dimensionally.

Terminology

HDL > Hardware Description Language, hardware as code instead of drawn schematics

Yosys > is a framework for Verilog RTL, an open source synthesis tool that converts Verilog code into gate-level logic…a compiler for hardware (ChatGPT)

RTL > Register Transfer Level, a level of abstraction that describe how data moves between (flip-flop) registers and how combinational logic transforms that data. The Abstraction Heirarchy: Transistor Level (lowest, PMOS/NMOS) > Gate Level (after Yosys, NAND, NOR, Flip-Flops) > RTL (registers, cominational logic, clocked behavior, synthesizable) > Behavioral Level (high-level, “what should happen?”) (ChatGPT)

Combinational Logic > Logic where the output depends on only the current inputs. No memory. No clock. No flip-flops. No latches No previous state. Just pure logic. Has Propagation Delays, Rise/Fall Times, Gate Delay. Versus Sequential Logic (has memory). (ChatGPT) alt text

FPGA > Field Programmable Gate Array, a reprogrammable (using Hardware description language, Verilog HDL) integrated circuit

ASIC > Application Specific Integrated Circuit, not reprogrammable after initial programming, designed for specific tasks

Assignment Work

[ ] Block Diagram: > Sketch your project’s architecture (make a Flow Chart) showing major modules and data flow (e.g. Pocket Synth: button input > tone selector > oscillator > PWM output)

[ ] Explore a Standard Cell: Open sky130 standard cell library in Klayout and find an inverter (sky130_fd_sc_hd__inv_1). Identify metal, poly, and diffusion layers

klayout /foss/pdks/sky130A/libs.ref/sky130_fd_sc_hd/gds/sky130_fd_sc_hd.gds

[ ] Connect the Dots: Pick one block from your diagram > what standard cells might implement it? (e.g. “counter” needs flip-flops, “tone selector” needs muxes)

My understanding of the 3 assignments:

  1. Decide on a project and draw a flow diagram for it.
  2. Poke around KLayout and learn how to navigate around it.
  3. Choose a block from the flow diagram and choose a Standard Cell that might implement it.

The first one, seems hard. I will need time to think about a project. The third one depends on the first. So that leaves the second assignment.

Explore a Standard Cell in KLayout

Mission: > find an inverter “sky130_fd_sc_hd__inv_1”
alt text
alt text
alt text
alt text

alt text
alt text

I followed the homework instructions (and hints) and the above was as far as I got. I thought to try something new and got the following:
alt text alt text
alt text

I think I managed to open the INV_1 file. Now to figure out how to find the Metal, Poly and Diffusion layers. On the right side, there are lots of names with the word ‘Metal’ in it. But one was highlighted, so I hid everything else alt text

and showed that one highlighted name and got this:
alt text

Not sure what I am looking at, but happy to isolate something. I provided to unhide more and more things and discovered that the only layers that produced anything were the numbered layers at the bottom. So I turn showed them one by one.

64/20
alt text

65/20
alt text

66/20
alt text

66/44
alt text

I notice that these layers are color coded. I will follow up on these colors later…

67/5 & 67/16 & 67/44
alt text

68/5 & 68/16 & 68/20

Now I am wondering what the numbers represent…

78/44
alt text

81/4
alt text

93/44
alt text

94/20
alt text

95/20
alt text

120/16
alt text

236/0
alt text

Ok, now to figure out which of these layers is Metal, Poly and Diffusion. Scouring the internet, I chanced on this Klayout documentation.
alt text

This should help me decipher the images above.

Draw a Flow Diagram for My Project

Choose a Standard Cell for a Flow Block

References

KLayout

Klayout Documentation
Klayout LVS

FPGA

What is an FPGA?

Verilog Intro