從CPU到SoC的設計與實現 :基于高云云源軟件和FPGA硬件平臺( 簡體 字) | |
作者:何賓,羅顯志 | 類別:1. -> 電腦組織與體系結構 -> 單晶片 |
出版社:電子工業出版社 | 3dWoo書號: 56395 詢問書籍請說出此書號! 有庫存 NT售價: 395 元 |
出版日:3/1/2024 | |
頁數:336 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121462955 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章 Verilog HDL規范進階 1
1.1 Verilog HDL用戶自定義原語 1 1.1.1 UDP定義 1 1.1.2 組合電路UDP 3 1.1.3 電平敏感的時序UDP 4 1.1.4 邊沿敏感的時序UDP 4 1.1.5 時序UDP的初始化 5 1.1.6 UDP實例 6 1.1.7 邊沿和電平觸發的混合行為 6 1.2 Verilog HDL指定塊 7 1.2.1 模塊路徑聲明 8 1.2.2 為路徑分配延遲 15 1.2.3 混合模塊路徑延遲和分布式延遲 18 1.2.4 驅動布邏輯 18 1.2.5 脈沖過濾行為的詳細控制 19 1.3 Verilog HDL時序檢查 24 1.3.1 時序檢查概述 24 1.3.2 使用穩定窗口的檢查時序 25 1.3.3 時鐘和控制信號的時序檢查 30 1.3.4 邊沿控制標識符 35 1.3.5 提示符:用戶定義對時序沖突的響應 35 1.3.6 使能帶有條件的時序檢查 40 1.3.7 時序檢查中的矢量信號 40 1.3.8 負時序檢查 41 1.4 Verilog HDL SDF逆向注解 42 1.4.1 SDF注解器 42 1.4.2 映射SDF結構到Verilog 42 1.4.3 多個注解 46 1.4.4 多個SDF文件 47 1.4.5 脈沖限制注解 47 1.4.6 SDF到Verilog延遲值映射 48 1.5 Verilog HDL的VCD文件 48 1.5.1 Vivado創建四態VCD文件 49 1.5.2 Verilog源創建四態VCD文件 49 1.5.3 四態VCD文件格式 51 1.6 編譯高云FPGA仿真庫 55 1.6.1 功能仿真庫的安裝 55 1.6.2 時序仿真庫的安裝 57 第2章 加法器和減法器的設計和驗證 60 2.1 加法器的設計 60 2.1.1 一位半加器的實現 60 2.1.2 一位全加器的實現 60 2.1.3 串行進位加法器的實現 61 2.1.4 串行進位加法器的驗證 65 2.1.5 超前進位加法器的實現 70 2.1.6 超前進位加法器的驗證 74 2.2 減法器的設計 76 2.2.1 一位半減器的實現 76 2.2.2 一位全減器的實現 77 2.2.3 負數的表示方法 78 2.2.4 多位減法器的設計和驗證 80 2.3 單個加法器實現加法和減法運算 82 2.3.1 一位加法器/減法器的實現 82 2.3.2 多位加法器/減法器的實現 83 2.3.3 單個加法器的設計和驗證 84 第3章 乘法器和除法器的設計和驗證 86 3.1 乘法器的設計和驗證 86 3.1.1 基-2布斯算法的設計 86 3.1.2 基-2布斯算法的驗證 90 3.1.3 基-2流水線布斯乘法器的設計 94 3.1.4 基-2流水線布斯乘法器的驗證 96 3.1.5 基-4流水線布斯算法的設計 100 3.1.6 基-4流水線布斯算法的驗證 104 3.2 除法器的設計和驗證 105 3.2.1 基于長除法的除法器的設計 105 3.2.2 基于長除法的除法器的驗證 109 3.2.3 基于恢復除法的除法器的設計 112 3.2.4 基于恢復除法的除法器的驗證 116 3.2.5 基于非恢復除法的除法器的設計 117 3.2.6 基于非恢復除法的除法器的驗證 120 第4章 浮點運算器的設計和驗證 123 4.1 浮點數的表示方法 123 4.1.1 單精度表示方法 123 4.1.2 雙精度表示方法 124 4.2 調用浮點庫的浮點數運算的實現和驗證 124 4.2.1 調用浮點庫的浮點數運算的實現 124 4.2.2 調用浮點庫的浮點數運算的驗證 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的設計流程 134 5.3.1 啟動Codescape工具 134 5.3.2 創建新的設計工程 135 5.3.3 分析啟動引導代碼 136 5.3.4 修改main.c文件 139 5.3.5 編譯設計文件 140 5.3.6 分析編譯后的代碼 140 第6章 單周期MIPS系統的設計和驗證 142 6.1 MIPS實現的指令功能 142 6.1.1 MIPS32指令編碼格式 142 6.1.2 處理器所實現的指令格式 150 6.2 單周期MIPS系統的設計 156 6.2.1 建立新的設計工程 156 6.2.2 添加通用寄存器集設計文件 157 6.2.3 添加程序計數器設計文件 158 6.2.4 添加控制器設計文件 158 6.2.5 添加算術邏輯單元設計文件 161 6.2.6 添加處理器頂層設計文件 162 6.2.7 添加數據存儲器設計文件 165 6.2.8 添加指令存儲器設計文件 166 6.2.9 添加系統頂層設計文件 167 6.3 生成并添加存儲器初始化文件 168 6.3.1 建立新的設計工程 168 6.3.2 添加makefile文件 169 6.3.3 添加鏈接描述文件 170 6.3.4 添加匯編語言源文件 171 6.3.5 生成HEX文件 171 6.3.6 添加存儲器初始化文件 172 6.4 單周期MIPS系統的驗證 173 6.4.1 GAO軟件工具概述 173 6.4.2 添加GAO配置文件 174 6.4.3 配置GAO參數 174 6.4.4 添加物理約束文件 178 6.4.5 添加引腳約束條件 178 6.4.6 下載設計到FPGA 181 6.4.7 啟動GAO軟件工具 181 6.4.8 設計總結和啟示 182 6.5 單周期MIPS系統添加外設的設計 183 6.5.1 設計思路 183 6.5.2 存儲空間映射 184 6.5.3 復制并添加設計文件 185 6.5.4 添加地址譯碼器設計文件 185 6.5.5 添加多路選擇器設計文件 186 6.5.6 添加GPIO控制器設計文件 187 6.5.7 添加PWM控制器設計文件 188 6.5.8 修改頂層設計文件 189 6.5.9 查看RTL網表結構 191 6.6 單周期MIPS系統添加外設的驗證 191 6.6.1 測試數據存儲器 191 6.6.2 測試GPIO控制器 195 6.6.3 測試PWM控制器 199 6.7 單周期MIPS核添加協處理器的設計 203 6.7.1 設計背景 203 6.7.2 設計思路 204 6.7.3 復制設計文件 204 6.7.4 添加協處理器設計文件 204 6.7.5 修改控制器設計文件 209 6.7.6 修改程序計數器設計文件 212 6.7.7 修改處理器核設計文件 213 6.7.8 查看處理器核設計結構 216 6.8 單周期MIPS核添加協處理器的驗證 216 6.8.1 測試保留指令異常 216 6.8.2 測試定時器中斷異常 221 第7章 多周期MIPS系統的設計和驗證 226 7.1 設計背景 226 7.2 設計關鍵問題 226 7.2.1 處理指令需要的階段 226 7.2.2 數據通路 227 7.2.3 控制通路 229 7.3 多周期MIPS系統的設計 231 7.3.1 建立新的設計工程 232 7.3.2 復制設計文件 232 7.3.3 添加底層寄存器設計文件 233 7.3.4 添加程序計數器設計文件 233 7.3.5 添加存儲器設計文件 234 7.3.6 添加控制器設計文件 235 7.3.7 添加頂層設計文件 239 7.4 多周期MIPS系統的驗證 242 7.4.1 修改GAO配置文件 242 7.4.2 下載設計 243 7.4.3 啟動GAO軟件工具 243 7.4.4 設計總結和啟示 244 第8章 流水線MIPS系統的設計和驗證 245 8.1 流水線概述 245 8.1.1 數據通路的流水線結構 246 8.1.2 控制通路的流水線結構 249 8.1.3 風險及解決方法 249 8.2 流水線MIPS系統的設計 256 8.2.1 建立新的設計工程 256 8.2.2 復制設計文件 256 8.2.3 添加底層寄存器設計文件 257 8.2.4 添加通用寄存器集設計文件 259 8.2.5 添加控制器設計文件 260 8.2.6 添加風險控制單元設計文件 263 8.2.7 添加處理器核頂層設計文件 264 8.2.8 添加處理器系統頂層設計文件 269 8.3 流水線MIPS系統的驗證 270 8.3.1 測試提前解決數據風險方法的正確性 270 8.3.2 測試停止解決數據風險方法的正確性 273 8.3.3 測試解決控制風險方法的正確性 276 8.4 流水線MIPS系統添加協處理器的設計 280 8.4.1 復制并添加設計文件 280 8.4.2 修改風險控制單元設計文件 281 8.4.3 修改MIPS核頂層設計文件 283 8.5 流水線MIPS系統添加協處理器的驗證 290 8.5.1 修改GAO配置文件 290 8.5.2 下載設計 290 8.5.3 啟動GAO軟件工具 291 8.6 AHB-LITE總線架構和時序 292 8.6.1 ARM AMBA系統總線 292 8.6.2 AHB-LITE簡介 293 8.6.3 AHB-LITE總線操作 294 8.6.4 AHB-LITE總線結構 294 8.6.5 AHB-LITE總線時序 297 8.7 流水線MIPS系統添加外設的設計 299 8.7.1 復制設計文件 300 8.7.2 添加本地總線轉換設計文件 300 8.7.3 添加地址譯碼器設計文件 301 8.7.4 添加多路復用器設計文件 302 8.7.5 添加數據存儲器控制器設計文件 303 8.7.6 添加GPIO控制器設計文件 305 8.7.7 修改控制器設計文件 306 8.7.8 修改風險控制單元設計文件 307 8.7.9 修改處理器核設計文件 309 8.7.10 修改頂層設計文件 316 8.8 流水線MIPS系統添加外設的驗證 319 8.8.1 測試GPIO控制器 319 8.8.2 測試數據存儲器控制器 322 本書首先對Verilog HDL的高階語法知識進行了詳細介紹,然后基于高云半導體和西門子的云源軟件和Modelsim軟件對加法器、減法器、乘法器、除法器和浮點運算器的設計進行了綜合和仿真,最后以全球經典的無內部互鎖流水級微處理器(MIPS)指令集架構(ISA)為基礎,詳細介紹了單周期MIPS系統的設計、多周期MIPS系統的設計,以及流水線MIPS系統的設計,并使用高云半導體的云源軟件和GAO在線邏輯分析工具對設計進行綜合和驗證,以驗證設計的正確性。 本書共8章,主要內容包括Verilog HDL規范進階、加法器和減法器的設計和驗證、乘法器和除法器的設計和驗證、浮點運算器的設計和驗證、Codescape的下載安裝和使用指南、單周期MIPS系統的設計和驗證、多周期MIPS系統的設計和驗證,以及流水線MIPS系統的設計和驗證等內容。
本書是《EDA原理及Verilog HDL實現:從晶體管、門電路到高云FPGA的數字系統設計》一書的姊妹篇,也是進階篇。
眾所周知,中央處理單元(Central Processing Unit,CPU)和片上系統(System on Chip,SoC)設計是集成電路設計領域的“珠穆朗瑪峰”,是衡量一個國家集成電路設計水平的重要標志。長久以來,國內從事CPU設計的半導體公司主要是基于國外授權的指令集架構(Instruction Set Architecture,ISA)來設計CPU,這就需要給國外公司支付巨額的專利費用。 近年來,隨著中國科技實力的不斷增強,國內從事CPU設計的半導體公司在消化和吸收國外經典ISA的基礎上,推出了具有自主知識產權的ISA,并且CPU的整體性能不斷接近國外主流CPU的性能。在這種情況下,就需要國內高等學校培養一批精通高端CPU設計的高級人才來支持國內CPU設計公司的持續發展,以更好的推動國產CPU的大規模普及。 近年來,國內外很多開源社區提供了不用架構CPU的開源設計,為廣大讀者學習CPU和SoC設計方法提供了豐富的素材。 本書內容主要分為兩個部分。第一部分從最基本的加法器和減法器入手,進階到乘法器和除法器,以及浮點運算單元,通過高云半導體的云源軟件對這些功能單元進行了設計實現,并通過西門子的ModelSim軟件對設計進行了仿真驗證;第二部分,從單周期MIPS處理器入手,進階到多周期MIPS處理器和流水線MIPS處理器,通過高云半導體的云源軟件對這三種不同形式的處理器進行了設計實現,并通過高云半導體的GAO在線邏輯分析工具對設計進行了硬件調試和驗證。通過高云半導體的云源軟件、西門子的ModelSim軟件和高云半導體的GAO軟件,將軟件和硬件的協同設計、協同仿真和協同調試融為一體。通過軟件仿真和硬件調試,深度剖析不同MIPS處理器實現的本質,從而為讀者系統學習包括CPU核和外設在內的計算機底層硬件提供了可視化手段和方法。 作者已經畢業的研究生羅顯志在攻讀碩士研究生學位期間,曾經系統學習了基于MIPS ISA的全套課程,并對該MIPS處理器核的內部結構進行了系統研究和分析,此書第二部分的一些內容也是基于他的研究成果,在此向他表示感謝。 在編寫本書的過程中,高云半導體大學計劃經理梁岳峰先生和武漢易思達科技總經理王程濤先生提供了高云云源軟件和硬件開發板的支持,并協調相關的軟件和硬件工程師解答作者在編寫本書過程中所遇到的技術問題,在此也向他們表示誠摯的感謝。產業界和教育界的互相支持和深度融合,必將為國內高等學校提高自主人才培養的質量注入新的動力,從而加速先進信息技術與高等學校相關專業課程培養體系的有機融合。 由于作者水平有限,書中難免有不足之處,懇請各位讀者提出寶貴的建議,書中所有的實例設計代碼均可從華信教育資源網中下載。關于書中的任何問題,讀者可以通過與作者進行聯系。 何賓 2024年2月于北京 |