3.5.7 · HinglishHDL & Digital Design Flow

Synthesis to gate-level netlist

1,748 words8 min readRead in English

3.5.7 · Hardware › HDL & Digital Design Flow


Synthesis KYA hai?

Teen inputs hamesha zaroori hote hain:

  1. RTL source — tumhara always/process behavioral code.
  2. Technology library (.lib) — available gates ka menu, jisme har ek ki delay, area, power hoti hai.
  3. Constraints (SDC) — clock period, input/output delays, area budget, wagera.

Output ek netlist hoti hai: syntactically abhi bhi Verilog hai, lekin ab isme koi +, if, ya always @(posedge) behavior nahi hai — sirf instantiated cells hain jaise AND2X1 u5 (.A(...), .B(...), .Y(...));.


HOW it works — chaar stages

RTL ──► [1 Elaboration] ──► [2 Translation to      ──► [3 Technology  ──► [4 Optimization] ──► Netlist
         + parse/check       generic Boolean/RTL         mapping to
                             (GTECH) logic]              real .lib cells]

Stage 1 — Elaboration/Parsing. HDL padho, syntax check karo, parameters resolve karo, hierarchy banao. Kyun: jab tak tool ka ek internal model nahi hoga, kuch bhi nahi ho sakta.

Stage 2 — Translation to generic logic (GTECH). Behavior → technology-independent Boolean network. assign y = a & b | c; ek abstract AND/OR graph ban jaata hai. Kyun: kisi specific vendor ke gates commit karne se pehle Boolean logic optimize karo.

Stage 3 — Technology mapping. Boolean network ko actual library cells se cover karo (jaise generic 3-input logic ko ek AOI21X1 se replace karo agar woh exist karta ho). Kyun: sirf real cells ki real delay/area hoti hai, isliye humein unhe choose karna padega taaki pata chale ki timing meet ho rahi hai ya nahi.

Stage 4 — Optimization. Logic restructure karo, cells resize/buffer karo, SDC constraints satisfy karne ke liye paths balance karo. Kyun: pehli legal mapping rarely sabse fast ya sabse choti hoti hai.

Figure — Synthesis to gate-level netlist

Core numbers: timing closure

Synthesis mostly timing hit karne ke liye hoti hai. Key inequality ko scratch se derive karo.

Setup: signal FF1 se ek clock edge pe launch hota hai, aur agali edge pe, ek clock period baad, FF2 se capture hona chahiye.

Data travel karne ke liye available time = ek clock period. Lekin do cheezein ise khaati hain:

  • Launching flop instantly output nahi karta: clock-to-Q delay .
  • Capturing flop ko data chahiye ki woh apni edge se pehle stable ho: setup time .

Toh combinational logic ke liye bacha hua time (plus ek margin/uncertainty) hai:

Actual logic delay ko fit karna zaroori hai:

Har term kyun: start mein delay karta hai, woh hai jo synthesis control karta hai (gates choose karke), deadline ko pehle shift karta hai, clock jitter/skew estimate cover karta hai. Sab kuch ek period ke andar fit hona chahiye.

Negative slack pe synthesis ki reaction: gates upsize karo (faster lekin bade/zyada power wale), buffers add karo, logic restructure karo (jaise AND-tree balance karo), ya arithmetic restructure karo (carry-lookahead vs ripple). Yahi area–power–timing trade-off hai.


Worked examples


Common mistakes


80/20 — The vital few


Recall Feynman: ek 12-saal ke bacche ko samjhao

Socho tum LEGO ke liye instructions likhte ho: "kuch aisa banao jo do numbers add kare." Ek magic robot (synthesis tool) tumhare instructions padhta hai aur ek box (library) se actual LEGO bricks (real gates) pick karta hai aur unhe ek saath snap karke ek machine banata hai jo exactly yahi karta hai. Lekin robot ke paas ek stopwatch bhi hai: answer agali clock tick se pehle ready hona chahiye. Agar machine bahut slow ho, toh robot faster (lekin bade) bricks swap karta hai jab tak clock beat na ho jaye. Connected bricks ka woh finished dher — wahi gate-level netlist hai.


Flashcards

Logic synthesis ke liye teen zaroori inputs kya hain?
RTL source, technology library (.lib), aur constraints (SDC).
Gate-level netlist kya hoti hai?
Ek structural HDL description jo sirf technology-library standard cells se bani hoti hai jo ek saath wired hoti hain (koi behavioral constructs nahi).
Chaar synthesis stages ke naam order mein batao.
Elaboration, translation to generic (GTECH) logic, technology mapping, optimization.
Setup-timing constraint likho.
.
Slack define karo.
; positive = met, negative = violation.
Pehle generic (technology-independent) logic mein translate kyun karte hain?
Boolean network ko optimize karne ke liye, kisi specific vendor ke real cells commit karne se pehle.
Kya synthesis gates ko chip pe place karta hai?
Nahi — placement & routing (physical design) woh karta hai; synthesis ek logical netlist produce karta hai.
Correctly-simulating RTL synthesis kyun fail kar sakta hai?
Isme non-synthesizable constructs ho sakte hain (delays, initial-for-logic, unbounded loops) jinका koi hardware meaning nahi hota.
Blindly gates upsize karna timing kyun fix nahi karta?
Ek bada gate apne driver ko zyada load karta hai (previous stage slow hoti hai) aur area/power khaata hai; optimization global hoti hai.
y = sel ? a : b; kis mein synthesize hota hai?
Ek 2:1 multiplexer cell mein.

Connections

Concept Map

input to

input to

input to

produces

made of

stage 1

stage 2

stage 3

stage 4

meets

constrained by

selects from

RTL source code

Logic synthesis

Technology library .lib

Constraints SDC

Gate-level netlist

Standard cells

Elaboration parse

Generic logic GTECH

Technology mapping

Optimization

Timing closure