作 者:(美)基肖爾·米什拉(Kishore Mishra) 著;喬廬峰 等 譯 著
定 價:109
出 版 社:電子工業出版社
出版日期:2018年02月01日
頁 數:395
裝 幀:平裝
ISBN:9787121334832
●第1章緒論
第2章寄存器傳輸語言(RTL)
第3章可綜合的Verilog——用於電路設計
3.1什麼是Verilog
3.2Verilog的發展歷史
3.3Verilog的結構
3.4硬件RTL代碼的執行
3.5Verilog模塊分析
3.6Verilog中的觸發器
3.6.1帶RST復位引腳的觸發器
3.6.2沒有復位引腳的觸發器
3.7組合邏輯
3.7.1always塊語句
3.7.2case和if-else語句
3.7.3賦值語句
3.8Verilog操作符
3.8.1操作符描述
3.8.2操作符的執行順序
3.8.3Verilog中的注釋
3.9可重用和模塊化設計
3.9.1參數化設計
3.9.2Verilog函數
3.9.3Verilog中的generate結構
3.9.4Verilog中的`ifdef
3.9.5數組、多維數組
第4章用於驗證的Verilog語法
4.1Verilog的測試平臺
4.2initial語句
4.3Verilog繫統任務
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.1while循環
4.6.2for循環、repeat
4.6.3force/release
4.6.4fork/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.9XOR(異或)、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.1D觸發器時序圖
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.2LFSR(線性反饋移位寄存器)計數器
第6章數字設計——基礎模塊
6.1LFSR
6.1.1引言
6.1.2斐波那契LFSR與伽羅瓦LFSR
6.1.3LFSR反饋多項式
6.1.4LFSR的用法
6.2擾碼與解擾
6.2.1什麼是擾碼與解擾
6.2.2擾碼的作用
6.2.3串行擾碼器
6.2.4並行擾碼器
6.2.5擾碼電路設計要點
6.2.6PCIe擾碼電路
6.2.7VerilogRTL-PCIe擾碼器
6.3檢錯與糾錯
6.3.1檢錯
6.3.2錯誤糾正
6.3.3糾錯編碼
6.3.4漢明碼
6.3.5漢明碼應用舉例——DDRECC
6.3.6BCH編碼
6.3.7裡德-所羅門編碼
6.3.8LDPC編碼
6.3.9卷積碼
6.3.10卷積譯碼
6.3.11軟判決與硬判決
6.4奇偶校驗
6.4.1偶校驗和奇校驗
6.4.2奇偶校驗位的生成
6.4.3奇偶校驗的應用
6.5CRC(循環冗餘校驗)
6.5.1CRC介紹
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.98b/10b編碼/解碼
6.9.18b/10b編碼方式
6.9.2多字節8b/10b編碼
6.9.3disparity選擇8b/10b編碼方案
6.1064b/66b編碼/解碼
6.10.164b/66b編碼機制
6.10.2128b/130b編碼機制
6.11NRZ、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.4SATA流控機制
7.5.5吉比特以太網流控
7.5.6TCP滑動窗流控機制
7.6流水線操作
7.6.1流水線介紹
7.6.2流水線的簡單實例
7.6.3RISC——流水線處理器
7.6.4流水線結構和並行操作
7.6.5流水線加法器
7.6.6並行加法器
7.6.7繫統設計中的流水線
7.7out-of-order執行(亂序執行)
7.7.1現代處理器:out-of-order執行
7.7.2SATANCQ: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.2FIFO
8.2.1引言
8.2.2FIFO操作
8.2.3同步FIFO
8.2.4同步FIFO
8.2.5異步FIFO的工作機制
8.2.6異步FIFO的實現
8.3FIFO高級原理
8.3.1FIFO的大小
8.3.2FIFO的深度
8.3.3輔助數據或標簽
8.3.4快照/回退操作
8.3.5直通交換和存儲轉發模式
8.3.6FIFO指針復位
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.2split-transaction(分割處理)總線
8.5.3流水線式總線
8.6鏈表
8.7近期最少使用(LRU)算法
8.7.1LRU的矩陣實現
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.4EEPROM、配置引腳
第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.8SoC設計經驗
10.8.1使用雙觸發器同步電路
10.8.2將所有復位電路放在一起
第11章繫統概念(第1部分)
11.1PC繫統結構
11.2存儲器
11.2.1存儲器層次結構
11.2.2CPU使用高速緩存的方法
11.2.3cache的架構
11.2.4cache的組織方式
11.2.5虛擬存儲器(VirtualMemory)
11.2.6動態隨機訪問存儲器(DRAM)
11.2.7靜態隨機訪問存儲器(SRAM)
11.2.8內容可尋址存儲器(CAM)
11.2.9CAM的Verilog模型
11.2.10ROM、PROM、EPROM和EEPROM
11.2.11閃存
11.3中斷
11.3.1中斷不同部分
11.3.2中斷向量表
11.3.3I/O設備產生的中斷
11.3.4高級可編程中斷控制器
11.3.5INTx中斷共享
11.3.6MSI中斷
11.3.7MSI-X中斷
11.3.8中斷聚合
11.3.9中斷產生的RTL示例
11.4PIO(ProgrammedIO)模式的數據傳送
11.5直接存儲器訪問
11.5.1什麼是DMA
11.5.2第三方、第一方DMA和RDMA
11.5.3分/集式DMA
11.5.4DMA描述符
11.5.5環形描述符結構
11.5.6鏈表描述符結構
11.5.7DMA控制器的設計
11.5.8DMA控制器的VerilogRTL模型
第12章繫統概念(第2部分)
12.1較為存儲器——硬盤
12.1.1磁盤結構
12.1.2磁盤尋址
12.1.3硬盤控制器
12.1.4硬盤的類型:SATA硬盤和基於SAS的硬盤
12.1.5RAID(獨立磁盤冗餘陣列)
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.8SSD中的高速緩存
12.2.9ECC和RAID
12.2.10閃存的一些重要指標
12.2.11NVM總線
12.3DDR存儲器
12.3.1DDR存儲器命令
12.3.2DDR的初始化和校準
12.3.3DDR存儲器術語
12.4軟硬件協同
12.4.1設備驅動
12.4.2軟件層
12.4.3BIOS
12.4.4內核模式和用戶模式
12.4.5控制/狀態寄存器、RO、粘著位
第13章嵌入式繫統13.1AMBA總線架構
13.1.1AMBA模塊圖
13.1.2AHB總線
13.1.3A線
13.2其他總線(OCP、Avalon、Wishbone和IBM Core Connect)
13.3非透明橋接
第14章ASIC/SoC的可測試性
14.1簡介
14.1.1為什麼測試很重要
14.1.2故障類型
14.2ATPG
14.3掃描
14.3.1內部掃描
14.3.2邊界掃描
14.3.3IDDQ測試
14.4SoC測試策略
14.4.1SoC的內部結構
14.4.2可測性設計(DFT)
14.4.3DFT設計準則
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.3SDC約束文件
15.3.4MaxCap/Maxtrans檢查
15.3.5門級仿真
15.4tape-out和相關工具
15.4.1不同類型的tape-out
15.4.2等效性檢查
15.4.3網表ECO
15.4.4FIB操作
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.3CPU功率狀態——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.1PCIe
19.1.1PCIe功能特性
19.1.2PCIe帶寬
19.1.3PCIe交換結構
19.1.4PCIe配置空間寄存器
19.1.5PCIe的交換機制
19.2SATA
19.2.1引言
19.2.2SATA架構
19.2.3SATA的其他變種
19.3通用串行總線
19.3.1引言
19.3.2全速、高速和超高速USB
19.3.3USB的顯著功能特性
19.3.4USB3.0(超高速USB)
19.4雷電接口
19.4.1雷電接口介紹
19.4.2雷電接口架構
第20章串行協議(第2部分)
20.1以太網簡介
20.2OSI和以太網協議層次
20.3以太網幀格式
20.410Mbps以太網
20.5快速以太網(100Mbps)
20.6千兆位以太網(1Gbps)
20.7萬兆位以太網(10Gbps)
20.840G和100G以太網
20.9以太網橋接器、交換機與路由器
附錄A資源
附錄BFPGA101
附錄C用於驗證的測試平臺(testbench)
附錄DSystemVerilog斷言(SVA)
縮略詞
本書通過大量實例由淺入深地介紹了數字電路和數字繫統設計中的重要概念和知識要點。本書分兩大部分。第一部分重點關注數字電路設計層面,偏重基礎。第2章到第6章為Verilog語法與數字電路設計相關知識,包括常用語法、基本數字等。第7章到第9章重點介紹高級數字設計知識,包括數字繫統架構設計、復雜數字繫統中常用的、算法,並給出了大量工程實例。第10章給出了一些重要的工程設計經驗,包括文檔管理、代碼設計、繫統驗證、高可靠性設計等。第二部分重點關注數字繫統設計層面。第11章到第13章介紹了常用數字繫統關鍵電路,包括與處理器繫統相關的存儲結構與存儲訪問技術、存儲介質(硬盤、閃存、DDR等)與驅動電路、處理器總線結構與協議等。第14章和第15章介紹了電路可測性設計、靜態定時分析、芯片工程修改的相關知識。第16章和第17章從電路設計層面到繫統設計層面介紹了降低電路功耗的方法。第18章到第20章等
(美)基肖爾·米什拉(Kishore Mishra) 著;喬廬峰 等 譯 著
基肖爾·米什拉(Kishore Mishra),在芯片設計領域已積累20多年的實踐經驗,曾先後任職於Texas Instrument和Intel公司,擅長處理器外圍芯片組設計,專注於PCI Express、SATA和DDR技術,以及芯片功率管理/低功耗設計技術領域。曾與他人合作創立過多家公司。所負責設計的PCI Express交換芯片IP核已被很多大型公司使用並實現了量產。曾在多個國際會議上發表論文並持有3項美國專利。Kishore近年來很重視教材編寫,以分享20年來積累的數字繫統設計知識和經驗。