System Specification & Design Handover
The starting point of every chip. A customer describes what they want โ in plain words, performance targets and power budgets. The design team translates this into a formal specification document and architecture that every downstream engineer will follow for the next 12โ18 months.
What Happens in System Specification?
๐งฉ The Architect's Job
Before writing a single line of Verilog, the chip architect must answer: What does this chip need to do, at what speed, at what power, in which process technology?
The customer provides requirements in natural language โ "I need a 32-bit processor that runs at 50 MHz, fits in a 32-pin package, and consumes under 10 mW in active mode." The architect converts this into a formal document that defines every module, every interface, every timing budget, and which foundry and process node to use.
This document โ the System Specification โ becomes the contract between the customer and the design team. Every design decision downstream references it.
๐ What the Customer Provides
- Functional requirements (what the chip computes)
- Performance targets (MHz, latency, throughput)
- Power budget (mW active, ยตW sleep)
- Package type (QFN-32, BGA-256โฆ)
- Operating conditions (temperature, voltage)
- Target process node (e.g., "130nm or below")
๐ What the Architect Produces
- Block diagram showing all modules
- Interface definitions (bus widths, protocols)
- Clock domain plan (how many clocks, which MHz)
- Power domain map (which blocks can sleep)
- PPA targets per block (Area ยตmยฒ, Power mW, Freq MHz)
- PDK selection & technology file checklist
Files Flow: Stage 01 Inputs & Outputs
PicoRV32 on SKY130: From Spec to Design Handover
Customer Requirement (in plain words)
This is Stage 01 input โ what the customer says verbally or in a requirements document.
Architect's Translation โ System Spec
## PicoRV32 System Specification v1.0
## PDK: SkyWater SKY130 (sky130_fd_sc_hd)
### Architecture
Core : PicoRV32 (RV32IMC)
ISA : RISC-V 32-bit Integer + Multiply + Compressed
Pipeline : Single-issue, in-order, 2-4 CPI
Memory : 2KB SRAM (instruction + data, shared)
Peripherals: GPIO (8-bit), UART (115200 baud)
### Clock Domains
sys_clk : 50 MHz (core + memory + GPIO)
uart_clk : 1.8432 MHz (derived from sys_clk via divider)
### Power Domains
pd_core : CPU + SRAM (can be clock-gated)
pd_always_on: Reset logic, clock divider (never off)
### PPA Targets
Area : โค 90,000 ยตmยฒ (300ยตm ร 300ยตm die, 70% util)
Power : โค 5 mW @ 50 MHz, 1.2V
Frequency : 50 MHz at SS/100ยฐC corner (worst case)
### PDK Technology Files (from SkyWater/Efabless)
sky130_fd_sc_hd__tt_025C_1v80.lib โ Timing (TT corner)
sky130_fd_sc_hd__ss_100C_1v60.lib โ Timing (SS corner)
sky130_fd_sc_hd.lef โ Cell geometry
sky130.tech โ Design rules
sky130_fd_pr__base.spice โ SPICE modelsSDC Timing Constraints File (constraints.sdc)
## picorv32_constraints.sdc
## Stage 01 output โ defines timing targets for all downstream tools
# Primary clock: 50 MHz system clock
create_clock -name sys_clk -period 20.0 [get_ports clk]
# โ period = 1/50MHz = 20 ns
# Clock uncertainty (jitter + skew budget)
set_clock_uncertainty 0.5 [get_clocks sys_clk]
# โ 0.5 ns uncertainty = 2.5% of clock period
# Input delays (assume signals arrive 2 ns after clock edge)
set_input_delay -clock sys_clk -max 2.0 [get_ports {resetn mem_ready mem_rdata}]
# Output delays (outputs must be stable 2 ns before next clock edge)
set_output_delay -clock sys_clk -max 2.0 [get_ports {mem_valid mem_addr mem_wdata}]
# Operating conditions
set_operating_conditions -library sky130_fd_sc_hd__ss_100C_1v60
# โ Use slow-slow corner at 100ยฐC, 1.6V for worst-case timing checkTools Used in System Specification Stage
At Stage 01, heavy EDA tools are not yet needed. The work is mostly documentation and constraint writing. However, the PDK files you choose here dictate which tools you will use in all downstream stages.
| Task | ๐ญ Synopsys | ๐ท Cadence | ๐ง Siemens EDA | ๐ Open-Source |
|---|---|---|---|---|
| Specification & Architecture Documentation | โ | โ | โ | Markdown ยท Git Wiki ยท draw.io |
| Block Diagram & Micro-Architecture | Synopsys Platform Architect | Cadence System Studio | โ | draw.io ยท Excalidraw ยท Mermaid |
| Timing Constraints Authoring (SDC) | Synopsys PrimeTime (SDC reference) | Cadence Tempus | โ | OpenSTA ยท any text editor |
| Power Intent Authoring (UPF) | Synopsys SpyGlass | Cadence Joules / Genus | Questa Power Aware | Any text editor (UPF = plain text) |
| PDK Setup & Library Management | Synopsys SiliconSmart | Cadence Library Characterizer | โ | skywater-pdk ยท volare ยท LibreCell |