---
# System prepended metadata

title: 2025 年「資訊科技產業專案設計」作業 3

---

# 2025 年[「資訊科技產業專案設計」](https://hackmd.io/@sysprog/info2025-homework3)作業 3
## 相關領域
數位IC設計 數位IC驗證 實體設計


## [履歷 (Resume)](https://drive.google.com/file/d/1DXPddHXwvcHQM972ncsP7P6aOijWsG2G/view?usp=sharing)

## 工作描述 (JD)
:::info
#### 高通 Qualcomm: High-Speed Interface Micro-Architect & RTL Engineer
\*博通、輝達、聯發科也有較多類似職缺
![image](https://hackmd.io/_uploads/SJU7NNKbWe.png)

|要求|自我評估|
|-|-|
|**SerDes** / DDR / Die-to-die / ADC / DAC 等 Mixed-Signal IP 的數位邏輯 |$\times$:沒有課可以修，可能要靠實習或 certificate|
|Microarchitecture (not only RTL)|$$\checkmark$$|
|ASIC Flow 工具|$\checkmark$: 數位設計部分</br>$\times$: 實體及類比部分|

:::
:::info
#### 瑞昱：高效能運算(HPC)前端設計資深工程師
![image](https://hackmd.io/_uploads/rkCVqNYZZg.png)
|要求|自我評估|
|-|-|
|DFT經驗|$$\times$$: 可能要在未來的課程 projects 中強調可測試的部分|
|Low-power design|$\times$: 可以修課|
:::
:::info
#### 輝達 NVIDIA: Senior ASIC Design Engineer, Clocks
![image](https://hackmd.io/_uploads/B1L_lHKZ-l.png)
|要求|自我評估|
|-|-|
|英語能力|$\checkmark$: 聽讀</br>$\times$: 說寫，需要有證書|
|Script Languages|$\checkmark$ tcl|
|製程的課題 (sub-micron silicon issues like noise, cross-talk, and OCV effects)|$\times$: 需要「xx半導體xx製程」等相關課程|
:::
## 列出面試題目

### 問答
|Interviewer|Interviewee|
|-|-|
|請說明你對 IC 設計流程的理解？|IC 設計流程可以分成前端與後端兩部分。前端是從 RTL、模擬驗證、Lint/CDC，到合成為止，主要確保功能正確、架構清楚、邏輯能被實現；後端則負責 floorplan、placement、routing、CTS、STA 與實體檢查，要確保同一份邏輯在實體晶片上能跑得動、符合 timing、也符合design rules。我過去在做 CPU/SoC 相關設計時，常會把前後端的 timing 結果對照，理解為什麼 RTL 的某些結構特別容易成為 critical path，這也是我覺得前後端必須互相理解的原因。|
|D flip-flop 的 hold time 和 setup time 是什麼？|Setup time 是資料在 clock edge 前需要穩定的時間，而 hold time 是 clock edge 之後資料不能太快變化的時間。實際上 setup 通常在較長的 datapath 看到，而 hold 常出現在較短的datapath 或 clock skew 特別明顯的位置。我過去遇過某些 CDC 的 handshake，在跑 RTL 正常，但在高頻率 post-sim 時會報 error，最後發現就是由於 hold violation 與 skew 共同造成 jitter。|
|請解釋 Cache 的運作原理，以及 Write Through 與 Write Back 的差異？|Cache 本質上就是 CPU 與 DRAM 之間的高速緩衝，透過 locality 來降低記憶體存取延遲。Write Through 每次寫都會觸發後端存取，穩定但效能明顯不如 Write Back；Write Back 則只在 eviction 時寫回 main memory，因此吞吐量比較高，但需要管理 dirty bit，也比較容易遇到 coherency 行為。|
|你如何處理跨部門衝突？|我處理跨部門衝突的方式是客觀看待問題。以前在整合高頻接口時，常會看到設計、驗證、後端都站在自己的角度講 timing 或 latency，我通常會準備相關資料：實際波形、STA path、PPA 數據、simulation log 等，先客觀看問題。|
|遇到不熟領域（像封裝）你如何補強？|我補強新領域的方式是先有一張心智圖。像是研究封裝時，我會先掌握最核心的框架，例如 routing 限制、差分阻抗、crosstalk 等，再針對自己會實際遇到的情境做深入，例如了解 SerDes channel 的 loss、package trace 的 RC、lane 間 coupling 的來源與 mitigation 方法。我也會快速看 application note 和 vendor guide，必要時請教有經驗的同事。|
|你 debug 過最困難的問題是什麼？|我遇過最困難的問題，是一個 CDC 的資料傳輸在高速下報了錯誤，但 RTL 模擬完全看不到，post-layout 模擬也不明顯。我把問題拆成 timing、CDC、protocol 三個角度，逐一排除：先用 STA 找出 hold 風險路徑，再用 formal 驗證 handshake 是否可能產生 race condition，最後才發現是由於某一 corner 的 skew 偏移，使 valid/ready 在 clock boundary 上產生 race condition。後來重新插入 synchronizer 並調整 retiming 自動化後才完全解決。我才知道複雜問題通常是很多細小偏差所導致。|
|你有沒有提升流程自動化的經驗？|有。在整合與驗證流程中，我常看到一些手動操作非常容易出錯，例如整理 regression log、合併 waveform、跑 lint 或產生 testlist，所以我會先觀察整個流程的 pattern，再把流程拆成可以自動化的部分，最後用 Python 或 TCL 自動化。後來把 regression 結果統一輸出成結構化表格，讓設計與 DV 都能快速定位問題。|
