本書從RTL設(shè)計(jì)師視角出發(fā),系統(tǒng)梳理ASIC/VLSI行業(yè)標(biāo)準(zhǔn)工作流程中的關(guān)鍵知識(shí)與面試要點(diǎn),通過(guò)分享行業(yè)經(jīng)驗(yàn)與獨(dú)特視角,幫助讀者理解企業(yè)所需技能,提升面試競(jìng)爭(zhēng)力,斬獲心儀職位。
全書分為三大部分:第一部分圍繞架構(gòu)與微架構(gòu)展開(kāi),涵蓋CPU流水線、CPU亂序調(diào)度、虛擬內(nèi)存和TLB、緩存一致性、FIFO、CDC、LRU算法、重排序、仲裁器、數(shù)字分頻器、算術(shù)邏輯設(shè)計(jì)、序列產(chǎn)生器等;第二部分聚焦驗(yàn)證、實(shí)現(xiàn)、綜合與功耗,詳細(xì)講解設(shè)計(jì)驗(yàn)證、形式驗(yàn)證、CDC檢查、RDC檢查、ECO流程等;第三部分涉及物理設(shè)計(jì)和芯片調(diào)試,包括STA、SDC、時(shí)序ECO等;同時(shí)在末尾分享行為類問(wèn)題及實(shí)用面試建議等。
更多科學(xué)出版社服務(wù),請(qǐng)掃碼獲取。
2009年4月獲得西北工業(yè)大學(xué)信號(hào)與信息處理專業(yè)碩士學(xué)位西安微電子技術(shù)研究所(中國(guó)航天科技集團(tuán)公司第九研究院771所)微電子學(xué)與固體電子學(xué)、計(jì)算機(jī)科學(xué)與技術(shù)曾發(fā)表《一種面向多核DSP芯片的低功耗驗(yàn)證方法》、《一種RS(24,20)碼編譯碼器設(shè)計(jì)》、《超聲調(diào)制聲頻定向傳播性能研究》、《基于層次化事件隊(duì)列的賦值操作應(yīng)用》等多篇文章,擁有《一種用于低功耗設(shè)計(jì)的可重用仿真驗(yàn)證方法》、《一種用于低功耗設(shè)計(jì)的可重用仿真驗(yàn)證方法》等多項(xiàng)專利
目錄
第一部分 架構(gòu)與微架構(gòu)
第1章 架構(gòu)與原型 2
1.1 CPU流水線 2
【問(wèn)題1】MIPS五級(jí)流水線是什么樣的? 2
【問(wèn)題2】流水線冒險(xiǎn)及解決方案——基于MIPS五級(jí)流水線的案例分析 4
【問(wèn)題3】能否任意增加CPU流水線的深度? 6
【問(wèn)題4】如何實(shí)現(xiàn)基于硬件的分支預(yù)測(cè)? 7
1.2 CPU亂序調(diào)度 9
【問(wèn)題5】Tomasulo算法如何工作? 9
【問(wèn)題6】Tomasulo算法中如何處理內(nèi)存引起的數(shù)據(jù)依賴? 11
【問(wèn)題7】如何通過(guò)內(nèi)存處理數(shù)據(jù)依賴? 12
【問(wèn)題8】如何在Tomasulo算法中實(shí)現(xiàn)基于硬件的推測(cè)以最小化控制冒險(xiǎn)? 16
1.3 虛擬內(nèi)存和TLB 19
【問(wèn)題9】使用虛擬內(nèi)存有哪些好處? 19
【問(wèn)題10】虛擬地址如何轉(zhuǎn)換? 19
【問(wèn)題11】為什么需要TLB? 20
【問(wèn)題12】如何處理TLB 缺失? 21
【問(wèn)題13】如何處理缺頁(yè)異常? 21
1.4 精確中斷的實(shí)現(xiàn) 21
【問(wèn)題14】什么是精確中斷?什么是非精確中斷? 21
【問(wèn)題15】如何實(shí)現(xiàn)精確中斷? 22
1.5 緩存 25
【問(wèn)題16】為什么需要緩存? 25
【問(wèn)題17】什么是緩存沖突? 27
【問(wèn)題18】緩存中的讀/寫/替換策略是什么? 27
【問(wèn)題19】如何衡量緩存性能? 29
【問(wèn)題20】為什么緩存增大后性能沒(méi)有提升? 30
【問(wèn)題21】用虛擬地址訪問(wèn)緩存會(huì)有什么問(wèn)題? 30
【問(wèn)題22】根據(jù)索引位和標(biāo)簽(tag)位,緩存有哪些類型? 31
1.6 緩存一致性 33
【問(wèn)題23】什么是NUMA/UMA架構(gòu)? 33
【問(wèn)題24】什么是緩存一致性? 34
【問(wèn)題25】如何實(shí)現(xiàn)緩存一致性? 34
【問(wèn)題26】你能展示基于偵聽(tīng)的MSI 協(xié)議狀態(tài)轉(zhuǎn)換嗎? 35
【問(wèn)題27】什么是MESI/MEOSI/MEOFSI協(xié)議? 37
【問(wèn)題28】如何為MESI協(xié)議實(shí)現(xiàn)主目錄? 38
1.7 通用片上總線協(xié)議 39
【問(wèn)題29】能描述一下APB協(xié)議的工作原理嗎? 39
【問(wèn)題30】能描述一下AHB協(xié)議的工作原理嗎? 42
【問(wèn)題31】能描述一下AXI協(xié)議的工作原理嗎? 44
【問(wèn)題32】為什么AXI和AHB 協(xié)議提供回環(huán)突發(fā)傳輸? 45
【問(wèn)題33】AXI協(xié)議中通道之間有哪些依賴關(guān)系? 46
【問(wèn)題34】如何強(qiáng)制AXI寫通道和讀通道間的順序? 46
【問(wèn)題35】AXI協(xié)議中的獨(dú)占訪問(wèn)是什么? 47
第2章 微架構(gòu)設(shè)計(jì) 48
2.1 Verilog語(yǔ)法與原語(yǔ) 48
【問(wèn)題36】阻塞賦值與非阻塞賦值有什么區(qū)別? 48
【問(wèn)題37】如何檢測(cè)和解決與X相關(guān)的RTL 問(wèn)題? 48
【問(wèn)題38】casex、casez和case-inside有什么區(qū)別? 49
【問(wèn)題39】使用SystemVerilog的signed數(shù)據(jù)類型時(shí)需要注意什么? 50
【問(wèn)題40】“===”和“==”有什么區(qū)別? 51
【問(wèn)題41】什么是delta 仿真時(shí)間? 51
【問(wèn)題42】什么是通用邏輯門? 52
2.2 握手協(xié)議 54
【問(wèn)題43】什么是valid-ready協(xié)議? 54
【問(wèn)題44】什么是valid-ready切片? 54
【問(wèn)題45】如何將4 相req-ack協(xié)議轉(zhuǎn)換為valid-ready協(xié)議? 57
【問(wèn)題46】如何將valid-ready協(xié)議轉(zhuǎn)換為4相req-ack協(xié)議? 57
2.3 FIFO 58
【問(wèn)題47】如何設(shè)計(jì)基于觸發(fā)器的非2 次冪深度的同步FIFO? 58
【問(wèn)題48】如何設(shè)計(jì)一個(gè)支持2 次寫入1 次讀取的基于觸發(fā)器的同步FIFO 58
【問(wèn)題49】如何基于雙端口SRAM設(shè)計(jì)同步FIFO? 59
【問(wèn)題50】如何設(shè)計(jì)基于觸發(fā)器的異步FIFO? 62
【問(wèn)題51】如何設(shè)計(jì)一個(gè)非2 次冪偶數(shù)深度的異步FIFO 62
【問(wèn)題52】設(shè)計(jì)一個(gè)基于SRAM 的異步FIFO 62
2.4 跨時(shí)鐘域(CDC) 63
【問(wèn)題53】什么是亞穩(wěn)態(tài)? 63
【問(wèn)題54】什么是MTBF?為什么同步器能處理CDC 問(wèn)題? 63
【問(wèn)題55】傳輸脈沖信號(hào)時(shí)有哪些常見(jiàn)的CDC 注意事項(xiàng)? 64
【問(wèn)題56】傳輸多比特信號(hào)時(shí)有哪些常見(jiàn)的CDC 注意事項(xiàng)? 64
2.5 LRU算法 65
【問(wèn)題57】如何實(shí)現(xiàn)真正的LRU 算法? 65
【問(wèn)題58】如何實(shí)現(xiàn)偽LRU? 66
2.6 重排序 67
【問(wèn)題59】支持有序讀響應(yīng)功能的內(nèi)存控制器設(shè)計(jì)(Ⅰ) 67
【問(wèn)題60】支持有序讀響應(yīng)功能的內(nèi)存控制器設(shè)計(jì)(Ⅱ) 69
2.7 查找表 69
【問(wèn)題61】使用一維LUT(查找表)實(shí)現(xiàn)y = f(x) 函數(shù) 69
【問(wèn)題62】使用二維查找表實(shí)現(xiàn)z = f(x, y) 函數(shù) 71
2.8 仲裁器 72
【問(wèn)題63】設(shè)計(jì)一個(gè)固定優(yōu)先級(jí)仲裁器 72
【問(wèn)題64】設(shè)計(jì)一個(gè)輪詢仲裁器 72
【問(wèn)題65】設(shè)計(jì)一個(gè)基于優(yōu)先級(jí)的仲裁器 73
2.9 數(shù)字分頻器 74
【問(wèn)題66】實(shí)現(xiàn)任意整數(shù)N 的分頻器(無(wú)占空比要求) 74
【問(wèn)題67】實(shí)現(xiàn)2N 分頻器(50% 占空比) 74
【問(wèn)題68】實(shí)現(xiàn)2N 分頻器(50% 占空比) 74
【問(wèn)題69】實(shí)現(xiàn)(2N+1) 分頻器(50% 占空比) 75
2.10 算術(shù)邏輯設(shè)計(jì) 76
【問(wèn)題70】設(shè)計(jì)一個(gè)簡(jiǎn)單的ALU 并繪制其邏輯框圖 76
【問(wèn)題71】如何實(shí)現(xiàn)w = 3/2x+1/4y+z? 77
【問(wèn)題72】如何實(shí)現(xiàn)BCD 碼的乘以5 運(yùn)算? 77
【問(wèn)題73】如何實(shí)現(xiàn)整數(shù)除法器? 78
【問(wèn)題74】用兩個(gè)16 位加法器構(gòu)建一個(gè)2 周期延遲的32 位加法器 79
【問(wèn)題75】用兩個(gè)16 位加法器構(gòu)建一個(gè)2 周期延遲的32 位累加器 79
2.11 序列產(chǎn)生器和檢測(cè)器80
【問(wèn)題76】序列產(chǎn)生器 80
【問(wèn)題77】設(shè)計(jì)一個(gè)電路用于檢測(cè)一個(gè)輸入是否為另一個(gè)輸入的延遲版本 80
【問(wèn)題78】設(shè)計(jì)一個(gè)檢測(cè)序列1(01)*1 的電路 81
【問(wèn)題79】3 位回文序列檢測(cè)器 82
【問(wèn)題80】判斷一個(gè)無(wú)限序列是否是5 的倍數(shù) 82
【問(wèn)題81】設(shè)計(jì)一個(gè)可編程序列檢測(cè)器 84
2.12 查找 85
【問(wèn)題82】在字節(jié)數(shù)組中從LSB 開(kāi)始查找第一個(gè)1 的索引位置 85
【問(wèn)題83】在一個(gè)16 位數(shù)組中從最低有效位(LSB)開(kāi)始查找第一個(gè)1 的索引位置 85
【問(wèn)題84】在深度為8、寬度為1 位的FIFO 中查找最近一次寫入的1 的索引位置 86
【問(wèn)題85】在排序數(shù)組中找到最接近給定數(shù)字的索引(Ⅰ) 87
【問(wèn)題86】在排序數(shù)組中找到最接近給定數(shù)字的索引(Ⅱ) 88
第二部分 驗(yàn)證、實(shí)現(xiàn)、綜合與功耗以及前端設(shè)計(jì)檢查表
第3章 驗(yàn)證 90
3.1 設(shè)計(jì)驗(yàn)證 90
【問(wèn)題87】什么是約束隨機(jī)回歸測(cè)試?為什么約束檢查很重要? 90
【問(wèn)題88】如何驗(yàn)證輪詢仲裁器的公平性? 90
【問(wèn)題89】為自動(dòng)售貨機(jī)設(shè)計(jì)編寫測(cè)試計(jì)劃 91
【問(wèn)題90】什么是代碼覆蓋率? 92
【問(wèn)題91】什么是功能覆蓋率?如何寫功能覆蓋率? 92
3.2 形式驗(yàn)證 94
【問(wèn)題92】什么是形式驗(yàn)證(FV)?它與動(dòng)態(tài)驗(yàn)證(DV)有何不同? 94
【問(wèn)題93】FV 的優(yōu)缺點(diǎn)是什么? 95
【問(wèn)題94】什么是即時(shí)斷言?什么是并發(fā)斷言? 95
【問(wèn)題95】什么是交疊蘊(yùn)含?什么是非交疊蘊(yùn)含? 96
【問(wèn)題96】什么是形式化屬性驗(yàn)證(FPV)? 97
【問(wèn)題97】如果FPV 無(wú)法實(shí)現(xiàn)完全驗(yàn)證怎么辦? 98
【問(wèn)題98】什么是形式化等價(jià)性驗(yàn)證(FEV)? 99
第4章 實(shí)現(xiàn)、綜合與功耗 101
4.1 代碼規(guī)范檢查 101
【問(wèn)題99】在代碼檢查中,最關(guān)鍵的錯(cuò)誤有哪些? 101
4.2 CDC檢查 101
【問(wèn)題100】如何在CDC檢查中定義CDC/SGDC約束? 101
4.3 復(fù)位域交叉(RDC)檢查 103
【問(wèn)題101】同步復(fù)位與異步復(fù)位的區(qū)別何在? 103
【問(wèn)題102】RDC檢查功能具體有什么作用呢? 104
【問(wèn)題103】常見(jiàn)的RDC技術(shù)/方案有哪些? 105
4.4 綜 合 106
【問(wèn)題104】什么是線負(fù)載模型下的綜合?什么是合理性綜合? 106
【問(wèn)題105】什么是拓?fù)渚C合/生成式綜合? 106
【問(wèn)題106】運(yùn)行綜合之前的基本設(shè)置有哪些?如何執(zhí)行set_app_var以及創(chuàng)建Milkyway設(shè)計(jì)庫(kù)? 107
【問(wèn)題107】什么是DC的綜合流程?能否編寫一個(gè)簡(jiǎn)單的DC綜合腳本? 108
【問(wèn)題108】進(jìn)行綜合分析前需檢查哪些內(nèi)容? 112
【問(wèn)題109】DC 綜合優(yōu)化的常用技術(shù)有哪些? 112
4.5 邏輯等價(jià)性檢查(LEC) 114
【問(wèn)題110】什么是LEC?我們?yōu)槭裁匆M(jìn)行LEC? 114
【問(wèn)題111】LEC 的流程是怎樣的?又是如何開(kāi)展關(guān)鍵點(diǎn)映射的? 115
4.6 ECO流程 117
【問(wèn)題112】什么是 ECO?為什么需要ECO? 117
【問(wèn)題113】功能ECO的流程是什么? 117
4.7 功 耗 119
【問(wèn)題114】什么是靜態(tài)功耗、動(dòng)態(tài)功耗以及短路損耗功耗? 119
【問(wèn)題115】如何降低靜態(tài)功耗、動(dòng)態(tài)功耗以及短路損耗功耗? 120
【問(wèn)題116】在功耗敏感型設(shè)計(jì)中,為何需要隔離單元? 121
【問(wèn)題117】隔離單元有多少種類型? 122
【問(wèn)題118】時(shí)鐘門控單元的結(jié)構(gòu)是怎樣的? 122
【問(wèn)題119】SRAM 有哪些功耗狀態(tài)? 125
第5章 前端設(shè)計(jì)檢查清單 128
第三部分 物理設(shè)計(jì)和芯片調(diào)試
第6章 物理設(shè)計(jì) 134
6.1 靜態(tài)時(shí)序分析(STA) 134
【問(wèn)題120】STA與亞穩(wěn)態(tài)有何關(guān)系? 134
【問(wèn)題121】STA是做什么的?“同步”意味著什么? 134
【問(wèn)題122】什么是建立時(shí)間和保持時(shí)間? 135
【問(wèn)題123】什么是建立時(shí)間約束和保持時(shí)間約束? 135
【問(wèn)題124】采用半周期路徑的益處何在? 137
【問(wèn)題125】時(shí)鐘設(shè)計(jì)裕量的來(lái)源有哪些? 138
【問(wèn)題126】STA如何檢查復(fù)位移除時(shí)間與恢復(fù)時(shí)間、時(shí)鐘門控單元及
數(shù)據(jù)到數(shù)據(jù)的時(shí)序? 139
【問(wèn)題127】STA是如何驗(yàn)證異步FIFO 功能的? 141
【問(wèn)題128】STA如何對(duì)基于鎖存器的設(shè)計(jì)進(jìn)行檢查? 141
【問(wèn)題129】在STA中,多周期路徑(MCP)是如何工作的? 144
6.2 Synopsys 設(shè)計(jì)約束(SDC) 145
【問(wèn)題130】什么是設(shè)計(jì)對(duì)象/庫(kù)對(duì)象?如何訪問(wèn)和操作這些對(duì)象? 145
【問(wèn)題131】在CTS后的運(yùn)行階段,如何設(shè)置單時(shí)鐘設(shè)計(jì)約束條件? 147
【問(wèn)題132】在CTS后的運(yùn)行階段,如何為單時(shí)鐘設(shè)計(jì)設(shè)置I/O 約束? 148
【問(wèn)題133】如何對(duì)多同步時(shí)鐘設(shè)計(jì)約束條件進(jìn)行設(shè)置? 150
【問(wèn)題134】在CTS后的運(yùn)行階段,如何設(shè)置生成時(shí)鐘的設(shè)計(jì)約束? 152
【問(wèn)題135】如何設(shè)置互斥同步時(shí)鐘設(shè)計(jì)約束? 153
【問(wèn)題136】異步時(shí)鐘設(shè)計(jì)約束該如何設(shè)置? 154
【問(wèn)題137】如何對(duì)SDC 進(jìn)行驗(yàn)證? 155
6.3 STA工具/PrimeTime156
【問(wèn)題138】什么是PrimeTime流程?能編寫一個(gè)簡(jiǎn)單的PrimeTimeSTA腳本嗎? 156
【問(wèn)題139】運(yùn)行PrimeTime之前需要檢查什么? 158
【問(wèn)題140】何為基于圖的分析(GBA)以及基于路徑的分析(PBA)? 159
【問(wèn)題141】什么是OCV/AOCV/POCV? 160
【問(wèn)題142】如何運(yùn)用OCV 方法計(jì)算時(shí)序裕量? 161
【問(wèn)題143】在PrimeTime時(shí)序報(bào)告中,CRPR是什么? 163
6.4 時(shí)序ECO164
【問(wèn)題144】時(shí)序ECO的流程是什么? 164
【問(wèn)題145】如何解決建立時(shí)間和保持時(shí)間違例問(wèn)題? 165
【問(wèn)題146】時(shí)序ECO工具是什么? 166
第7章 芯片調(diào)試 168
【問(wèn)題147】常用的可調(diào)試性設(shè)計(jì)(DFD)技術(shù)有哪些? 168
【問(wèn)題148】如何實(shí)現(xiàn)校驗(yàn)和? 173
【問(wèn)題149】如何實(shí)現(xiàn)CRC? 173
【問(wèn)題150】如何識(shí)別32 位寄存器中哪一位存在固定故障? 174
參考文獻(xiàn) 177
附 錄 行為類問(wèn)題及實(shí)用面試建議 179
【問(wèn)題151】在簡(jiǎn)歷中使用哪些動(dòng)詞可使自身脫穎而出? 179
【問(wèn)題152】面試禮儀和最佳面試技巧 183
【問(wèn)題153】在面試尾聲,當(dāng)被問(wèn)及“你有什么問(wèn)題想問(wèn)我嗎”該如何作答? 185
【問(wèn)題154】“感謝信”中應(yīng)包含哪些內(nèi)容? 186
【問(wèn)題155】為何要對(duì)求職申請(qǐng)進(jìn)行跟進(jìn),以及應(yīng)如何跟進(jìn)? 187