圖書內容
本書依據數字積體電路系統工程開發的要求與特點,利用Verilog HDL對數字系統進行建模、設計與驗證,對ASIC/FPGA系統晶片工程設計開發的關鍵技術與流程進行了深入講解,內容包括:積體電路晶片系統的建模、電路結構權衡、流水線技術、多核微處理器、功能驗證、時序分析、測試平台、故障模擬、可測性設計、邏輯綜合、后綜合驗證等積體電路系統的前後端工程設計與實現中的關鍵技術及設計案例。
書中以大量設計實例敘述了積體電路系統工程開發須遵循的原則、基本方法、實用技術、設計經驗與技巧。
目 錄
第1章 數字設計方法概論
1.1 設計方法簡介
1.1.1 設計規格
1.1.2 設計畫分
1.1.3 設計輸入
1.1.4 仿真與功能驗證
1.1.5 設計整合與驗證
1.1.6 預綜合完成
1.1.7 門級綜合與工藝映射
1.1.8 后綜合設計確認
1.1.9 后綜合時序驗證
1.1.10 測試生成與故障模擬
1.1.11 布局與布線
1.1.12 物理和電氣設計規則檢查
1.1.13 提取寄生參量
1.1.14 設計完成
1.2 IC工藝選擇
1.3 後續內容概覽
參考文獻
第2章 組合邏輯設計回顧
2.1 組合邏輯與布爾代數
2.1.1 ASIC庫單元
2.1.2 布爾代數
2.1.3 狄摩根定律
2.2 布爾代數化簡定理
2.3 組合邏輯的表示
2.3.1 積之和表示法
2.3.2 和之積表示法
2.4 布爾表達式的化簡
2.4.1 異或表達式的化簡
2.4.2 卡諾圖(積之和形式)
2.4.3 卡諾圖(和之積形式)
2.4.4 卡諾圖與任意項
2.4.5 擴展的卡諾圖
2.5 毛刺與冒險
2.5.1 靜態冒險的消除(積之和形式)
2.5.2 消除兩級電路靜態冒險的小結
2.5.3 多級電路中的靜態冒險
2.5.4 消除多級電路靜態冒險的小結
2.5.5 動態冒險
2.6 邏輯設計模組
2.6.1 與非或非結構
2.6.2 多路復用器
2.6.3 多路解復用器
2.6.4 編碼器
2.6.5 優先編碼器
2.6.6 解碼器
2.6.7 優先解碼器
參考文獻
習題
第3章 時序邏輯設計基礎
3.1 存儲元件
3.1.1 鎖存器
3.1.2 透明鎖存器
3.2 觸發器
3.2.1 D觸發器
3.2.2 主從觸發器
3.2.3 J-K觸發器
3.2.4 T觸發器
3.3 匯流排與三態器件
3.4 時序機設計
3.5 狀態轉移圖
3.6 設計舉例: BCD碼到餘3碼的轉換器
3.7 數據傳輸的串列線碼轉換器
3.7.1 設計舉例: 用Mealy型FSM實現串列線性碼轉換
3.7.2 設計舉例: 用Moore型FSM實現串列線碼轉換
3.8 狀態化簡與等價狀態
參考文獻
習題
第4章 Verilog邏輯設計介紹
4.1 組合邏輯的結構化模型
4.1.1 Verilog原語和設計封裝
4.1.2 Verilog結構化模型
4.1.3 模組連線埠
4.1.4 語言規則
4.1.5 自頂向下的設計和模組嵌套
4.1.6 設計層次和原始碼結構
4.1.7 Verilog矢量
4.1.8 結構化連線
4.2 邏輯系統設計驗證及測試方法
4.2.1 Verilog中的四值邏輯和信號解析
4.2.2 測試方法
4.2.3 測試平台的信號發生器
4.2.4 事件驅動仿真
4.2.5 測試模板
4.2.6 定長數
4.3 傳播延時
4.3.1 慣性延時
4.3.2 傳輸延時
4.4 組合與時序邏輯的Verilog真值表模型
參考文獻
習題
第5章 用組合與時序邏輯的行為級模型進行邏輯設計
5.1 行為建模
5.2 行為級建模的數據類型的簡要介紹
5.3 基於布爾方程的組合邏輯行為級模型
5.4 傳播延時與連續賦值
5.5 Verilog中的鎖存器和電平敏感電路
5.6 觸發器和鎖存器的周期性行為模型
5.7 周期性行為和邊沿檢測
5.8 行為建模方式的比較
5.8.1 連續賦值模型
5.8.2 數據流/暫存器傳輸級模型
5.8.3 基於算法的模型
5.8.4 連線埠名稱: 風格問題
5.8.5 用行為級模型仿真
5.9 多路復用器、 編碼器和解碼器的行為模型
5.10 線性反饋移位暫存器的數據流模型
5.11 用循環算法的數字機模型
5.11.1 IP(智慧財產權)的復用和參數化模型
5.11.2 時鐘發生器
5.12 多循環操作狀態機
5.13 設計檔案中的函式和任務: 是精明還是愚蠢?
5.13.1 任務
5.13.2 函式
5.14 行為建模的算法狀態機圖
5.15 ASMD圖
5.16 計數器、 移位暫存器和暫存器組的行為級模型
5.16.1 計數器
5.16.2 移位暫存器
5.16.3 暫存器組和暫存器(存儲器)陣列
5.17 用於異步信號的去抖動開關、 亞穩定性和同步裝置
5.18 設計實例: 鍵盤掃描器和編碼器
參考文獻
習題
第6章 組合邏輯與時序邏輯的綜合
6.1 綜合簡介
6.1.1 邏輯綜合
6.1.2 RTL綜合
6.1.3 高級綜合
6.2 組合邏輯的綜合
6.2.1 優先權結構的綜合
6.2.2 利用邏輯無關緊要條件
6.2.3 ASIC單元與資源共享
6.3 帶鎖存器的時序邏輯綜合
6.3.1 鎖存器的無意綜合
6.3.2 鎖存器的有意綜合
6.4 三態器件和匯流排接口的綜合
6.5 帶有觸發器的時序邏輯綜合
6.6 顯式狀態機的綜合
6.6.1 BCD碼/餘3碼轉換器的綜合
6.6.2 設計舉例: Mealy型NRZ碼/Manchester線性碼轉換器的綜合
6.6.3 設計舉例: Moore型NRZ碼/Manchester線性碼轉換器的綜合
6.6.4 設計舉例: 序列檢測器的綜合
6.7 暫存器邏輯
6.8 狀態編碼
6.9 隱式狀態機、 暫存器和計數器的綜合
6.9.1 隱式狀態機
6.9.2 計數器綜合
6.9.3 暫存器綜合
6.10 復位
6.11 門控時鐘與時鐘使能的綜合
6.12 預測綜合結果
6.12.1 數據類型綜合
6.12.2 運算符分組
6.12.3 表達式替代
6.13 循環的綜合
6.13.1 不帶內嵌定時控制的靜態循環
6.13.2 帶內嵌定時控制的靜態循環
6.13.3 不帶內嵌定時控制的非靜態循環
6.13.4 帶內嵌定時控制的非靜態循環
6.13.5 用狀態機替代不可綜合的循環
6.14 要避免的設計陷阱
6.15 分割與合併: 設計畫分
參考文獻
習題
第7章 數據通路控制器的設計與綜合
7.1 時序狀態機的劃分
7.2 設計實例: 二進制計數器
7.3 RISC存儲程式機的設計與綜合
7.3.1 RISC SPM: 處理器
7.3.2 RISC SPM: ALU
7.3.3 RISC SPM: 控制器
7.3.4 RISC SPM: 指令集
7.3.5 RISC SPM: 控制器設計
7.3.6 RISC SPM: 程式執行
7.4 設計實例: UART
7.4.1 UART的操作
7.4.2 UART傳送器
7.4.3 UART接收器
參考文獻
習題
第8章 可程式邏輯及存儲器件
8.1 可程式邏輯器件
8.2 存儲器件
8.2.1 唯讀存儲器
8.2.2 可程式ROM(PROM)
8.2.3 可擦除ROM
8.2.4 基於ROM的組合邏輯實現
8.2.5 用於ROM的Verilog系統任務
8.2.6 ROM的比較
8.2.7 基於ROM的狀態機
8.2.8 快閃記憶體
8.2.9 靜態隨機存儲器(SRAM)
8.2.10 鐵電非易失性存儲器
8.3 可程式邏輯陣列(PLA)
8.3.1 PLA最小化
8.3.2 PLA建模
8.4 可程式陣列邏輯(PAL)
8.5 PLD的可程式性
8.6 複雜可程式邏輯器件
8.7 現場可程式門陣列
8.7.1 FPGA在ASIC市場中的角色
8.7.2 FPGA技術
8.7.3 Xilinx公司Virtex系列FPGA
8.8 片上系統(SoC)的嵌入式可程式IP核
8.9 基於Verilog的FPGA設計流程
8.10 FPGA綜合
參考文獻
相關網站
習題及基於FPGA的設計訓練
第9章 數字處理器的算法和架構
9.1 算法、 循環嵌套程式和數據流圖
9.2 設計實例: 半色調像素圖像轉換器
9.2.1 半色調像素圖像轉換器的原型設計
9.2.2 基於NLP的半色調像素圖像轉換器結構
9.2.3 半色調像素圖像轉換器的最小並行處理器結構
9.2.4 半色調像素圖像轉換器: 設計權衡
9.2.5 帶反饋數據流圖的結構
9.3 數字濾波器和信號處理器
9.3.1 FIR濾波器
9.3.2 數字濾波器設計過程
9.3.3 IIR濾波器
9.4 構建信號處理器的基本運算單元模型
9.4.1 積分器(累加器)
9.4.2 微分器
9.4.3 抽樣和插值濾波器
9.5 流水線結構
9.5.1 設計實例: 流水線型加法器
9.5.2 設計實例: 流水線型FIR濾波器
9.6 環形緩衝器
9.7 異步FIFO——跨越時鐘域的同步問題
9.7.1 簡化異步FIFO
9.7.2 異步FIFO的時鐘同步
參考文獻
習題
第10章 算術處理器架構
10.1 數的表示方法
10.1.1 負整數的原碼錶示
10.1.2 負整數的反碼錶示方法
10.1.3 正數和負數的補碼錶示方法
10.1.4 小數的表示
10.2 加減法功能單元
10.2.1 行波進位加法器
10.2.2 超前進位加法器
10.2.3 上溢出和下溢出
10.3 乘法運算功能單元
10.3.1 組合(並行)二進制乘法器
10.3.2 時序二進制乘法器
10.3.3 時序乘法器設計: 層次化分解
10.3.4 基於STG的控制器設計
10.3.5 基於STG的高效二進制時序乘法器
10.3.6 基於ASMD的時序二進制乘法器
10.3.7 基於ASMD的高效二進制時序乘法器
10.3.8 基於ASMD數據通路和控制器設計的總結
10.3.9 精簡暫存器時序乘法器
10.3.10 隱式狀態機二進制乘法器
10.3.11 Booth算法時序乘法器
10.3.12 比特對編碼
10.4 有符號二進制數乘法
10.4.1 有符號數的乘積: 被乘數為負, 乘數為正
10.4.2 有符號數的乘積: 被乘數為正, 乘數為負
10.4.3 有符號數的乘積: 被乘數、 乘數均為負
10.5 小數乘法
10.5.1 有符號小數: 被乘數、 乘數均為正
10.5.2 有符號小數: 被乘數為負, 乘數為正
10.5.3 有符號小數: 被乘數為正, 乘數為負
10.5.4 有符號小數: 被乘數、 乘數均為負
10.6 除法功能單元
10.6.1 無符號二進制數的除法
10.6.2 無符號二進制數的高效除法
10.6.3 精簡暫存器時序除法器
10.6.4 有符號二進制數(補碼)的除法
10.6.5 帶符號的計算
參考文獻
習題
第11章 后綜合設計任務
11.1 后綜合設計驗證
11.2 后綜合時序驗證
11.2.1 靜態時序分析
11.2.2 時序規範
11.2.3 影響時序的因素
11.3 ASIC中時序違約的消除
11.4 虛假路徑
11.5 用於時序驗證的系統任務
11.5.1 時序檢查: 建立時間條件
11.5.2 時序檢查: 保持時間約束
11.5.3 時序檢查: 建立時間和保持時間約束
11.5.4 時鐘檢查: 脈衝寬度約束
11.5.5 時序檢查: 信號偏移約束
11.5.6 時序檢查: 時鐘周期
11.5.7 時序檢查: 恢復時間
11.6 故障模擬及製造測試
11.6.1 電路缺陷和故障
11.6.2 故障檢測與測試
11.6.3 D標記法
11.6.4 組合電路的自動測試模板生成
11.6.5 故障覆蓋和缺陷級別
11.6.6 時序電路的測試生成
11.7 故障模擬
11.7.1 故障解析
11.7.2 串列故障模擬
11.7.3 並行故障模擬
11.7.4 並發性故障模擬
11.7.5 機率性故障模擬
11.8 JTAG連線埠和可測性設計
11.8.1 邊界掃描和JTAG連線埠
11.8.2 JTGA操作模式
11.8.3 JTAG暫存器
11.8.4 JTAG指令
11.8.5 TAP結構
11.8.6 TAP控制器狀態機
11.8.7 設計實例: JTAG測試
11.8.8 設計實例: 內建自測試
參考文獻
習題
附錄A Verilog原語
附錄B Verilog關鍵字
附錄C Verilog數據類型
附錄D Verilog運算符
附錄E Verilog語言形式化語法(I)
附錄F Verilog語言形式化語法(II)
附錄G Verilog語言的附加特性
附錄H 觸發器和鎖存器類型
附錄I Verilog 2001, 2005
附錄J 程式語言接口
附錄K 相關網站
中英文術語對照表