從CPU到SoC的設(shè)計(jì)與實(shí)現(xiàn) :基于高云云源軟件和FPGA硬件平臺(tái)
定 價(jià):79 元
叢書(shū)名:電子系統(tǒng)EDA新技術(shù)叢書(shū)
- 作者:何賓
- 出版時(shí)間:2024/3/1
- ISBN:9787121462955
- 出 版 社:電子工業(yè)出版社
- 中圖法分類(lèi):TN402
- 頁(yè)碼:336
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)首先對(duì)Verilog HDL的高階語(yǔ)法知識(shí)進(jìn)行了詳細(xì)介紹,然后基于高云半導(dǎo)體和西門(mén)子的云源軟件和Modelsim軟件對(duì)加法器、減法器、乘法器、除法器和浮點(diǎn)運(yùn)算器的設(shè)計(jì)進(jìn)行了綜合和仿真,最后以全球經(jīng)典的無(wú)內(nèi)部互鎖流水級(jí)微處理器(MIPS)指令集架構(gòu)(ISA)為基礎(chǔ),詳細(xì)介紹了單周期MIPS系統(tǒng)的設(shè)計(jì)、多周期MIPS系統(tǒng)的設(shè)計(jì),以及流水線MIPS系統(tǒng)的設(shè)計(jì),并使用高云半導(dǎo)體的云源軟件和GAO在線邏輯分析工具對(duì)設(shè)計(jì)進(jìn)行綜合和驗(yàn)證,以驗(yàn)證設(shè)計(jì)的正確性。 本書(shū)共8章,主要內(nèi)容包括Verilog HDL規(guī)范進(jìn)階、加法器和減法器的設(shè)計(jì)和驗(yàn)證、乘法器和除法器的設(shè)計(jì)和驗(yàn)證、浮點(diǎn)運(yùn)算器的設(shè)計(jì)和驗(yàn)證、Codescape的下載安裝和使用指南、單周期MIPS系統(tǒng)的設(shè)計(jì)和驗(yàn)證、多周期MIPS系統(tǒng)的設(shè)計(jì)和驗(yàn)證,以及流水線MIPS系統(tǒng)的設(shè)計(jì)和驗(yàn)證等內(nèi)容。
何賓,知名的嵌入式和EDA技術(shù)專(zhuān)家,長(zhǎng)期從事電子設(shè)計(jì)自動(dòng)化方面的教學(xué)和科研工作,與全球多家知名的半導(dǎo)體廠商和EDA工具廠商密切合作。已經(jīng)出版電子信息方面的著作共40余部,內(nèi)容涵蓋電路仿真、電路設(shè)計(jì)、FPGA、數(shù)字信號(hào)處理、單片機(jī)、嵌入式系統(tǒng)等。典型的代表作有《模擬電子系統(tǒng)設(shè)計(jì)指南(基礎(chǔ)篇):從半導(dǎo)體、分立元件到TI集成電路的分析與實(shí)現(xiàn)》、《模擬電子系統(tǒng)設(shè)計(jì)指南(實(shí)踐篇):從半導(dǎo)體、分立元件到TI集成電路的分析與實(shí)現(xiàn)》、《Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-基于ARM Cortex-A9雙核處理器和Vivado的設(shè)計(jì)方法》、《Altium Designer17一體化設(shè)計(jì)標(biāo)準(zhǔn)教程-從仿真原理和PCB設(shè)計(jì)到單片機(jī)系統(tǒng)》、《STC8系列單片機(jī)開(kāi)發(fā)指南:面向處理器、程序設(shè)計(jì)和操作系統(tǒng)的分析與應(yīng)用》等。
目 錄
第1章 Verilog HDL規(guī)范進(jìn)階 1
1.1 Verilog HDL用戶自定義原語(yǔ) 1
1.1.1 UDP定義 1
1.1.2 組合電路UDP 3
1.1.3 電平敏感的時(shí)序UDP 4
1.1.4 邊沿敏感的時(shí)序UDP 4
1.1.5 時(shí)序UDP的初始化 5
1.1.6 UDP實(shí)例 6
1.1.7 邊沿和電平觸發(fā)的混合行為 6
1.2 Verilog HDL指定塊 7
1.2.1 模塊路徑聲明 8
1.2.2 為路徑分配延遲 15
1.2.3 混合模塊路徑延遲和分布式延遲 18
1.2.4 驅(qū)動(dòng)布邏輯 18
1.2.5 脈沖過(guò)濾行為的詳細(xì)控制 19
1.3 Verilog HDL時(shí)序檢查 24
1.3.1 時(shí)序檢查概述 24
1.3.2 使用穩(wěn)定窗口的檢查時(shí)序 25
1.3.3 時(shí)鐘和控制信號(hào)的時(shí)序檢查 30
1.3.4 邊沿控制標(biāo)識(shí)符 35
1.3.5 提示符:用戶定義對(duì)時(shí)序沖突的響應(yīng) 35
1.3.6 使能帶有條件的時(shí)序檢查 40
1.3.7 時(shí)序檢查中的矢量信號(hào) 40
1.3.8 負(fù)時(shí)序檢查 41
1.4 Verilog HDL SDF逆向注解 42
1.4.1 SDF注解器 42
1.4.2 映射SDF結(jié)構(gòu)到Verilog 42
1.4.3 多個(gè)注解 46
1.4.4 多個(gè)SDF文件 47
1.4.5 脈沖限制注解 47
1.4.6 SDF到Verilog延遲值映射 48
1.5 Verilog HDL的VCD文件 48
1.5.1 Vivado創(chuàng)建四態(tài)VCD文件 49
1.5.2 Verilog源創(chuàng)建四態(tài)VCD文件 49
1.5.3 四態(tài)VCD文件格式 51
1.6 編譯高云FPGA仿真庫(kù) 55
1.6.1 功能仿真庫(kù)的安裝 55
1.6.2 時(shí)序仿真庫(kù)的安裝 57
第2章 加法器和減法器的設(shè)計(jì)和驗(yàn)證 60
2.1 加法器的設(shè)計(jì) 60
2.1.1 一位半加器的實(shí)現(xiàn) 60
2.1.2 一位全加器的實(shí)現(xiàn) 60
2.1.3 串行進(jìn)位加法器的實(shí)現(xiàn) 61
2.1.4 串行進(jìn)位加法器的驗(yàn)證 65
2.1.5 超前進(jìn)位加法器的實(shí)現(xiàn) 70
2.1.6 超前進(jìn)位加法器的驗(yàn)證 74
2.2 減法器的設(shè)計(jì) 76
2.2.1 一位半減器的實(shí)現(xiàn) 76
2.2.2 一位全減器的實(shí)現(xiàn) 77
2.2.3 負(fù)數(shù)的表示方法 78
2.2.4 多位減法器的設(shè)計(jì)和驗(yàn)證 80
2.3 單個(gè)加法器實(shí)現(xiàn)加法和減法運(yùn)算 82
2.3.1 一位加法器/減法器的實(shí)現(xiàn) 82
2.3.2 多位加法器/減法器的實(shí)現(xiàn) 83
2.3.3 單個(gè)加法器的設(shè)計(jì)和驗(yàn)證 84
第3章 乘法器和除法器的設(shè)計(jì)和驗(yàn)證 86
3.1 乘法器的設(shè)計(jì)和驗(yàn)證 86
3.1.1 基-2布斯算法的設(shè)計(jì) 86
3.1.2 基-2布斯算法的驗(yàn)證 90
3.1.3 基-2流水線布斯乘法器的設(shè)計(jì) 94
3.1.4 基-2流水線布斯乘法器的驗(yàn)證 96
3.1.5 基-4流水線布斯算法的設(shè)計(jì) 100
3.1.6 基-4流水線布斯算法的驗(yàn)證 104
3.2 除法器的設(shè)計(jì)和驗(yàn)證 105
3.2.1 基于長(zhǎng)除法的除法器的設(shè)計(jì) 105
3.2.2 基于長(zhǎng)除法的除法器的驗(yàn)證 109
3.2.3 基于恢復(fù)除法的除法器的設(shè)計(jì) 112
3.2.4 基于恢復(fù)除法的除法器的驗(yàn)證 116
3.2.5 基于非恢復(fù)除法的除法器的設(shè)計(jì) 117
3.2.6 基于非恢復(fù)除法的除法器的驗(yàn)證 120
第4章 浮點(diǎn)運(yùn)算器的設(shè)計(jì)和驗(yàn)證 123
4.1 浮點(diǎn)數(shù)的表示方法 123
4.1.1 單精度表示方法 123
4.1.2 雙精度表示方法 124
4.2 調(diào)用浮點(diǎn)庫(kù)的浮點(diǎn)數(shù)運(yùn)算的實(shí)現(xiàn)和驗(yàn)證 124
4.2.1 調(diào)用浮點(diǎn)庫(kù)的浮點(diǎn)數(shù)運(yùn)算的實(shí)現(xiàn) 124
4.2.2 調(diào)用浮點(diǎn)庫(kù)的浮點(diǎn)數(shù)運(yùn)算的驗(yàn)證 126
第5章 Codescape下載安裝和使用指南 132
5.1 Codescape工具的功能 132
5.2 Codescape工具的下載和安裝 132
5.2.1 Codescape工具的下載 132
5.2.2 Codescape工具的安裝 133
5.3 Codescape的設(shè)計(jì)流程 134
5.3.1 啟動(dòng)Codescape工具 134
5.3.2 創(chuàng)建新的設(shè)計(jì)工程 135
5.3.3 分析啟動(dòng)引導(dǎo)代碼 136
5.3.4 修改main.c文件 139
5.3.5 編譯設(shè)計(jì)文件 140
5.3.6 分析編譯后的代碼 140
第6章 單周期MIPS系統(tǒng)的設(shè)計(jì)和驗(yàn)證 142
6.1 MIPS實(shí)現(xiàn)的指令功能 142
6.1.1 MIPS32指令編碼格式 142
6.1.2 處理器所實(shí)現(xiàn)的指令格式 150
6.2 單周期MIPS系統(tǒng)的設(shè)計(jì) 156
6.2.1 建立新的設(shè)計(jì)工程 156
6.2.2 添加通用寄存器集設(shè)計(jì)文件 157
6.2.3 添加程序計(jì)數(shù)器設(shè)計(jì)文件 158
6.2.4 添加控制器設(shè)計(jì)文件 158
6.2.5 添加算術(shù)邏輯單元設(shè)計(jì)文件 161
6.2.6 添加處理器頂層設(shè)計(jì)文件 162
6.2.7 添加數(shù)據(jù)存儲(chǔ)器設(shè)計(jì)文件 165
6.2.8 添加指令存儲(chǔ)器設(shè)計(jì)文件 166
6.2.9 添加系統(tǒng)頂層設(shè)計(jì)文件 167
6.3 生成并添加存儲(chǔ)器初始化文件 168
6.3.1 建立新的設(shè)計(jì)工程 168
6.3.2 添加makefile文件 169
6.3.3 添加鏈接描述文件 170
6.3.4 添加匯編語(yǔ)言源文件 171
6.3.5 生成HEX文件 171
6.3.6 添加存儲(chǔ)器初始化文件 172
6.4 單周期MIPS系統(tǒng)的驗(yàn)證 173
6.4.1 GAO軟件工具概述 173
6.4.2 添加GAO配置文件 174
6.4.3 配置GAO參數(shù) 174
6.4.4 添加物理約束文件 178
6.4.5 添加引腳約束條件 178
6.4.6 下載設(shè)計(jì)到FPGA 181
6.4.7 啟動(dòng)GAO軟件工具 181
6.4.8 設(shè)計(jì)總結(jié)和啟示 182
6.5 單周期MIPS系統(tǒng)添加外設(shè)的設(shè)計(jì) 183
6.5.1 設(shè)計(jì)思路 183
6.5.2 存儲(chǔ)空間映射 184
6.5.3 復(fù)制并添加設(shè)計(jì)文件 185
6.5.4 添加地址譯碼器設(shè)計(jì)文件 185
6.5.5 添加多路選擇器設(shè)計(jì)文件 186
6.5.6 添加GPIO控制器設(shè)計(jì)文件 187
6.5.7 添加PWM控制器設(shè)計(jì)文件 188
6.5.8 修改頂層設(shè)計(jì)文件 189
6.5.9 查看RTL網(wǎng)表結(jié)構(gòu) 191
6.6 單周期MIPS系統(tǒng)添加外設(shè)的驗(yàn)證 191
6.6.1 測(cè)試數(shù)據(jù)存儲(chǔ)器 191
6.6.2 測(cè)試GPIO控制器 195
6.6.3 測(cè)試PWM控制器 199
6.7 單周期MIPS核添加協(xié)處理器的設(shè)計(jì) 203
6.7.1 設(shè)計(jì)背景 203
6.7.2 設(shè)計(jì)思路 204
6.7.3 復(fù)制設(shè)計(jì)文件 204
6.7.4 添加協(xié)處理器設(shè)計(jì)文件 204
6.7.5 修改控制器設(shè)計(jì)文件 209
6.7.6 修改程序計(jì)數(shù)器設(shè)計(jì)文件 212
6.7.7 修改處理器核設(shè)計(jì)文件 213
6.7.8 查看處理器核設(shè)計(jì)結(jié)構(gòu) 216
6.8 單周期MIPS核添加協(xié)處理器的驗(yàn)證 216
6.8.1 測(cè)試保留指令異常 216
6.8.2 測(cè)試定時(shí)器中斷異常 221
第7章 多周期MIPS系統(tǒng)的設(shè)計(jì)和驗(yàn)證 226
7.1 設(shè)計(jì)背景 226
7.2 設(shè)計(jì)關(guān)鍵問(wèn)題 226
7.2.1 處理指令需要的階段 226
7.2.2 數(shù)據(jù)通路 227
7.2.3 控制通路 229
7.3 多周期MIPS系統(tǒng)的設(shè)計(jì) 231
7.3.1 建立新的設(shè)計(jì)工程 232
7.3.2 復(fù)制設(shè)計(jì)文件 232
7.3.3 添加底層寄存器設(shè)計(jì)文件 233
7.3.4 添加程序計(jì)數(shù)器設(shè)計(jì)文件 233
7.3.5 添加存儲(chǔ)器設(shè)計(jì)文件 234
7.3.6 添加控制器設(shè)計(jì)文件 235
7.3.7 添加頂層設(shè)計(jì)文件 239
7.4 多周期MIPS系統(tǒng)的驗(yàn)證 242
7.4.1 修改GAO配置文件 242
7.4.2 下載設(shè)計(jì) 243
7.4.3 啟動(dòng)GAO軟件工具 243
7.4.4 設(shè)計(jì)總結(jié)和啟示 244
第8章 流水線MIPS系統(tǒng)的設(shè)計(jì)和驗(yàn)證 245
8.1 流水線概述 245
8.1.1 數(shù)據(jù)通路的流水線結(jié)構(gòu) 246
8.1.2 控制通路的流水線結(jié)構(gòu) 249
8.1.3 風(fēng)險(xiǎn)及解決方法 249
8.2 流水線MIPS系統(tǒng)的設(shè)計(jì) 256
8.2.1 建立新的設(shè)計(jì)工程 256
8.2.2 復(fù)制設(shè)計(jì)文件 256
8.2.3 添加底層寄存器設(shè)計(jì)文件 257
8.2.4 添加通用寄存器集設(shè)計(jì)文件 259
8.2.5 添加控制器設(shè)計(jì)文件 260
8.2.6 添加風(fēng)險(xiǎn)控制單元設(shè)計(jì)文件 263
8.2.7 添加處理器核頂層設(shè)計(jì)文件 264
8.2.8 添加處理器系統(tǒng)頂層設(shè)計(jì)文件 269
8.3 流水線MIPS系統(tǒng)的驗(yàn)證 270
8.3.1 測(cè)試提前解決數(shù)據(jù)風(fēng)險(xiǎn)方法的正確性 270
8.3.2 測(cè)試停止解決數(shù)據(jù)風(fēng)險(xiǎn)方法的正確性 273
8.3.3 測(cè)試解決控制風(fēng)險(xiǎn)方法的正確性 276
8.4 流水線MIPS系統(tǒng)添加協(xié)處理器的設(shè)計(jì) 280
8.4.1 復(fù)制并添加設(shè)計(jì)文件 280
8.4.2 修改風(fēng)險(xiǎn)控制單元設(shè)計(jì)文件 281
8.4.3 修改MIPS核頂層設(shè)計(jì)文件 283
8.5 流水線MIPS系統(tǒng)添加協(xié)處理器的驗(yàn)證 290
8.5.1 修改GAO配置文件 290
8.5.2 下載設(shè)計(jì) 290
8.5.3 啟動(dòng)GAO軟件工具 291
8.6 AHB-LITE總線架構(gòu)和時(shí)序 292
8.6.1 ARM AMBA系統(tǒng)總線 292
8.6.2 AHB-LITE簡(jiǎn)介 293
8.6.3 AHB-LITE總線操作 294
8.6.4 AHB-LITE總線結(jié)構(gòu) 294
8.6.5 AHB-LITE總線時(shí)序 297
8.7 流水線MIPS系統(tǒng)添加外設(shè)的設(shè)計(jì) 299
8.7.1 復(fù)制設(shè)計(jì)文件 300
8.7.2 添加本地總線轉(zhuǎn)換設(shè)計(jì)文件 300
8.7.3 添加地址譯碼器設(shè)計(jì)文件 301
8.7.4 添加多路復(fù)用器設(shè)計(jì)文件 302
8.7.5 添加數(shù)據(jù)存儲(chǔ)器控制器設(shè)計(jì)文件 303
8.7.6 添加GPIO控制器設(shè)計(jì)文件 305
8.7.7 修改控制器設(shè)計(jì)文件 306
8.7.8 修改風(fēng)險(xiǎn)控制單元設(shè)計(jì)文件 307
8.7.9 修改處理器核設(shè)計(jì)文件 309
8.7.10 修改頂層設(shè)計(jì)文件 316
8.8 流水線MIPS系統(tǒng)添加外設(shè)的驗(yàn)證 319
8.8.1 測(cè)試GPIO控制器 319
8.8.2 測(cè)試數(shù)據(jù)存儲(chǔ)器控制器 322