Verilog高級數字系統設計技術與實例分析

Verilog高級數字系統設計技術與實例分析

《Verilog高級數字系統設計技術與實例分析》是2018年2月電子工業出版社出版的圖書,作者是喬廬峰。

基本介紹

  • 書名:Verilog高級數字系統設計技術與實例分析
  • 作者:喬廬峰
  • ISBN:9787121334832
  • 頁數:412頁
  • 定價:109元
  • 出版社:電子工業出版社
  • 出版時間:2018年2月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書通過大量實例由淺入深地介紹了數字電路和數字系統設計中的重要概念和知識要點。本書分兩大部分。第一部分重點關注數字電路設計層面,偏重基礎。第2章到第6章為Verilog語法與數字電路設計相關知識,包括常用語法、基本數字電路單元等。第7章到第9章重點介紹高級數字設計知識,包括數字系統架構設計、複雜數字系統中常用的電路單元、算法,並給出了大量工程實例。第10章給出了一些重要的工程設計經驗,包括文檔管理、代碼設計、系統驗證、高可靠性設計等。第二部分重點關注數字系統設計層面。第11章到第13章介紹了常用數字系統關鍵電路,包括與處理器系統相關的存儲結構與存儲訪問技術、存儲介質(硬碟、快閃記憶體、DDR等)與驅動電路、處理器匯流排結構與協定等。第14章和第15章介紹了電路可測性設計、靜態定時分析、晶片工程修改的相關知識。第16章和第17章從電路設計層面到系統設計層面介紹了降低電路功耗的方法。第18章到第20章介紹常用串列匯流排和串列通信協定,包括PCI Express、SATA、USB及乙太網技術。

圖書目錄

第1章 緒論
第2章 暫存器傳輸語言(RTL)
第3章 可綜合的Verilog——用於電路設計
3.1 什麼是Verilog
3.2 Verilog的發展歷史
3.3 Verilog的結構
3.4 硬體RTL代碼的執行
3.5 Verilog模組分析
3.6 Verilog中的觸發器
3.6.1 帶RST復位引腳的觸發器
3.6.2 沒有復位引腳的觸發器
3.7 組合邏輯
3.7.1 always塊語句
3.7.2 case和if-else語句
3.7.3 賦值語句
3.8 Verilog操作符
3.8.1 操作符描述
3.8.2 操作符的執行順序
3.8.3 Verilog中的注釋
3.9 可重用和模組化設計
3.9.1 參數化設計
3.9.2 Verilog函式
3.9.3 Verilog中的generate結構
3.9.4 Verilog中的`ifdef
3.9.5 數組、多維數組
第4章 用於驗證的Verilog語法
4.1 Verilog的測試平台
4.2 initial語句
4.3 Verilog 系統任務
4.3.1 $finish/$stop
4.3.2 $display/$monitor
4.3.3 $time,$realtime
4.3.4 $random/$random(seed)
4.3.5 $save
4.3.6 $readmemh/$writememh
4.3.7 $fopen/$fclose
4.4 任務
4.5 存儲器建模
4.6 其他Verilog語法結構
4.6.1 while循環
4.6.2 for循環、repeat
4.6.3 force/release
4.6.4 for /join
4.7 一個簡單的testbench
第5章 數字電路設計——初級篇
5.1 組合邏輯門
5.1.1 邏輯1和邏輯0
5.1.2 真值表
5.1.3 電晶體
5.1.4 反相器
5.1.5 與門
5.1.6 或門
5.1.7 與非門
5.1.8 或非門
5.1.9 XOR(異或)、XNOR(異或非)
5.1.10 緩衝門
5.1.11 復用器
5.1.12 通用邏輯門——NAND、NOR
5.1.13 複雜門電路
5.1.14 噪聲容限
5.1.15 扇入和扇出
5.2 德摩根定理
5.3 通用D觸發器
5.3.1 D觸發器時序圖
5.4 建立和保持時間
5.4.1 建立時間
5.4.2 保持時間
5.4.3 亞穩態
5.5 單比特信號同步
5.5.1 兩個觸發器構成的同步器
5.5.2 信號同步規則
5.6 關於時序
5.7 事件/邊沿檢測
5.7.1 同步上升沿檢測
5.7.2 同步下降沿檢測
5.7.3 同步上升/下降沿檢測
5.7.4 異步輸入上升沿檢測
5.8 數值系統
5.8.1 十進制數值系統
5.8.2 二進制數
5.8.3 十進制數到二進制數的轉換
5.8.4 十六進制數值系統
5.8.5 十六進制數和二進制數的轉換
5.9 加法和減法
5.9.1 行波進位加法器
5.9.2 超前進位加法
5.9.3 累加器
5.10 乘和除
5.10.1 乘以一個常數
5.10.2 除以常數(2的整數次冪)
5.11 計數器
5.11.1 加法/減法計數器
5.11.2 LFSR(線性反饋移位暫存器)計數器
第6章 數字設計——基礎模組
6.1 LFSR
6.1.1 引言
6.1.2 斐波那契LFSR與伽羅瓦LFSR
6.1.3 LFSR反饋多項式
6.1.4 LFSR的用法
6.2 擾碼與解擾
6.2.1 什麼是擾碼與解擾
6.2.2 擾碼的作用
6.2.3 串列擾碼器
6.2.4 並行擾碼器
6.2.5 擾碼電路設計要點
6.2.6 PCIe擾碼電路
6.2.7 Verilog RTL-PCIe擾碼器
6.3 檢錯與糾錯
6.3.1 檢錯
6.3.2 錯誤糾正
6.3.3 糾錯編碼
6.3.4 漢明碼
6.3.5 漢明碼套用舉例——DDR ECC
6.3.6 BCH編碼
6.3.7 里德-所羅門編碼
6.3.8 LDPC編碼
6.3.9 卷積碼
6.3.10 卷積解碼
6.3.11 軟判決與硬判決
6.4 奇偶校驗
6.4.1 偶校驗和奇校驗
6.4.2 奇偶校驗位的生成
6.4.3 奇偶校驗的套用
6.5 CRC(循環冗餘校驗)
6.5.1 CRC介紹
6.5.2 串列CRC計算
6.5.3 並行CRC計算
6.5.4 部分數據CRC計算
6.5.5 常用CRC類型
6.6 格雷編碼/解碼
6.6.1 二進制碼轉換為格雷編碼的通用電路
6.6.2 格雷碼轉換為二進制碼的通用電路
6.7 解碼器(7段數碼顯示實例)
6.8 優先權編碼
6.8.1 常規編碼器的Verilog 代碼
6.8.2 優先權編碼器的Verilog代碼
6.9 8b/10b編碼/解碼
6.9.1 8b/10b編碼方式
6.9.2 多位元組8b/10b編碼
6.9.3 disparity選擇8b/10b編碼方案
6.10 64b/66b編碼/解碼
6.10.1 64b/66b編碼機制
6.10.2 128b/130b編碼機制
6.11 NRZ、NRZI編碼
6.12 移位暫存器與桶形移位器
6.12.1 左移位與右移位
6.12.2 左循環移位與右循環移位
6.12.3 桶形移位器
6.13 數據轉換器
6.13.1 由寬到窄數據轉換
6.13.2 由窄到寬數據轉換
6.14 同步技術
6.14.1 使用FIFO進行的數據同步
6.14.2 握手同步方式
6.14.3 脈衝同步器
6.14.4 相位、頻率關係固定時的跨時鐘域數據傳輸
6.14.5 準同步時鐘域
6.15 計時(微秒、毫秒和秒)脈衝的產生
6.16 波形整形電路
第7章 數字設計先進概念(第1部分)
7.1 時鐘
7.1.1 頻率和時鐘周期
7.1.2 不同的時鐘機制
7.1.3 同步時鐘
7.1.4 源同步時鐘
7.1.5 嵌入式時鐘
7.1.6 準同步時鐘
7.1.7 異步系統
7.1.8 擴頻時鐘
7.1.9 時鐘抖動
7.2 復位方法
7.2.1 非同步復位(異步復位)
7.2.2 復位同步電路
7.2.3 同步復位
7.2.4 異步復位和同步復位的選擇
7.3 吞吐率
7.3.1 增加吞吐率的方法
7.3.2 更高的頻率
7.3.3 更寬的數據通道
7.3.4 流水線
7.3.5 並行處理
7.3.6 無序執行(亂序執行)
7.3.7 高速快取(cache)
7.3.8 預讀取
7.3.9 多核
7.4 時延
7.4.1 降低時延的方法
7.5 流控
7.5.1 介紹
7.5.2 數據轉發:data_valid和data_ack
7.5.3 基於信用的流控:PCIe
7.5.4 SATA流控機制
7.5.5 吉比特乙太網流控
7.5.6 TCP滑動窗流控機制
7.6 流水線操作
7.6.1 流水線介紹
7.6.2 流水線的簡單實例
7.6.3 RISC——流水線處理器
7.6.4 流水線結構和並行操作
7.6.5 流水線加法器
7.6.6 並行加法器
7.6.7 系統設計中的流水線
7.7 out-of-order執行(亂序執行)
7.7.1 現代處理器:out-of-order執行
7.7.2 SATA NCQ:out-of-order執行
第8章 數字設計先進概念(第2部分)
8.1 狀態機
8.1.1 引言
8.1.2 狀態機泡泡圖
8.1.3 狀態機:推薦方式
8.1.4 二進制編碼的狀態機
8.1.5 獨熱碼編碼的狀態機
8.1.6 二進制編碼和獨熱碼比較
8.1.7 米里型和摩爾型狀態機
8.1.8 子狀態機
8.2 FIFO
8.2.1 引言
8.2.2 FIFO操作
8.2.3 同步FIFO
8.2.4 同步FIFO
8.2.5 異步FIFO的工作機制
8.2.6 異步FIFO的實現
8.3 FIFO高級原理
8.3.1 FIFO的大小
8.3.2 FIFO的深度
8.3.3 輔助數據或標籤
8.3.4 快照/回退操作
8.3.5 直通交換和存儲轉發模式
8.3.6 FIFO指針復位
8.3.7 不同的寫入、讀取數據寬度
8.3.8 使用FIFO的缺點
8.3.9 基於觸發器或者SRAM的FIFO
8.4 仲裁
8.4.1 關於仲裁
8.4.2 常規仲裁方案
8.4.3 嚴格優先權輪詢
8.4.4 公平輪詢
8.4.5 公平輪詢(仲裁w/o死周期)
8.4.6 帶權重的輪詢(WRR)
8.4.7 權重輪詢(WRR):第二種方法
8.4.8 兩組輪詢
8.5 匯流排接口
8.5.1 匯流排仲裁
8.5.2 split-transaction(分割處理)匯流排
8.5.3 流水線式匯流排
8.6 鍊表
8.7 近期最少使用(LRU)算法
8.7.1 LRU的矩陣實現
8.7.2 採用矩陣法實現LRU的Verilog代碼
第9章 設計ASIC/SoC
9.1 設計晶片——如何開展
9.2 結構和微結構
9.2.1 儘可能保持簡單
9.2.2 善於平衡
9.2.3 處理好錯誤和異常
9.3 數據路徑
9.3.1 數據流
9.3.2 時鐘
9.4 控制單元
9.4.1 關注邊界條件
9.4.2 注意細節
9.4.3 多輸入點
9.4.4 正確理解規範
9.5 其他考慮
9.5.1 門數
9.5.2 焊盤受限與核心受限
9.5.3 時鐘樹和復位樹
9.5.4 EEPROM、配置引腳
第10章 設計經驗
10.1 文檔
10.1.1 可讀性
10.1.2 注釋
10.1.3 命名規則
10.2 在編寫第一行代碼之前
10.2.1 直到你腦海里有了藍圖才開始
10.2.2 腦海中的模擬
10.3 一些建議
10.3.1 哪種風格——數據流或算法
10.3.2 暫存器型輸出
10.3.3 使用狀態機而不是鬆散的控制邏輯
10.3.4 綜合和仿真不匹配
10.3.5 設計的模組化和參數化
10.3.6 加法器、減法器的有效使用
10.4 需要避免的情況
10.4.1 不要形成組合邏輯環路
10.4.2 避免意外生成鎖存器
10.4.3 不要採用基於延遲的設計
10.4.4 不要對一個變數多次賦值
10.5 初步完成RTL代碼之後
10.5.1 初步完成代碼之後的回顧
10.5.2 目測RTL代碼
10.5.3 對發現bug感到驚喜
10.6 設計要面向未來使用需求
10.6.1 易於實現的暫存器結構
10.6.2 考慮將來需求
10.7 高速設計
10.7.1 使用獨熱碼進行狀態編碼
10.7.2 使用互斥的數據選擇器而不是優先權編碼器
10.7.3 避免大量散亂的組合邏輯電路
10.7.4 複製或克隆
10.7.5 使用同步復位時要小心
10.7.6 將後到的信號放在邏輯的前面
10.8 SoC設計經驗
10.8.1 使用雙觸發器同步電路
10.8.2 將所有復位電路放在一起
第11章 系統概念(第1部分)
11.1 PC系統結構
11.2 存儲器
11.2.1 存儲器層次結構
11.2.2 CPU使用高速快取的方法
11.2.3 cache的架構
11.2.4 cache的組織方式
11.2.5 虛擬存儲器(Virtual Memory)
11.2.6 動態隨機訪問存儲器(DRAM)
11.2.7 靜態隨機訪問存儲器(SRAM)
11.2.8 內容可定址存儲器(CAM)
11.2.9 CAM的Verilog模型
11.2.10 ROM、PROM、EPROM和EEPROM
11.2.11 快閃記憶體
11.3 中斷
11.3.1 中斷不同部分
11.3.2 中斷向量表
11.3.3 I/O設備產生的中斷
11.3.4 高級可程式中斷控制器
11.3.5 INTx中斷共享
11.3.6 MSI中斷
11.3.7 MSI-X中斷
11.3.8 中斷聚合
11.3.9 中斷產生的RTL示例
11.4 PIO(Programmed IO)模式的數據傳送
11.5 直接存儲器訪問
11.5.1 什麼是DMA
11.5.2 第三方、第一方DMA和RDMA
11.5.3 分/集式DMA
11.5.4 DMA描述符
11.5.5 環形描述符結構
11.5.6 鍊表描述符結構
11.5.7 DMA控制器的設計
11.5.8 DMA控制器的Verilog RTL模型
第12章 系統概念(第2部分)
12.1 永久存儲器——硬碟
12.1.1 磁碟結構
12.1.2 磁碟定址
12.1.3 硬碟控制器
12.1.4 硬碟的類型:SATA硬碟和基於SAS的硬碟
12.1.5 RAID(獨立磁碟冗餘陣列)
12.2 永久存儲設備——固態盤
12.2.1 快閃記憶體的組織
12.2.2 快閃記憶體寫入、擦除
12.2.3 邏輯地址到物理地址的轉換
12.2.4 無用存儲空間回收
12.2.5 耗損均衡
12.2.6 寫放大及其緩解方法
12.2.7 超量供給
12.2.8 SSD中的高速快取
12.2.9 ECC和RAID
12.2.10 快閃記憶體的一些重要指標
12.2.11 NVM匯流排
12.3 DDR存儲器
12.3.1 DDR存儲器命令
12.3.2 DDR的初始化和校準
12.3.3 DDR存儲器術語
12.4 軟硬體協同
12.4.1 設備驅動
12.4.2 軟體層
12.4.3 BIOS
12.4.4 核心模式和用戶模式
12.4.5 控制/狀態暫存器、RO、粘著位
第13章 嵌入式系統13.1 AMBA匯流排架構
13.1.1 AMBA模組圖
13.1.2 AHB匯流排
13.1.3 AXI匯流排
13.2 其他匯流排(OCP、Avalon、Wishbone和IBM Core Connect)
13.3 非透明橋接
第14章 ASIC/SoC的可測試性
14.1 簡介
14.1.1 為什麼測試很重要
14.1.2 故障類型
14.2 ATPG
14.3 掃描
14.3.1 內部掃描
14.3.2 邊界掃描
14.3.3 IDDQ測試
14.4 SoC測試策略
14.4.1 SoC的內部結構
14.4.2 可測性設計(DFT)
14.4.3 DFT設計準則
14.4.4 測試層面和測試向量
第15章 晶片開發流程與工具
15.1 簡介
15.1.1 晶片設計的不同階段
15.2 前端設計過程所使用的工具
15.2.1 代碼分析工具
15.2.2 仿真工具
15.3 後端設計過程使用的工具
15.3.1 綜合工具
15.3.2 靜態定時分析及常用工具
15.3.3 SDC約束檔案
15.3.4 Max Cap/Maxtrans檢查
15.3.5 門級仿真
15.4 tape-out 和相關工具
15.4.1 不同類型的tape-out
15.4.2 等效性檢查
15.4.3 網表ECO
15.4.4 FIB操作
15.5 在矽片調試
第16章 功率節約技術
16.1 簡介
16.2 功耗分析基礎
16.3 通過控制工作頻率降低功耗
16.3.1 降低頻率、增大數據路徑寬度
16.3.2 動態頻率調整
16.3.3 零頻率/門控時鐘
16.4 減少電容負載
16.5 降低工作電壓
16.5.1 動態改變工作電壓
16.5.2 零操作電壓
16.5.3 電源阱與隔離
第17章 功率管理
17.1 功率管理的基礎知識
17.2 系統級功率管理與ACPI
17.3 CPU功率狀態——C狀態
17.4 設備級功率管理與D狀態
17.5 系統、設備和鏈路間的關係
第18章 串列匯流排技術
18.1 串列匯流排結構
18.1.1 串列匯流排的出現
18.1.2 串列匯流排的優缺點
18.1.3 串列匯流排結構
18.1.4 串列匯流排時鐘
18.1.5 傳送路徑的微結構
18.1.6 接收路徑的微結構
18.2 串列匯流排中的先進設計理念
18.2.1 位元組分割/鏈路聚合
18.2.2 通道綁定與去偏移
18.2.3 極性翻轉
18.2.4 線路翻轉
18.2.5 鎖相環(PLL)
18.3 串列匯流排的PMA層功能
18.3.1 傳送均衡
18.3.2 接收均衡
18.3.3 端接電阻
第19章 串列協定(第1部分)
19.1 PCIe
19.1.1 PCIe功能特性
19.1.2 PCIe頻寬
19.1.3 PCIe交換結構
19.1.4 PCIe配置空間暫存器
19.1.5 PCIe的交換機制
19.2 SATA
19.2.1 引言
19.2.2 SATA架構
19.2.3 SATA的其他變種
19.3 通用串列匯流排
19.3.1 引言
19.3.2 全速、高速和超高速USB
19.3.3 USB的顯著功能特性
19.3.4 USB 3.0(超高速USB)
19.4 雷電接口
19.4.1 雷電接口介紹
19.4.2 雷電接口架構
第20章 串列協定(第2部分)
20.1 乙太網簡介
20.2 OSI和乙太網協定層次
20.3 乙太網幀格式
20.4 10 Mbps乙太網
20.5 快速乙太網(100 Mbps)
20.6 千兆位乙太網(1 Gbps)
20.7 萬兆位乙太網(10 Gbps)
20.8 40 G和100 G乙太網
20.9 乙太網橋接器、交換機與路由器
附錄A 資源
附錄B FPGA 101
附錄C 用於驗證的測試平台(testbench)
附錄D System Verilog斷言(SVA)
縮略詞

相關詞條

熱門詞條

聯絡我們