RTL 設計師面試攻略 (芯片從設計到交付的全流程)
孫健//魏東
- 出版商: 科學出版
- 出版日期: 2026-01-01
- 售價: $408
- 語言: 簡體中文
- 頁數: 187
- ISBN: 7030838211
- ISBN-13: 9787030838216
-
相關分類:
VLSI
- 此書翻譯自: Crack the Hardware Interview - from RTL Designers' Perspective: Architecture and Micro-architecture Design
尚未上市,歡迎預購
買這商品的人也買了...
-
半導體元件, 7/e (Streetman: Solid State Electronic Devices, 7/e)
$720$706 -
深度學習 (Deep Learning)(繁體中文版)$1,200$948 -
用於集成電路模擬和設計的 FinFET 建模 — 基於 BSIM-CMG 標準$594$564 -
高速數字接口與光電測試$1,068$1,015 -
$454Verilog HDL 設計實例手冊 -
輕鬆學量子程式設計|從量子位元到量子演算法$520$411 -
半導體製程與整合$620$608 -
$352數字集成電路設計 -
信息論與編碼, 4/e$294$279 -
專用集成電路低功耗入門:分析、技術和規範$534$507 -
SystemVerilog 硬件設計:RTL 設計和驗證$468$445 -
高級 HDL 綜合和 SoC 原型設計$468$445 -
$659打通 Linux 操作系統和芯片開發 -
深入探索 Mamba 模型架構與應用$714$678 -
$611AI 處理器硬件架構設計 -
$959深度學習:基礎與概念 -
Verilog HDL 計算機網絡典型電路算法設計與實現$354$336 -
RISC-V 架構 DSP 處理器設計$534$507 -
矽後驗證與調試$528$502 -
芯片形式化驗證原理、方法與實戰$594$564 -
大模型核心技術與應用 (微課視頻版)$474$450 -
智能醫學影像處理方法$375$356 -
$768通義千問:大模型架構與智能體開發實戰(基於 QwQ-32B 開源模型) -
$359數字芯片後端設計基礎與實踐(微課版) -
$720模式識別與機器學習
相關主題
商品描述
本書從RTL設計師視角出發,系統梳理 ASIC/VLSI行業標準工作流程中的關鍵知識與面試 要點,通過分享行業經驗與獨特視角,幫助讀者理 解企業所需技能,提升面試競爭力,斬獲心儀職位 。全書分為三大部分: 部分圍繞架構與微架構 展開,涵蓋CPU流水線、CPU亂序調度、虛擬內存和 TLB、緩存一致性、FIFO、CDC、LRU算法、重排序 、仲裁器、數字分頻器、算術邏輯設計、序列產生 器等;第二部分聚焦驗證、實現、綜合與功耗,詳 細講解設計驗證、形式驗證、CDC檢查、RDC檢查、 ECO流程等;第三部分涉及物理設計和芯片調試,包 括STA、SDC、時序ECO等;同時在末尾分享行為類 問題及實用面試建議等。
目錄大綱
第一部分 架構與微架構
第1章 架構與原型 2
1.1 CPU流水線 2
【問題1】MIPS五級流水線是什麼樣的? 2
【問題2】流水線冒險及解決方案——基於MIPS五級流水線的案例分析 4
【問題3】能否任意增加CPU流水線的深度? 6
【問題4】如何實現基於硬件的分支預測? 7
1.2 CPU亂序調度 9
【問題5】Tomasulo算法如何工作? 9
【問題6】Tomasulo算法中如何處理內存引起的數據依賴? 11
【問題7】如何通過內存處理數據依賴? 12
【問題8】如何在Tomasulo算法中實現基於硬件的推測以最小化控制冒險? 16
1.3 虛擬內存和TLB 19
【問題9】使用虛擬內存有哪些好處? 19
【問題10】虛擬地址如何轉換? 19
【問題11】為什麼需要TLB? 20
【問題12】如何處理TLB 缺失? 21
【問題13】如何處理缺頁異常? 21
1.4 精確中斷的實現 21
【問題14】什麼是精確中斷?什麼是非精確中斷? 21
【問題15】如何實現精確中斷? 22
1.5 緩存 25
【問題16】為什麼需要緩存? 25
【問題17】什麼是緩存沖突? 27
【問題18】緩存中的讀/寫/替換策略是什麼? 27
【問題19】如何衡量緩存性能? 29
【問題20】為什麼緩存增大後性能沒有提升? 30
【問題21】用虛擬地址訪問緩存會有什麼問題? 30
【問題22】根據索引位和標簽(tag)位,緩存有哪些類型? 31
1.6 緩存一致性 33
【問題23】什麼是NUMA/UMA架構? 33
【問題24】什麼是緩存一致性? 34
【問題25】如何實現緩存一致性? 34
【問題26】你能展示基於偵聽的MSI 協議狀態轉換嗎? 35
【問題27】什麼是MESI/MEOSI/MEOFSI協議? 37
【問題28】如何為MESI協議實現主目錄? 38
1.7 通用片上總線協議 39
【問題29】能描述一下APB協議的工作原理嗎? 39
【問題30】能描述一下AHB協議的工作原理嗎? 42
【問題31】能描述一下AXI協議的工作原理嗎? 44
【問題32】為什麼AXI和AHB 協議提供回環突發傳輸? 45
【問題33】AXI協議中通道之間有哪些依賴關系? 46
【問題34】如何強制AXI寫通道和讀通道間的順序? 46
【問題35】AXI協議中的獨占訪問是什麼? 47
第2章 微架構設計 48
2.1 Verilog語法與原語 48
【問題36】阻塞賦值與非阻塞賦值有什麼區別? 48
【問題37】如何檢測和解決與X相關的RTL 問題? 48
【問題38】casex、casez和case-inside有什麼區別? 49
【問題39】使用SystemVerilog的signed數據類型時需要註意什麼? 50
【問題40】“===”和“==”有什麼區別? 51
【問題41】什麼是delta 仿真時間? 51
【問題42】什麼是通用邏輯門? 52
2.2 握手協議 54
【問題43】什麼是valid-ready協議? 54
【問題44】什麼是valid-ready切片? 54
【問題45】如何將4 相req-ack協議轉換為valid-ready協議? 57
【問題46】如何將valid-ready協議轉換為4相req-ack協議? 57
2.3 FIFO 58
【問題47】如何設計基於觸發器的非2 次冪深度的同步FIFO? 58
【問題48】如何設計一個支持2 次寫入1 次讀取的基於觸發器的同步FIFO 58
【問題49】如何基於雙端口SRAM設計同步FIFO? 59
【問題50】如何設計基於觸發器的異步FIFO? 62
【問題51】如何設計一個非2 次冪偶數深度的異步FIFO 62
【問題52】設計一個基於SRAM 的異步FIFO 62
2.4 跨時鐘域(CDC) 63
【問題53】什麼是亞穩態? 63
【問題54】什麼是MTBF?為什麼同步器能處理CDC 問題? 63
【問題55】傳輸脈沖信號時有哪些常見的CDC 註意事項? 64
【問題56】傳輸多比特信號時有哪些常見的CDC 註意事項? 64
2.5 LRU算法 65
【問題57】如何實現真正的LRU 算法? 65
【問題58】如何實現偽LRU? 66
2.6 重排序 67
【問題59】支持有序讀響應功能的內存控制器設計(Ⅰ) 67
【問題60】支持有序讀響應功能的內存控制器設計(Ⅱ) 69
2.7 查找表 69
【問題61】使用一維LUT(查找表)實現y = f(x) 函數 69
【問題62】使用二維查找表實現z = f(x, y) 函數 71
2.8 仲裁器 72
【問題63】設計一個固定優先級仲裁器 72
【問題64】設計一個輪詢仲裁器 72
【問題65】設計一個基於優先級的仲裁器 73
2.9 數字分頻器 74
【問題66】實現任意整數N 的分頻器(無占空比要求) 74
【問題67】實現2N 分頻器(50% 占空比) 74
【問題68】實現2N 分頻器(50% 占空比) 74
【問題69】實現(2N+1) 分頻器(50% 占空比) 75
2.10 算術邏輯設計 76
【問題70】設計一個簡單的ALU 並繪制其邏輯框圖 76
【問題71】如何實現w = 3/2x+1/4y+z? 77
【問題72】如何實現BCD 碼的乘以5 運算? 77
【問題73】如何實現整數除法器? 78
【問題74】用兩個16 位加法器構建一個2 周期延遲的32 位加法器 79
【問題75】用兩個16 位加法器構建一個2 周期延遲的32 位累加器 79
2.11 序列產生器和檢測器80
【問題76】序列產生器 80
【問題77】設計一個電路用於檢測一個輸入是否為另一個輸入的延遲版本 80
【問題78】設計一個檢測序列1(01)*1 的電路 81
【問題79】3 位回文序列檢測器 82
【問題80】判斷一個無限序列是否是5 的倍數 82
【問題81】設計一個可編程序列檢測器 84
2.12 查找 85
【問題82】在字節數組中從LSB 開始查找第一個1 的索引位置 85
【問題83】在一個16 位數組中從最低有效位(LSB)開始查找第一個1 的索引位置 85
【問題84】在深度為8、寬度為1 位的FIFO 中查找最近一次寫入的1 的索引位置 86
【問題85】在排序數組中找到最接近給定數字的索引(Ⅰ) 87
【問題86】在排序數組中找到最接近給定數字的索引(Ⅱ) 88
第二部分 驗證、實現、綜合與功耗以及前端設計檢查表
第3章 驗證 90
3.1 設計驗證 90
【問題87】什麼是約束隨機回歸測試?為什麼約束檢查很重要? 90
【問題88】如何驗證輪詢仲裁器的公平性? 90
【問題89】為自動售貨機設計編寫測試計劃 91
【問題90】什麼是代碼覆蓋率? 92
【問題91】什麼是功能覆蓋率?如何寫功能覆蓋率? 92
3.2 形式驗證 94
【問題92】什麼是形式驗證(FV)?它與動態驗證(DV)有何不同? 94
【問題93】FV 的優缺點是什麼? 95
【問題94】什麼是即時斷言?什麼是並發斷言? 95
【問題95】什麼是交疊蘊含?什麼是非交疊蘊含? 96
【問題96】什麼是形式化屬性驗證(FPV)? 97
【問題97】如果FPV 無法實現完全驗證怎麼辦? 98
【問題98】什麼是形式化等價性驗證(FEV)? 99
第4章 實現、綜合與功耗 101
4.1 代碼規範檢查 101
【問題99】在代碼檢查中,最關鍵的錯誤有哪些? 101
4.2 CDC檢查 101
【問題100】如何在CDC檢查中定義CDC/SGDC約束? 101
4.3 覆位域交叉(RDC)檢查 103
【問題101】同步覆位與異步覆位的區別何在? 103
【問題102】RDC檢查功能具體有什麼作用呢? 104
【問題103】常見的RDC技術/方案有哪些? 105
4.4 綜 合 106
【問題104】什麼是線負載模型下的綜合?什麼是合理性綜合? 106
【問題105】什麼是拓撲綜合/生成式綜合? 106
【問題106】運行綜合之前的基本設置有哪些?如何執行set_app_var以及創建Milkyway設計庫? 107
【問題107】什麼是DC的綜合流程?能否編寫一個簡單的DC綜合腳本? 108
【問題108】進行綜合分析前需檢查哪些內容? 112
【問題109】DC 綜合優化的常用技術有哪些? 112
4.5 邏輯等價性檢查(LEC) 114
【問題110】什麼是LEC?我們為什麼要進行LEC? 114
【問題111】LEC 的流程是怎樣的?又是如何開展關鍵點映射的? 115
4.6 ECO流程 117
【問題112】什麼是 ECO?為什麼需要ECO? 117
【問題113】功能ECO的流程是什麼? 117
4.7 功 耗 119
【問題114】什麼是靜態功耗、動態功耗以及短路損耗功耗? 119
【問題115】如何降低靜態功耗、動態功耗以及短路損耗功耗? 120
【問題116】在功耗敏感型設計中,為何需要隔離單元? 121
【問題117】隔離單元有多少種類型? 122
【問題118】時鐘門控單元的結構是怎樣的? 122
【問題119】SRAM 有哪些功耗狀態? 125
第5章 前端設計檢查清單 128
第三部分 物理設計和芯片調試
第6章 物理設計 134
6.1 靜態時序分析(STA) 134
【問題120】STA與亞穩態有何關系? 134
【問題121】STA是做什麼的?“同步”意味著什麼? 134
【問題122】什麼是建立時間和保持時間? 135
【問題123】什麼是建立時間約束和保持時間約束? 135
【問題124】采用半周期路徑的益處何在? 137
【問題125】時鐘設計裕量的來源有哪些? 138
【問題126】STA如何檢查覆位移除時間與恢覆時間、時鐘門控單元及
數據到數據的時序? 139
【問題127】STA是如何驗證異步FIFO 功能的? 141
【問題128】STA如何對基於鎖存器的設計進行檢查? 141
【問題129】在STA中,多周期路徑(MCP)是如何工作的? 144
6.2 Synopsys 設計約束(SDC) 145
【問題130】什麼是設計對象/庫對象?如何訪問和操作這些對象? 145
【問題131】在CTS後的運行階段,如何設置單時鐘設計約束條件? 147
【問題132】在CTS後的運行階段,如何為單時鐘設計設置I/O 約束? 148
【問題133】如何對多同步時鐘設計約束條件進行設置? 150
【問題134】在CTS後的運行階段,如何設置生成時鐘的設計約束? 152
【問題135】如何設置互斥同步時鐘設計約束? 153
【問題136】異步時鐘設計約束該如何設置? 154
【問題137】如何對SDC 進行驗證? 155
6.3 STA工具/PrimeTime156
【問題138】什麼是PrimeTime流程?能編寫一個簡單的PrimeTimeSTA腳本嗎? 156
【問題139】運行PrimeTime之前需要檢查什麼? 158
【問題140】何為基於圖的分析(GBA)以及基於路徑的分析(PBA)? 159
【問題141】什麼是OCV/AOCV/POCV? 160
【問題142】如何運用OCV 方法計算時序裕量? 161
【問題143】在PrimeTime時序報告中,CRPR是什麼? 163
6.4 時序ECO164
【問題144】時序ECO的流程是什麼? 164
【問題145】如何解決建立時間和保持時間違例問題? 165
【問題146】時序ECO工具是什麼? 166
第7章 芯片調試 168
【問題147】常用的可調試性設計(DFD)技術有哪些? 168
【問題148】如何實現校驗和? 173
【問題149】如何實現CRC? 173
【問題150】如何識別32 位寄存器中哪一位存在固定故障? 174
參考文獻 177
附 錄 行為類問題及實用面試建議 179
【問題151】在簡歷中使用哪些動詞可使自身脫穎而出? 179
【問題152】面試禮儀和最佳面試技巧 183
【問題153】在面試尾聲,當被問及“你有什麼問題想問我嗎”該如何作答? 185
【問題154】“感謝信”中應包含哪些內容? 186
【問題155】為何要對求職申請進行跟進,以及應如何跟進? 187
