關于我們
書單推薦
新書推薦
|
Verilog HDL高級數(shù)字設計(第二版)
本書依據數(shù)字集成電路系統(tǒng)工程開發(fā)的要求與特點,利用Verilog HDL對數(shù)字系統(tǒng)進行建模、設計與驗證,對ASIC/FPGA系統(tǒng)芯片工程設計開發(fā)的關鍵技術與流程進行了深入講解,內容包括:集成電路芯片系統(tǒng)的建模、電路結構權衡、流水線技術、多核微處理器、功能驗證、時序分析、測試平臺、故障模擬、可測性設計、邏輯綜合、后綜合驗證等集成電路系統(tǒng)的前后端工程設計與實現(xiàn)中的關鍵技術及設計案例。書中以大量設計實例敘述了集成電路系統(tǒng)工程開發(fā)須遵循的原則、基本方法、實用技術、設計經驗與技巧。
第1章 數(shù)字設計方法概論
1.1 設計方法簡介 1.1.1 設計規(guī)格 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 物理和電氣設計規(guī)則檢查 1.1.13 提取寄生參量 第1章 數(shù)字設計方法概論 1.1 設計方法簡介 1.1.1 設計規(guī)格 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 物理和電氣設計規(guī)則檢查 1.1.13 提取寄生參量 1.1.14 設計完成 1.2 IC工藝選擇 1.3 后續(xù)內容概覽 參考文獻 第2章 組合邏輯設計回顧 2.1 組合邏輯與布爾代數(shù) 2.1.1 ASIC庫單元 2.1.2 布爾代數(shù) 2.1.3 狄摩根定律 2.2 布爾代數(shù)化簡定理 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 靜態(tài)冒險的消除(積之和形式) 2.5.2 消除兩級電路靜態(tài)冒險的小結 2.5.3 多級電路中的靜態(tài)冒險 2.5.4 消除多級電路靜態(tài)冒險的小結 2.5.5 動態(tài)冒險 2.6 邏輯設計模塊 2.6.1 與非或非結構 2.6.2 多路復用器 2.6.3 多路解復用器 2.6.4 編碼器 2.6.5 優(yōu)先編碼器 2.6.6 譯碼器 2.6.7 優(yōu)先譯碼器 參考文獻 習題 第3章 時序邏輯設計基礎 3.1 存儲元件 3.1.1 鎖存器 3.1.2 透明鎖存器 3.2 觸發(fā)器 3.2.1 D觸發(fā)器 3.2.2 主從觸發(fā)器 3.2.3 J-K觸發(fā)器 3.2.4 T觸發(fā)器 3.3 總線與三態(tài)器件 3.4 時序機設計 3.5 狀態(tài)轉移圖 3.6 設計舉例: BCD碼到余3碼的轉換器 3.7 數(shù)據傳輸?shù)拇芯碼轉換器 3.7.1 設計舉例: 用Mealy型FSM實現(xiàn)串行線性碼轉換 3.7.2 設計舉例: 用Moore型FSM實現(xiàn)串行線碼轉換 3.8 狀態(tài)化簡與等價狀態(tài) 參考文獻 習題 第4章 Verilog邏輯設計介紹 4.1 組合邏輯的結構化模型 4.1.1 Verilog原語和設計封裝 4.1.2 Verilog結構化模型 4.1.3 模塊端口 4.1.4 語言規(guī)則 4.1.5 自頂向下的設計和模塊嵌套 4.1.6 設計層次和源代碼結構 4.1.7 Verilog矢量 4.1.8 結構化連接 4.2 邏輯系統(tǒng)設計驗證及測試方法 4.2.1 Verilog中的四值邏輯和信號解析 4.2.2 測試方法 4.2.3 測試平臺的信號發(fā)生器 4.2.4 事件驅動仿真 4.2.5 測試模板 4.2.6 定長數(shù) 4.3 傳播延時 4.3.1 慣性延時 4.3.2 傳輸延時 4.4 組合與時序邏輯的Verilog真值表模型 參考文獻 習題 第5章 用組合與時序邏輯的行為級模型進行邏輯設計 5.1 行為建模 5.2 行為級建模的數(shù)據類型的簡要介紹 5.3 基于布爾方程的組合邏輯行為級模型 5.4 傳播延時與連續(xù)賦值 5.5 Verilog中的鎖存器和電平敏感電路 5.6 觸發(fā)器和鎖存器的周期性行為模型 5.7 周期性行為和邊沿檢測 5.8 行為建模方式的比較 5.8.1 連續(xù)賦值模型 5.8.2 數(shù)據流/寄存器傳輸級模型 5.8.3 基于算法的模型 5.8.4 端口名稱: 風格問題 5.8.5 用行為級模型仿真 5.9 多路復用器、 編碼器和譯碼器的行為模型 5.10 線性反饋移位寄存器的數(shù)據流模型 5.11 用循環(huán)算法的數(shù)字機模型 5.11.1 IP(知識產權)的復用和參數(shù)化模型 5.11.2 時鐘發(fā)生器 5.12 多循環(huán)操作狀態(tài)機 5.13 設計文件中的函數(shù)和任務: 是精明還是愚蠢? 5.13.1 任務 5.13.2 函數(shù) 5.14 行為建模的算法狀態(tài)機圖 5.15 ASMD圖 5.16 計數(shù)器、 移位寄存器和寄存器組的行為級模型 5.16.1 計數(shù)器 5.16.2 移位寄存器 5.16.3 寄存器組和寄存器(存儲器)陣列 5.17 用于異步信號的去抖動開關、 亞穩(wěn)定性和同步裝置 5.18 設計實例: 鍵盤掃描器和編碼器 參考文獻 習題 第6章 組合邏輯與時序邏輯的綜合 6.1 綜合簡介 6.1.1 邏輯綜合 6.1.2 RTL綜合 6.1.3 高級綜合 6.2 組合邏輯的綜合 6.2.1 優(yōu)先級結構的綜合 6.2.2 利用邏輯無關緊要條件 6.2.3 ASIC單元與資源共享 6.3 帶鎖存器的時序邏輯綜合 6.3.1 鎖存器的無意綜合 6.3.2 鎖存器的有意綜合 6.4 三態(tài)器件和總線接口的綜合 6.5 帶有觸發(fā)器的時序邏輯綜合 6.6 顯式狀態(tài)機的綜合 6.6.1 BCD碼/余3碼轉換器的綜合 6.6.2 設計舉例: Mealy型NRZ碼/Manchester線性碼轉換器的綜合 6.6.3 設計舉例: Moore型NRZ碼/Manchester線性碼轉換器的綜合 6.6.4 設計舉例: 序列檢測器的綜合 6.7 寄存器邏輯 6.8 狀態(tài)編碼 6.9 隱式狀態(tài)機、 寄存器和計數(shù)器的綜合 6.9.1 隱式狀態(tài)機 6.9.2 計數(shù)器綜合 6.9.3 寄存器綜合 6.10 復位 6.11 門控時鐘與時鐘使能的綜合 6.12 預測綜合結果 6.12.1 數(shù)據類型綜合 6.12.2 運算符分組 6.12.3 表達式替代 6.13 循環(huán)的綜合 6.13.1 不帶內嵌定時控制的靜態(tài)循環(huán) 6.13.2 帶內嵌定時控制的靜態(tài)循環(huán) 6.13.3 不帶內嵌定時控制的非靜態(tài)循環(huán) 6.13.4 帶內嵌定時控制的非靜態(tài)循環(huán) 6.13.5 用狀態(tài)機替代不可綜合的循環(huán) 6.14 要避免的設計陷阱 6.15 分割與合并: 設計劃分 參考文獻 習題 第7章 數(shù)據通路控制器的設計與綜合 7.1 時序狀態(tài)機的劃分 7.2 設計實例: 二進制計數(shù)器 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: 程序執(zhí)行 7.4 設計實例: UART 7.4.1 UART的操作 7.4.2 UART發(fā)送器 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的組合邏輯實現(xiàn) 8.2.5 用于ROM的Verilog系統(tǒng)任務 8.2.6 ROM的比較 8.2.7 基于ROM的狀態(tài)機 8.2.8 閃存 8.2.9 靜態(tài)隨機存儲器(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 現(xiàn)場可編程門陣列 8.7.1 FPGA在ASIC市場中的角色 8.7.2 FPGA技術 8.7.3 Xilinx公司Virtex系列FPGA 8.8 片上系統(tǒng)(SoC)的嵌入式可編程IP核 8.9 基于Verilog的FPGA設計流程 8.10 FPGA綜合 參考文獻 相關網站 習題及基于FPGA的設計訓練 第9章 數(shù)字處理器的算法和架構 9.1 算法、 循環(huán)嵌套程序和數(shù)據流圖 9.2 設計實例: 半色調像素圖像轉換器 9.2.1 半色調像素圖像轉換器的原型設計 9.2.2 基于NLP的半色調像素圖像轉換器結構 9.2.3 半色調像素圖像轉換器的最小并行處理器結構 9.2.4 半色調像素圖像轉換器: 設計權衡 9.2.5 帶反饋數(shù)據流圖的結構 9.3 數(shù)字濾波器和信號處理器 9.3.1 FIR濾波器 9.3.2 數(shù)字濾波器設計過程 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 環(huán)形緩沖器 9.7 異步FIFO——跨越時鐘域的同步問題 9.7.1 簡化異步FIFO 9.7.2 異步FIFO的時鐘同步 參考文獻 習題 第10章 算術處理器架構 10.1 數(shù)的表示方法 10.1.1 負整數(shù)的原碼表示 10.1.2 負整數(shù)的反碼表示方法 10.1.3 正數(shù)和負數(shù)的補碼表示方法 10.1.4 小數(shù)的表示 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數(shù)據通路和控制器設計的總結 10.3.9 精簡寄存器時序乘法器 10.3.10 隱式狀態(tài)機二進制乘法器 10.3.11 Booth算法時序乘法器 10.3.12 比特對編碼 10.4 有符號二進制數(shù)乘法 10.4.1 有符號數(shù)的乘積: 被乘數(shù)為負, 乘數(shù)為正 10.4.2 有符號數(shù)的乘積: 被乘數(shù)為正, 乘數(shù)為負 10.4.3 有符號數(shù)的乘積: 被乘數(shù)、 乘數(shù)均為負 10.5 小數(shù)乘法 10.5.1 有符號小數(shù): 被乘數(shù)、 乘數(shù)均為正 10.5.2 有符號小數(shù): 被乘數(shù)為負, 乘數(shù)為正 10.5.3 有符號小數(shù): 被乘數(shù)為正, 乘數(shù)為負 10.5.4 有符號小數(shù): 被乘數(shù)、 乘數(shù)均為負 10.6 除法功能單元 10.6.1 無符號二進制數(shù)的除法 10.6.2 無符號二進制數(shù)的高效除法 10.6.3 精簡寄存器時序除法器 10.6.4 有符號二進制數(shù)(補碼)的除法 10.6.5 帶符號的計算 參考文獻 習題 第11章 后綜合設計任務 11.1 后綜合設計驗證 11.2 后綜合時序驗證 11.2.1 靜態(tài)時序分析 11.2.2 時序規(guī)范 11.2.3 影響時序的因素 11.3 ASIC中時序違約的消除 11.4 虛假路徑 11.5 用于時序驗證的系統(tǒng)任務 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 并發(fā)性故障模擬 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控制器狀態(tài)機 11.8.7 設計實例: JTAG測試 11.8.8 設計實例: 內建自測試 參考文獻 習題 附錄A Verilog原語 附錄B Verilog關鍵詞 附錄C Verilog數(shù)據類型 附錄D Verilog運算符 附錄E Verilog語言形式化語法(I) 附錄F Verilog語言形式化語法(II) 附錄G Verilog語言的附加特性 附錄H 觸發(fā)器和鎖存器類型 附錄I Verilog 2001, 2005 附錄J 編程語言接口 附錄K 相關網站 中英文術語對照表
前 言
精煉、明晰化與驗證 用硬件描述語言(HDL)建立行為級模型是現(xiàn)代專用集成電路設計的關鍵技術。如今, 大多數(shù)設計者使用基于硬件描述語言的設計方法, 創(chuàng)建基于語言的高層、抽象的電路描述, 以驗證其功能和時序。在本書第一版的使用過程中, 講授設計方法學所用的語言(IEEE 1464-1995)已經歷了兩次修改, 分別是IEEE 1364-2001及2005年的修訂版, 即Verilog-2001和Verilog-2005, 以提高其有效性和效率。 這一版的編寫動機和第一版基本是相同的。對那些準備在產品研發(fā)團隊做出成績的學生們來說, 必須了解如何在設計流程的關鍵階段使用硬件描述語言。因此, 需要有一門在內容上超越先修課程“數(shù)字設計”中學習過的基本原則和方法的課程, 本書就是為該課程而著的。 現(xiàn)在, 市面上討論硬件描述語言的書籍的數(shù)量已遠遠超過本書第一版出版時的數(shù)量。但是, 這些書大部分都定位于解釋語法, 而不是如何運用語言進行設計, 不太適合于課堂教學。本書的重點是硬件描述語言的設計方法學, 因此語言本身只是一個配角。這一版中強化了如何通過實例證明, 將一個數(shù)字系統(tǒng)描述并劃分為數(shù)據通路、狀態(tài)(反饋)信號和控制器(有限狀態(tài)機)系統(tǒng)結構的重要性。我們認為, 這種描述可使設計和驗證復雜數(shù)字系統(tǒng)的方法更加清楚、直接、明了。本書給出了大量的仿真結果和注釋, 以幫助學生掌握時序機的操作過程, 并深入理解由控制器產生的信號間的時序互動關系, 數(shù)據通路的操作, 以及從數(shù)據通路回饋給控制器的信號。其目的都是為了開發(fā)出可綜合、 無鎖存且無競爭的設計。 Verilog 2001和2005的語言增強功能已用于重新描述和簡化書中模型的代碼。我們強調工業(yè)界通用的規(guī)范和風格, 但并不鼓勵不考慮模型能否被綜合的學術模型風格。本書第二版已把第一版中處理同步FIFO的部分改為同步和異步FIFO, 并給出了精心設計的例子, 以解釋使用異步FIFO來同步跨越時鐘域的數(shù)據傳輸問題。 書中的設計實例已多次優(yōu)化和改進登錄華信教育資源網www.hxedu.com.cn可注冊下載本書相關配套資源。。從設計方法學的角度, 對一個嵌入式控制器, 用C語言建模和用Verilog建模, 這兩種設計方法學之間存在著競爭和互補的關系。基于C的方法執(zhí)行陳述性語句, 而Verilog HDL模擬了某個機器的多個并發(fā)的行為動作。后一種設計方法對硬件進行編譯, 而前一種是編譯預先存儲在硬件單元中的語句。對于某個特定應用, Verilog模型編譯的硬件在主機接口處生成了等效的I/O信號。對于嵌入式代碼而言, 其區(qū)別是不會產生等效的硬件。本書的目標就是講授硬件建模/編譯的范例, 并預測綜合實現(xiàn)后的結果。C語言編程是預測程序產生的數(shù)據, 而狀態(tài)機/處理器的應用卻顯而易見。作為對比, 用Verilog描述的模型預測該硬件將產生應用所需求的I/O信號, 因此需要開發(fā)者根據寄存器操作時序控制進行思考和設計。Verilog的模型鼓勵學習者理解一個數(shù)字電路和系統(tǒng)的本質。 本書要求學生已學過邏輯設計的入門課程, 本書的目標是:(1) 簡要復習組合時序邏輯的基本原理, (2) 介紹HDL在設計中的應用, (3) 強調的是快速設計通過ASIC和/或FPGA實現(xiàn)的電路設計描述風格, (4) 提供具有一定難度的設計實例。章末習題的目的是鼓勵學生精煉、明晰化并驗證他們自己的設計。從本質上講, 許多習題均為開放式的設計, 要求驗證以達到所要求的設計規(guī)范。 廣泛使用的Verilog硬件描述語言(IEEE 1364標準), 作為一個公共框架為本書的設計實例的討論提供了支持。第一版重點關注數(shù)字電路的設計、驗證和綜合, 而不是Verilog語言本身的語法, 本版仍然保持這種風格。 選修數(shù)字設計中級課程的多數(shù)學生至少應該熟悉一種編程語言, 并且在閱讀本書時能夠將其作為可以借鑒的背景知識。本書僅討論Verilog的核心設計方法及其廣泛使用的特性。為了強調在面向綜合的設計環(huán)境中使用該語言, 我們還特意將許多語法的細節(jié)、特點和解釋放在附錄中中, 以便于讀者參考。附錄中也提供了Verilog的所有形式化語法。 大部分數(shù)字設計的入門課程都介紹過通過狀態(tài)轉移圖表示的有限狀態(tài)機及算法狀態(tài)機(ASM)圖。同樣, 本書中也大量使用了ASM圖, 演示了其在設計時序狀態(tài)機的行為模型中的功用。對利用ASMD圖(即通過標注顯示出被控數(shù)據通道的寄存器操作的ASM圖)系統(tǒng)地設計有限狀態(tài)機來控制數(shù)字狀態(tài)機中復雜數(shù)據通道的重要問題, 進行了深入論述。并將精簡指令集計算機中央處理器(RSIC CPU)和其他重要硬件單元的設計作為實例給出。我們的支持網站上包含了RISC計算機的源代碼和可用于應用程序開發(fā)的匯編程序。這個匯編程序也可作為研究魯棒性更好的指令集和其他派生架構的基礎。 本書完整地引入了Verilog語言, 但僅在支持設計實例的需要時才進行詳細說明。正文中使用了大量的實例, 講解使用Verilog硬件描述語言進行VLSI電路設計時的重要和關鍵設計步驟。設計實例的源代碼都經過了驗證, 并且所有實例的源代碼和測試平臺都可以從出版社的網站下載。 讀者對象 本書適用于學習高級數(shù)字系統(tǒng)設計課程的學生, 以及那些想通過實例學習Verilog的現(xiàn)代集成電路設計專業(yè)工程師。本書適合電子工程、計算機工程和計算機科學等專業(yè)的高年級本科生和低年級研究生, 也適合學習過邏輯設計入門課程的專業(yè)工程師使用。本書假定讀者具有布爾代數(shù)及其在邏輯電路設計中應用的背景知識, 并熟悉同步時序有限狀態(tài)機。在此基礎上, 本書討論了一些應用于計算機系統(tǒng)、數(shù)字信號處理、圖像處理、跨時鐘域的數(shù)據傳輸、內建自測試(BIST)和一些其他應用的重要電路的設計實例。這些實例涵蓋了建模、架構的設計折中、流水線技術、多處理器執(zhí)行、功能驗證、定時分析、測試生成、故障模擬、可測性分析、邏輯綜合和綜合后驗證的關鍵設計問題。 本版的新穎之處 ● 探索了Verilog 2001和2005的主要特點 ● 闡述并推廣基于Verilog 2001和2005且可綜合的寄存器傳輸級(RTL)描述和算法建模的設計風格 ● 深入討論基于Verilog 2001和2005的數(shù)字處理系統(tǒng)(如圖像處理器、數(shù)字濾波器和環(huán)形緩沖器)算法和架構 ● 給出了基于Verilog 2001和2005語言的綜合設計實例(如RISC計算機和各種數(shù)據通道控制器) ● 提供了大量有評注和解釋的仿真結果的圖形化描述 ● 給出了150多個經過完全驗證的基于Verilog 2001和2005的設計實例 ● 含有利用Verilog 2001和2005編寫的具備JTAG和BIST可測功能的實用設計案例 ● 附錄中給出了Verilog 2001和2005 HDL的語法形式 ● 討論了異步和同步FIFO設計 本書特色 ● 簡要回顧了組合時序邏輯設計的基本原則 ● 重點討論現(xiàn)代數(shù)字設計方法 ● 說明了行為級建模中ASM和ASMD圖的作用 ● 明確指出了可綜合和不可綜合循環(huán)的區(qū)別 ● 通過實例對時序分析、故障模擬、測試和可測性設計進行切合實際的討論 ● 每章后均設計了一些涉及面廣且難度高的習題相關教輔的申請(PPT, 習題解答)請與電子工業(yè)出版社聯(lián)系, 聯(lián)系電話: 010-88254555,E-mail: Te_serivce@phei?com?cn。 課程講授次序 本書首先對組合邏輯設計進行簡要介紹和回顧, 接著描述了一個ASIC或FPGA的設計流程。按照書中內容的順序, 第1章至第6章利用綜合的方法來研究設計了一些題目和內容。但是, 閱讀第7章至第10章時, 則不必按照書中的順序。課后作業(yè)具有挑戰(zhàn)性, 而且基于FPGA的實驗練習適于同步實驗或學期末的課題。第10章列出了一些算術運算的架構, 覆蓋了較多的應用范圍。第11章介紹了后綜合設計驗證、時序分析、故障模擬和可測試性設計。根據課程教學的深度和重點, 本章涵蓋的內容和范圍也可省略。 說明 我們沒有堅持常規(guī)使用大寫和小寫字體, 或使用代碼清單專用字體。本書的選擇一直是基于最大化的整體視覺效果及所列代碼的可讀性。我們認為, 設計實例中的代碼得到正確表達才是至關重要的。模塊框圖已被簡化, 以減少視覺混亂。所以, 我們通常只顯示信號的實際外部名稱, 而省略其形式化的內在對應名稱。由于D觸發(fā)器在現(xiàn)代EDA工具的綜合中起著主導作用, 因此書中幾乎唯一性地使用了D觸發(fā)器。 各章概述 第1章簡要論述了硬件描述語言在基于庫單元的ASIC和FPGA設計流程中的作用。第2章和第3章則根據傳統(tǒng)的教學方式(例如卡諾圖算法), 回顧了數(shù)字設計先修課程中涉及的主要知識。這些資料可以奠定讀者的數(shù)字設計的背景知識, 便于之后利用實例介紹許多基于硬件描述語言的數(shù)字設計方法。第4章和第5章介紹了組合電路與時序電路的Verilog語言建模方法, 重點強調了行為級建模中的代碼編寫風格。第6章著重基于庫單元的ASIC綜合, 介紹了組合邏輯與時序邏輯的綜合。這一章追求兩個主要目標:(1) 提出可綜合的代碼描述風格; (2) 建立能夠讓讀者預測綜合結果的基礎知識和能力。尤其在對時序狀態(tài)機綜合時, 通常會把時序狀態(tài)機分成數(shù)據通道和控制通道兩部分來編寫。第7章介紹了一些例子, 這些例子描述了怎樣設計一個數(shù)據通道的控制器, 包括帶有從數(shù)據通道反饋給控制器的狀態(tài)信號的狀態(tài)機設計。而RISC CPU設計和通用異步收發(fā)器(UART, 用于系統(tǒng)間傳輸數(shù)據的電路)的設計作為這個例子的應用平臺。第8章講述了可編程邏輯器件(PLD)、復雜PLD、只讀存儲器(ROM)和靜態(tài)隨機存儲器(SRAM)的知識, 并將綜合目標擴展為FPGA的綜合。第9章主要涉及計算機結構、數(shù)字濾波器和其他信號處理器中有關計算單元和算法的建模和綜合。第10章研究并描述了數(shù)字狀態(tài)機中計算單元的算法和結構。第11章使用Verilog語言, 結合故障仿真器和時序分析器, 重新審查了之前設計的狀態(tài)機選擇方案, 并考慮性能、時序問題及可測性問題, 來優(yōu)化和完善這個主要取決于設計者的設計流程和任務。本章建模的測試訪問端口(TAP)控制器由IEEE 1149.1標準定義(即俗稱的JTAG標準), 并提出了其應用實例。另外還給出了一個內建自測試(BIST)的詳細實例。 致謝 本書作者非常感謝曾為本書做出貢獻并提出寶貴意見的同事和學生們的支持。本書是我的研發(fā)經驗和在科羅拉多大學教學經歷的綜合成果, 也包括我在惠普、福特微電子公司和Prisma公司的工作經歷, 在荷蘭的Delft技術大學的教學經驗, 以及在歐洲和亞洲的短期課程的教學經驗。雖然其中有的公司如今已成回憶, 但是我仍然深深感謝這些公司和科羅拉多大學對我進行VLSI電路設計研究工作的支持。本書手稿的第一版審稿人也提出了鼓勵、關鍵內容的調整與許多有益的建議。我非常感謝Jim Tracey博士和Rodger Ziemer博士, 他們支持并肯定了我在VLSI電路設計方面的努力和成就, 我也十分感謝福特微電子公司的Deepak Goel先生, 他向我介紹了后來成為最先進的VLSI設計平臺的福特微電子的Daisy工作站。感謝Simucad公司的Bill Fuchs先生, 他幫助我獲取了工業(yè)級的Verilog仿真器。感謝惠普公司的Tom Saponas和Dave Ritchey先生, 他們給我機會領導完成一個動態(tài)時序分析器的反向設計工程, 兩名學生David Uranek和Jerry Barnett參與并獲成功。十分感謝我在Prisma公司暑期工作的主管Dave Still先生, 提供了設計環(huán)境與精神鼓勵, 使我完成了高性能多核系統(tǒng)中建模的難題。感謝Sutherland HDL的Stu Sutherland幫助我理解并更深入研究了數(shù)字系統(tǒng)建模中的競爭條件問題, 這些觀點使我堅持使用非阻塞賦值來進行邊緣敏感的行為級建模和使用阻塞賦值進行電平敏感的行為級建模的描述風格, 讓我更好地幫助學生理解同步數(shù)字系統(tǒng)的操作和設計。謝謝我的朋友兼同行、瑞士聯(lián)邦理工學院的Hubert Kaeslin博士, 與他進行的有意義的討論讓我能更深入鉆研數(shù)字處理器的算法和結構。感謝Kirk Sprague和Scott Kukel幫助研發(fā)了一個可用于UART的漢明編碼器。同時感謝Cris Hagan, 他的論文提供了本書第9章的數(shù)字信號處理器中的抽取器和其他功能單元建模。非常感謝Rex Anderson先生幫助校正了幾章的內容, 并對第一版進行了修改。謝謝我的學生Terry Hansen和Lisa Horton, 他們提供了咖啡自動販賣機例子的靈感, 并開發(fā)了支持RISC CPU的匯編代碼。同時我還要感謝科羅拉多大學的Greg Tumbush教授和Temple大學的Chen-Huan Chiang教授為本書第二版提供了重要建議, 也謝謝許多學生的課堂討論, 他們的發(fā)言為第二版提供了幫助。謝謝Scott Disanno和Irwin Zucker領導了第二版的出版, 謝謝Haseen Khan精心策劃本書的結構。我向所有給予本書支持的朋友表示衷心的感謝!
你還可能感興趣
我要評論
|