SemiMatrix / TOPICS / CLOCK DOMAIN CROSSING & LINT ANALYSIS
IC DESIGN — VERIFICATION

Clock Domain Crossing & Lint Analysis

ENGINEERING

01 บทนำ: Clock Domain Crossing & Lint Analysis คืออะไร

ในโลกของการออกแบบวงจรรวมขนาดใหญ่มาก (Very Large-Scale Integration: VLSI) และระบบบนชิป (System-on-Chip: SoC) ยุคปัจจุบัน การประมวลผลไม่ได้จำกัดอยู่เพียงแค่โดเมนสัญญาณนาฬิกา (Clock Domain) เดียวอีกต่อไป ชิปประมวลผลระดับสูงมักประกอบด้วยโมดูลต่างๆ ที่ทำงานด้วยความถี่และเฟสของสัญญาณนาฬิกาที่แตกต่างกันเพื่อประสิทธิภาพสูงสุดและลดการใช้พลังงาน การสื่อสารและส่งผ่านข้อมูลข้ามขอบเขตสัญญาณนาฬิกาที่แตกต่างกันนี้เรียกว่า Clock Domain Crossing (CDC) ซึ่งถือเป็นหนึ่งในจุดที่เปราะบางที่สุดและก่อให้เกิดความผิดพลาดในระดับฮาร์ดแวร์ได้ง่ายที่สุด

หากการออกแบบ CDC ไม่ได้รับการจัดการอย่างถูกต้อง สัญญาณที่ข้ามโดเมนจะเผชิญกับสภาวะ Metastability ซึ่งเป็นปรากฏการณ์ทางกายภาพที่ Flip-Flop ปลายทางไม่สามารถตัดสินใจระดับสถานะตรรกะ (Logic level) เป็น '0' หรือ '1' ที่เสถียรได้ทันเวลา ส่งผลให้เกิดค่าสถานะกึ่งกลาง (Undefined state) ไหลเข้าสู่ระบบตรรกะส่วนปลาย และก่อให้เกิดความล้มเหลวในการทำงานแบบสุ่ม (Random System Crash) ซึ่งยากต่อการจำลองและตรวจจับด้วยวิธีทดสอบทั่วไป

ทำไมต้องมี CDC Lint Analysis?
การทำ RTL Simulation แบบดั้งเดิมไม่สามารถตรวจพบปัญหา CDC ได้อย่างน่าเชื่อถือ เนื่องจากเครื่องมือจำลองมักสมมติให้เวลาในการเปลี่ยนสถานะเป็นไปตามอุดมคติ (Ideal Timing) การทำ CDC Linting หรือ Structural CDC Analysis จึงเป็นกระบวนการตรวจสอบโครงสร้างสเตติก (Static Verification) ขั้นแรกที่สำคัญที่สุด เพื่อวิเคราะห์หาจุดบกพร่องในสถาปัตยกรรม (Structural Flaws) ก่อนที่การออกแบบจะเข้าสู่กระบวนการสังเคราะห์วงจร (Synthesis) เพื่อป้องกันความล้มเหลวหลังการผลิต (Silicon Failure) ที่ต้องเสียค่าใช้จ่ายมหาศาลในการแก้ไข
📍 CAREER ROADMAP CONTEXT
STAGE 02 — DIGITAL DESIGN & HDL: RTL Design & Hardware Description
เขียน RTL ด้วย Verilog/SystemVerilog — FSM, pipeline, CDC (Clock Domain Crossing), reset strategy, coding style ที่ synthesis-friendly
Tools: Cadence NC-Sim / Synopsys VCS, ModelSim/Questa
Related: Verilog / SystemVerilog RTL · VHDL · FSM & Pipeline Design
Path: IC Design Engineer

02 หลักการพื้นฐาน

หัวใจสำคัญทางฟิสิกส์ของการเกิด Metastability ในวงจรดิจิทัลเชื่อมโยงโดยตรงกับเงื่อนไขเวลาในการบันทึกข้อมูลของ Flip-Flop (FF) กล่าวคือ สัญญาณข้อมูล (Data Input) จะต้องเสถียรก่อนขอบขาขึ้นของสัญญาณนาฬิกาเป็นเวลาไม่น้อยกว่า Setup Time ($t_{su}$) และต้องคงอยู่หลังจากขอบขาขึ้นเป็นเวลาไม่น้อยกว่า Hold Time ($t_h$) พื้นที่เวลาที่ห้ามไม่ให้สัญญาณข้อมูลเปลี่ยนแปลงนี้เรียกว่า Aperture Window ($T_w$)

เมื่อสัญญาณเปลี่ยนสถานะภายในช่วง Aperture Window ของ Clock ปลายทาง Flip-Flop จะไม่สามารถสะสมพลังงานได้เพียงพอในการขับขี่เกทลอจิกภายในให้ตกลงไปยังสถานะ '0' หรือ '1' ส่งผลให้แรงดันเอาต์พุตค้างอยู่ที่ระดับกึ่งกลาง (Metastable state) ก่อนที่สัญญาณจะค่อยๆ สลายตัว (Decay) เข้าสู่สถานะที่เสถียร ความน่าเชื่อถือของระบบในการต้านทานปัญหานี้สามารถวัดเชิงสถิติได้ด้วยค่า Mean Time Between Failures (MTBF) ซึ่งคำนวณจากสูตรพื้นฐานดังต่อไปนี้:

$MTBF = \frac{e^{(t_r / \tau)}}{T_w \cdot f_{clk} \cdot f_{data}}$

โดยมีคำอธิบายตัวแปรดังนี้:

  • $t_r$ (Settling Time): คือระยะเวลาเพิ่มเติมนอกเหนือจาก Setup Time ที่ระบบอนุญาตให้สัญญาณข้ามโดเมนสลายสถานะ Metastable ก่อนจะถูกแซมเปิลในสเตจถัดไป
  • $\tau$ (Resolution Time Constant): คือค่าคงที่เวลาเฉพาะของเทคโนโลยีทรานซิสเตอร์ (Technology node constant) ซึ่งบ่งบอกว่า Flip-Flop นั้นๆ สามารถสลายสภาวะ Metastable ได้เร็วเพียงใด
  • $T_w$ (Metastability Window): หน้าต่างเวลาวิกฤตที่หากสัญญาณข้อมูลเปลี่ยนในช่วงนี้จะเกิด Metastability แน่นอน
  • $f_{clk}$: ความถี่ของสัญญาณนาฬิกาปลายทาง (Destination clock frequency)
  • $f_{data}$: ความถี่ในการเปลี่ยนสถานะของสัญญาณข้อมูล (Data transition frequency)

จากสมการจะเห็นได้ว่า วิธีที่มีประสิทธิภาพที่สุดในการเพิ่มค่า MTBF (ซึ่งหมายถึงความน่าเชื่อถือของชิปที่สูงขึ้น) คือการเพิ่มเวลาสลายตัว $t_r$ ซึ่งทำได้โดยการใช้ Multi-Flop Synchronizer (เช่น 2-stage หรือ 3-stage FF) ในการกักและชะลอสัญญาณเพื่อให้เวลาในการสลายสถานะแบบ Exponential สัมฤทธิ์ผล อย่างไรก็ตาม วิธีนี้ใช้ได้กับสัญญาณควบคุมแบบ 1 บิตเท่านั้น สำหรับข้อมูลหลายบิต (Multi-bit Bus) การใช้ Multi-flop แยกแต่ละบิตจะก่อให้เกิดปัญหา Data Skew เนื่องจากความล่าช้าในสายสัญญาณที่ไม่เท่ากัน ส่งผลให้ข้อมูลบางบิตเปลี่ยนสถานะก่อนบิตอื่นและทำให้อีกโดเมนอ่านค่าบิดเบือนไป (Data Incoherency) จึงต้องใช้การเข้ารหัสแบบ Gray Code ร่วมกับ Asynchronous FIFO หรือ Handshake Protocol แทน

03 วิธีการและเทคนิค

กระบวนการตรวจสอบและออกแบบ CDC ในอุตสาหกรรมเซมิคอนดักเตอร์มีขั้นตอนการทำงาน (Design & Verification Flow) ที่เข้มงวด ดังนี้:

  1. การกำหนดข้อกำหนดลอจิกและ SDC Setup: วิศวกรต้องกำหนดความสัมพันธ์ของ Clock ทั้งหมดในระบบผ่านไฟล์ Synopsys Design Constraints (SDC) โดยแบ่งประเภทของ Clock ออกเป็นกลุ่มที่ Synchronous กัน และกลุ่มที่ Asynchronous กัน (โดยใช้คำสั่ง set_clock_groups -asynchronous) รวมถึงการนิยามสัญญาณควบคุม Reset และสภาวะการทำงานต่างๆ
  2. การทำ Structural CDC Analysis (CDC Linting): เครื่องมือจะอ่าน RTL Code ร่วมกับไฟล์ SDC เพื่อวาดแผนผังทรานสิชันทั้งหมดและแยกแยะประเภทของ CDC Crossing โดยเครื่องมือจะตรวจสอบโครงสร้างลอจิกว่ามีการใส่ Synchronizer อย่างถูกต้องในทุกๆ Path ที่ข้ามโดเมนหรือไม่ สัญญาณเตือนหลักที่วิศวกรต้องทำการตรวจสอบและแก้ไข ได้แก่:
    • Unsynchronized CDC Path: มีการต่อข้ามโดเมนตรงๆ โดยไม่มี Synchronizer คั่น
    • CDC Convergence: สัญญาณจากต่างโดเมนหลายเส้นวิ่งเข้ามาประมวลผลลอจิกเดียวกันในโดเมนปลายทาง ซึ่งเสี่ยงต่อการเกิด Glitch
    • Re-convergence of synchronized signals: สัญญาณจากโดเมนต้นทางถูกส่งข้ามโดเมนผ่าน Synchronizer แยกกัน แล้วกลับมารวมกันในโดเมนปลายทาง ซึ่งจะก่อให้เกิดปัญหาค่าความต่างของเฟสและการทำงานผิดเพี้ยน
  3. การตรวจสอบ Protocol Verification: สำหรับจุดเชื่อมต่อข้อมูลที่ซับซ้อน เช่น Asynchronous FIFO หรือ Handshake interface เครื่องมือจะถูกตั้งค่าให้วิเคราะห์ความสมบูรณ์ของโปรโตคอล เพื่อตรวจหาจุดบกพร่องว่าขนาดของ FIFO เหมาะสมหรือไม่ หรือจังหวะการทำ Handshake สอดคล้องกันหรือไม่
  4. CDC Sign-off: ก่อนการสังเคราะห์วงจร (Synthesis) ไปยังเป้าหมายเทคโนโลยี รายงานจากเครื่องมือ CDC Lint จะต้องได้รับการวิเคราะห์และแก้ไขจนกระทั่งปราศจาก Error (Zero violation) หรือมีการใส่คำสั่งยกเว้น (Waiver annotation) เฉพาะจุดที่วิศวกรยืนยันในความปลอดภัยเชิงโครงสร้างแล้วเท่านั้น

04 เทคนิคขั้นสูง

ในยุคที่เทคโนโลยีการผลิตลดขนาดลงสู่ระดับต่ำกว่า 5 นาโนเมตร (Sub-5nm FinFET & Gate-All-Around) ความท้าทายในการจัดการ CDC ทวีความรุนแรงขึ้นอย่างก้าวกระโดด อันเนื่องมาจากผลกระทบทางกายภาพระดับนาโนเมตร:

  • Crosstalk และ Jitter: ระยะห่างระหว่างสายสัญญาณ (Interconnect pitch) ที่แคบลงอย่างมากทำให้เกิดค่าความจุไฟฟ้าปรสิตเหนี่ยวนำร่วม (Parasitic Coupling Capacitance) ส่งผลให้สัญญาณนาฬิกาเกิดความแปรปรวนของช่วงเวลาขอบขา (Clock Jitter) และสัญญาณรบกวน (Crosstalk) ซึ่งส่งผลโดยตรงให้หน้าต่าง Aperture Window ($T_w$) ขยายกว้างขึ้น และทำให้อัตราความล้มเหลวเชิงลอจิกเพิ่มสูงขึ้น
  • Dynamic Voltage and Frequency Scaling (DVFS): ชิปยุคใหม่มีการปรับเปลี่ยนความถี่และระดับแรงดันของระบบแบบไดนามิกเพื่อการประหยัดพลังงาน สถาปัตยกรรม CDC จึงต้องทนทานต่อการเปลี่ยนรูปความถี่แบบทันทีทันใด การวิเคราะห์แบบ Static จึงไม่เพียงพออีกต่อไป วิศวกรจึงต้องประยุกต์ใช้ Formal CDC Verification ซึ่งเป็นเครื่องมือวิเคราะห์เชิงคณิตศาสตร์เชิงสัญลักษณ์ (Mathematical Logic Proofs) เพื่อตรวจสอบเสถียรภาพของสถานะในทุกกรณีความเป็นไปได้โดยไม่ต้องรัน Testbench ยาวนาน
  • Multi-Power Domain integration: การประยุกต์ใช้แนวทางพลังงานต่ำ (Low-Power Design) ตามมาตรฐาน UPF (Unified Power Format) หรือ CPF (Common Power Format) ทำให้ชิปมีหลาย Power Domain สัญญาณข้าม Clock Domain ที่ต้องข้ามขอบเขต Power Domain ด้วย จะต้องได้รับการใส่ Isolation Cell และ Level Shifter ให้สัมพันธ์กับตำแหน่งของ Synchronizer Cell อย่างถูกต้อง เพื่อป้องกันไม่ให้กระแสไฟรั่วไหล (Leakage Current) หรือเกิดสถานะลอยตัว (Floating nodes) ในวงจร
เทคนิค CDC-Aware Synthesis
ในกระบวนการสังเคราะห์วงจรรุ่นใหม่ (Logic Synthesis) เครื่องมือ EDA จะใช้เทคนิค CDC-Aware Synthesis ในการระบุตำแหน่งโครงสร้าง Synchronizer ที่เขียนไว้ใน RTL โดยอัตโนมัติ เพื่อป้องกันไม่ให้ตัวแปลงวงจร (Synthesizer) ไปทำ Optimization หรือยุบรวมลอจิก (Logic Optimization) จนทำให้โครงสร้างความปลอดภัยของ Multi-stage FF สูญเสียไป หรือเกิดระยะห่างทางกายภาพของ FF ปลายทางที่ห่างกันเกินไปบนผังชิป (Placement)

05 เครื่องมือและอุปกรณ์

สำหรับการทำ CDC Verification และ Linting ในอุตสาหกรรมจะใช้เครื่องมือมาตรฐานระดับสูงของบริษัทผู้ผลิต EDA ระดับสากลเป็นหลัก ได้แก่:

  • Synopsys SpyGlass CDC: เครื่องมืออันดับหนึ่งที่ได้รับความนิยมอย่างแพร่หลายในอุตสาหกรรมสำหรับการวิเคราะห์ Structural CDC และเป็นจุดเช็คพอยต์หลักสำหรับการทำ Linting ตรวจหาข้อผิดพลาดตั้งแต่ขั้นตอนเขียน RTL ก่อนรัน Simulation ขนาดใหญ่
  • Cadence JasperGold CDC: โดดเด่นด้วยการผสมผสานสถาปัตยกรรม Formal Verification เข้ากับกระบวนการวิเคราะห์เชิงโครงสร้าง สามารถค้นหาบั๊กที่เป็น Edge-case ยากๆ ที่การจำลองปกติเข้าไม่ถึง และช่วยวิเคราะห์ Protocol พฤติกรรมของ Handshake สัญญาณได้อย่างแม่นยำ
  • Siemens EDA Questa CDC (และ Questa AutoCheck): เครื่องมือประสิทธิภาพสูงที่ช่วยให้วิศวกรสามารถจำลองพฤติกรรม Metastability แบบไดนามิกได้ โดยใช้ฟังก์ชันกระตุ้นการรบกวนเวลาแบบสุ่ม (Dynamic Metastability Injection) ลงใน Gate-Level Simulation (GLS) เพื่อสังเกตผลกระทบเชิงระบบ

นอกจากนี้ ในขั้นตอนการทำ Dynamic Verification จะมีเครื่องมือจำลองประสิทธิภาพสูงเช่น Synopsys VCS และ Cadence Xcelium ทำหน้าที่รันเทสท์เบนช์ (Testbench) ที่ออกแบบมาเพื่อสุ่มค่าความต่างของขอบสัญญาณนาฬิกา (Clock Skew Randomization) เพื่อจำลองสภาพการข้ามโดเมนที่แปรผันในสภาพแวดล้อมจริง

06 การประยุกต์ใช้ในอุตสาหกรรม

ในแง่ของอุตสาหกรรมการผลิตและการประยุกต์ใช้งานจริง โรงหล่อเซมิคอนดักเตอร์ระดับโลกอย่าง TSMC, Samsung Foundry และ Intel Foundry Services มีข้อกำหนดมาตรฐานที่ชัดเจนสำหรับการรับส่งไฟล์ออกแบบเพื่อส่งผลิต (Tape-out) โดยกำหนดให้รายงานผลการรัน CDC Sign-off ด้วยเครื่องมือที่ได้รับการยอมรับ เป็นส่วนหนึ่งของเอกสารตรวจสอบการส่งมอบงาน (Design Sign-off Checklist) ควบคู่กับรายงาน DRC (Design Rule Check) และ STA (Static Timing Analysis)

ความสำคัญต่อต้นทุนการผลิตนั้นสูงมาก เนื่องจากหากเกิดข้อผิดพลาดด้าน CDC แม้เพียงจุดเดียว (เช่น บิตข้อมูลล้มเหลวจากการอ่านค่าที่ไม่ได้ทำ Synchronize ในส่วนควบคุมอินเทอร์เฟซหลัก) ชิปดังกล่าวจะเกิดสภาวะลัดวงจรเชิงลอจิกและทำงานไม่ได้หลังผ่านการผลิต (Post-Silicon Fail) การแก้ไขปัญหาดังกล่าวหลังจากได้เวเฟอร์จริงแล้ว จะต้องย้อนกลับไปทำขั้นตอนการออกแบบและการมาสก์หน้าสัมผัสขั้วเชื่อมใหม่ (Re-spin / Mask modification) ซึ่งใช้เวลาเพิ่มเติมไม่น้อยกว่า 3 ถึง 6 เดือน และมีค่าใช้จ่ายตั้งแต่หนึ่งล้านไปจนถึงสิบล้านเหรียญสหรัฐสำหรับระดับเทคโนโลยีขั้นสูง

ยิ่งไปกว่านั้น ในตลาดยานยนต์อัจฉริยะ (Automotive SoC) และอุปกรณ์ทางการแพทย์ ซึ่งมีความเข้มงวดด้านความปลอดภัยภายใต้มาตรฐาน ISO 26262 (ASIL-D) และ AEC-Q100 การออกแบบโครงสร้าง CDC จะต้องได้รับการตรวจสอบความน่าเชื่อถืออย่างเข้มงวดเป็นสองเท่า มีการคำนวณสถิติความล้มเหลวจากอัตราความล้มเหลวต่อเวลา (Failures in Time - FIT) และต้องมีสถาปัตยกรรมความปลอดภัยสำรอง (Fail-Safe redundant CDC) เพื่อป้องกันไม่ให้สัญญาณรบกวนจากรังสีหรืออุณหภูมิภายนอกเหนี่ยวนำให้เกิดความล้มเหลวขณะขับขี่