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

[x] 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)

[x] 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

[ ] 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.

Block Diagram

I am a huge fan of synthesizers. To learn electronics after graduating from Fabacademy, I have been learning and building Analog Synthesizer modules (oscillators, filters, amplifiers, etc.) using discrete electronic components.

While I am still trying to understand what it is we are expected to produce at the end of this course, I very much want to do something with synthesizers.

Inspired by the example from week 1, the Pocket Synth, I am thinking to do something along those lines. A small keyboard that plays chords, not just notes. So the functional diagram would look something like this…

alt text

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

Right mouse clicking on ‘INV 1’ and choosing ‘Show as New Top’, I got this:
alt text

I think I am looking at the Inverter isolated from the rest of the circuit.

Next I moved to the Layer window, hiding every layer first…then unhiding them one by one. And discovered that the only layers that produced anything were the numbered layers at the bottom (with bold white text).

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.

Choose a Standard Cell for a Flow Block

Looking at the Pocket Synth code, I focused on the Tone Generator section.

alt text

I understand that there is a counter that increments with each clock cycle, up to a specific value…then resets. This counter is used to define note frequency. Each note has a different frequency, so a different counter max value.

Querying ChatGPT for what Standard Cell would be required to create a counter, it responded with the following:

  • D-type Flip-Flops > stores counter state, one needed for each note
  • Add Logic > increments the value upward
  • Comparator Logic > detects threshold value reached
  • Multiplexor Logic > chooses between the different threshold values (then resets)
  • Output Toggle Logic > to generate Square Wave
  • Basic Logic > NAND, NOR, INV, XOR, XNOR, AND, OR

References

KLayout

Klayout Documentation
Klayout LVS

FPGA

What is an FPGA?

Verilog Intro