Skip to content

Session4 - Layout & Fabrication

(Thur Feb 26) I’m doing documentation using AI. I’m not sure if it’s the right answer. I set the scope of my project within what I can currently handle, focusing on understanding the provided examples and making minor modifications. I am learning a lot through our process. I keep trying, and I feel grateful to myself for continuing.

Homework

1. Block diagram: Sketch your project’s architecture showing major modules and data flow

After reviewing the source code of the four examples provided from faculty, I decided to customize Morse beacon as my project. github examples

**HOW TO CUSTOMIZE: **

This time, I have generated code by Copilot in github to customize morse_beacon.v.

The AI prompt was this.

“Original Code is this. Add the code: the beep sound to play simultaneously to the Morse signal. A piezo buzzer (simple on/off), beep frequency 600Hz, beep stop between symbols, audio output as integrated into the existing code.”

Block Diagram for Color LED Buzzer Morse Beacon

Diagram tool: excalidraw

Diagram tool: mermaid diagram

Diagram tool: mermaid

Module / Block Main Signals Role
message memory message[char_idx] Stores the text to send
get_morse() ch, morse_data Converts ASCII to Morse pattern
Morse FSM morse_state, char_idx, symbol_idx, morse_timer Sequences symbols and gaps
Debounce btn_color, btn_pressed Cleans button input
Color Controller color_mode, on_color, off_color Chooses LED colors
Buzzer Generator buzzer_counter, buzzer_tone Creates 600 Hz square wave
Buzzer Output Gate leds_on Sounds buzzer only during dot/dash
WS2812 Driver pixel_data, bit_idx, timer, data_out Sends timed serial LED data

Homework

2.1. Explore a standard cell: Open the sky130 standard cell library in KLayout

In the container: klayout /foss/pdks/sky130A/libs.ref/sky130_fd_sc_hd/gds/sky130_fd_sc_hd.gds

2.2. Find an inverter (sky130_fd_sc_hd__inv_1).

Tip: Use Edit → Find (Ctrl+F) to search for "inv_1"

2.3. Identify metal, poly, and diffusion layers.

Show metal layer - metal 68

Show poly layer - poly 66

Show diffusion layer - diff 65

Homework

3. 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) Generated by ChatGPT and then, read carefully

Module Standard Cell
Morse FSM flip-flops, comparators, adders
Counters flip-flops + adders
Buzzer PWM counter + toggle flip-flops
WS2812 driver state machine + registers
Color selector muxes

Class Note

========== Example: Your Pocket Synth project =====================
1. You write: always @(posedge clk) if (button_c) tone <= NOTE_C;
2. Yosys converts that to ~10 logic cells (flip-flops, muxes, comparators)
3. Each gate is made of transistors following the rules from Lecture 2
4. OpenROAD places those gates and routes wires following today's DRC rules
5. The fab builds it using the process we'll discuss at the end of this lecture
6. You get a chip that plays music!

Course Journey — how this all fits together

  1. Layout Tools & Schematic Connection — connecting to last lecture

Standard Cells: Pre-Verified Building Blocks In the digital flow (which you’ll use for your project), you don’t draw layout by hand. Instead, the PDK provides standard cells — pre-designed, pre-verified layout blocks for common logic gates. Each standard cell includes: - Layout (GDS) — DRC-clean physical geometry - Abstract (LEF) — Pin locations and blockages for the router - Timing model (Liberty/.lib) — Delay and power characteristics - Behavioral model (Verilog) — For simulation

  1. The Layout Process — including how chips are made
  2. Design Verification (DRC & LVS)
  3. Process Development Kits
  4. Tape Out & Layout Acceptance
  5. Fabrication Overview
  6. The Fabrication Process
  7. Chip Delivery & Packaging