FPGA 入門指南 : 用 Verilog HDL 語言設計電腦系統

FPGA 入門指南 : 用 Verilog HDL 語言設計電腦系統

作者: 張文挺
出版社: 人民郵電
出版在: 2021-03-01
ISBN-13: 9787115552648
ISBN-10: 7115552649
裝訂格式: 平裝
總頁數: 221 頁





內容描述


FPGA(現場可編程門陣列)是在PAL、GAL等可編程器件的基礎上進一步發展的產物。它作為專用集成電路(ASIC)領域中的一種半定製電路出現,既解決了定製電路的不足,又剋服了原有可編程器件門電路數有限的缺點。
 
本書從數字電路基礎講起,接著向讀者介紹硬件描述語言Verilog HDL的用法,然後選擇8位電腦系統——GAME BOY掌上游戲機作為實戰項目,向大家詳細介紹CPU內核和外設的架構和設計,引導讀者設計兼容的硬件。本書介紹了基本的電腦架構;如何實現CPU基本的計算功能,再實現更為復雜的程序控制;視頻發生器和音頻發生器的使用方法和實現方法;一些用於輔助加速相關硬件設計的比較有效的模擬和調試工具;現代CPU技術的發展和限制。
 
本書適合電子、信息工程、通信工程、自動化、電腦科學與技術等相關專業高校學生閱讀,也適合電子工程師和想學習FPGA使用方法的電子愛好者閱讀。?


目錄大綱


第1章軟件之下的世界
1.1什麼是FPGA
1.1.1 FPGA有什麼功能?
1.1.2 FPGA與單片機有可比性嗎?
1.1.3學習FPGA有什麼意義?
1.2邏輯門和可編程邏輯門
1.2.1 74系列芯片
1.2.2 CPLD和FPGA
1.2.3如何選擇FPGA芯片
1.3 FPGA與遊戲機
第2章數字電路基礎
2. 1數字的表示
2.1.1進制
2.1.2無符號整數類型
2.1.3有符號整數類型
2.1.4定點類型
2.1.5浮點類型
2.1.6 BCD編碼
2.1.7總結
2.2組合邏輯
2.2.1邏輯說明舉例
2.2.2搭建電路
2.2.3使用Xilinx FPGA搭建
2.3時序邏輯
2.3.1鎖存器與觸發器
2.3.2實例1 :燈
2.3.3實例2 :計數器
2.3.4總結
2.4狀態機
2.4.1什麼是狀態機
2.4.2用邏輯電路實現狀態機
2.5 Verilog語法基礎
2.5.1程序模塊
2.5.2模塊參數
2.5.3內部信號定義
2.5.4表達式和運算符
2.5.5數值表示
2.5.6程序語句assign
2.5.7程序語句always
2. 5.8練習
2.6 Verilog語法應用
2.6.1上一節練習答案
2.6.2 Verilog中的其他語句
2.6.3 Verilog中的雙向信號
2.6.4仿真
2.6. 5使用Intel FPGA
2.6.6使用Xilinx FPGA
2.6.7總結
第3章CPU
3.1存儲程序與假想CPU
3.1.1上節作業
3.1.2 CPU是做什麼的
3. 1.3 CPU執行的程序
3.1.4 CPU的存儲
3.2 SM83 CPU介紹
3.2.1 LR35902簡介
3.2.2 SM83指令集架構
3.2.3 SM83指令編碼
3.2.4關於指令集設計
3.2.5作業
3.3實現CPU基本部件
3.3.1目標
3.3.2分析
3.3.3設計數據路徑
3.3.4設計控制單元
3.3.5總結
3.4實現CPU數據路徑
3.4.1設計
3.4.2實現數據路徑
3.4.3實現指令內存
3.4.4實現寄存器組
3.4.5實現算術邏輯單元
3.4. 6實現主數據路徑
3.4.7總結
3.5實現CPU控制單元
3.5.1控制單元
3.5.2控制單元模塊定義
3.5.3狀態機框架
3.5.4取操作碼階段/取立即數階段
3.5.5執行階段
3.5.6測試程序
3.5.7仿真
3.6 SM83設計細節
3.6.1 SM83微架構設計
3.6.2設計建議
3. 6.3總結
第4章外圍
4.1視頻信號
4.1.1像素數據
4.1.2視頻掃描
4.1.3視頻信號
4.1.4用FPGA產生視頻信號
4.1.5總結
4.2視頻發生器介紹
4.2.1圖像的來源
4.2.2圖層
4.2.3背景
4.2.4精靈
4.2.5窗口
4.2.6使用
4.2. 7程序模板
4.2.8背景圖層顯示
4.2.9窗口顯示
4.2.10精靈顯示
4.2.11寄存器設定
4.2.12總結
4.3視頻發生器設計
4.3.1大體設計
4.3.2實現
4. 3.3總結
4.4音頻信號
4.4.1聲波的數字表示
4.4.2 PCM的傳輸
4.4.3 I2S/DSP的實現
4.4.4 AC Link的實現
4.4.5總結
4.5音頻發生器介紹
4.5.1 GB PSG的基本介紹
4.5.2 GB PSG的功能和使用方法
4.5.3總結
4.6音頻發生器實現
4.6.1 CPU接口和寄存器
4.6.2方波通道
4.6.3採樣通道和雜波通道
4.6.4總結
4.7定時器
4.7.1定時器的功能和使用方法
4.7.2定時器模塊接口
4.7.3總線讀寫
4.7.4定時功能實現
4.7.5總結
4.8總線互聯
4.8.1 8080總線
4.8.2 Verilog 8080總線互聯
4.9 DMA
4.9.1 GB的DMA
4.9.2 GB的總線
4.9.3 Verilator工具介紹
4.9.4使用Verilator工具
4.9.5使用C++配合Verilator進行仿真
4.9.6使用C++擴展Verilator仿真
4.9.7配合Shell腳本實現基本的單元測試
4.9.8總結
第5章現代計算機架構
5.1 RISC-V基礎指令集
5.1.1 RISC處理器的歷史
5.1.2 RISC-V架構簡介
5 .1.3 RISC-V指令集模塊
5.1.4 RISC-V基礎指令集:RV32I
5.1.5 ISA設計要點
5.1.6總結
5.2緩存與內存層級
5.2.1簡介
5.2.2內存層級
5.2.3緩存的設計
5.2.4總結
5.3虛擬內存與權限層級
5.3.1簡介
5.3.2虛擬內存
5.3.3 RISC-V虛擬內存
5.3.4權限層級
5.3.5總結
5.4超標量與亂序執行
5.4.1 CPU架構與CPU微架構
5.4.2常見的CPU微架構設計
5.5現代CPU設計製約
5.5.1摩爾定律
5.5.2縮放定律
5.5.3黑暗之矽
5.5.4總結
第6章最後的話
6.1總結
6.1.1回顧
6.1.2成果
6.1.3在這之後


作者介紹


張文挺
亞德諾半導體公司數字信號處理器軟件應用工程師、《無線電》雜誌作者、開源愛好者。
在《無線電》雜誌上撰寫項目製作教程近10年,發表了STM32、FPGA等熱門平台的入門教程。
曾獲ADI傑出貢獻獎、MC-REU優秀論文海報獎等獎項,參與多個開源軟硬件項目開發,在開源半導體協會會議上發表過演講。




相關書籍

DSP嵌入式實時系統權威指南

作者 羅伯特·奧沙納 (Robert Oshana)

2021-03-01

單晶片(專業級/專家級)能力認證教戰秘笈

作者 鍾啟仁

2021-03-01

光電半導體元件 (Optoelectronics and Photonics: Principles and Practices)

作者 Safa O. Kasap 黃俊達 陳金嘉 楊奇達 楊國輝 雷伯勳 譯

2021-03-01