內容簡介
《國外電子與通信教材係列:Verilog HDL高級數字設計(第2版)》依據數字集成電路係統工程開發的要求與特點,利用Verilog HDL對數字係統進行建模、設計與驗證,對ASIC/FPGA係統芯片工程設計開發的關鍵技術與流程進行瞭深入講解,內容包括:集成電路芯片係統的建模、電路結構權衡、流水綫技術、多核微處理器、功能驗證、時序分析、測試平颱、故障模擬、可測性設計、邏輯綜閤、後綜閤驗證等集成電路係統的前後端工程設計與實現中的關鍵技術及設計案例。書中以大量設計實例敘述瞭集成電路係統工程開發須遵循的原則、基本方法、實用技術、設計經驗與技巧。
作者簡介
科羅拉多大學電氣與計算機工程係教授。研究方嚮包括通過硬件描述語言進行數字係統的建模、綜閤與驗證、係統級設計語言和fpga嵌入式係統。其著作還有digital design,fourth edition(其翻譯版和影印版均由電子工業齣版社齣版)。作者曾在惠普、福特微電子和prisma等公司進行vlsi電路設計的研發工作,在數字係統和嵌入式係統研究、設計等領域有豐富的研發和教學經曆。
內頁插圖
目錄
第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 相關網站
中英文術語對照錶
精彩書摘
第1章 數字設計方法概論
電路設計的經典設計方法是依賴於電路原理圖的人工設計方法,而現在的大規模復雜電路廣泛采用基於計算機語言的現代設計方法。這種實踐變革有幾方麵的原因,其中最重要的原因是沒有任何一支設計工程師團隊能夠用人工方法有效、全麵、正確地設計和管理含數百萬門級的現代集成電路(ⅡC)。但使用硬件描述語言(HDL),工程師們能很容易地實現對大型復雜電路係統的設計和管理。即使小規模電路的設計也更多地依賴於基於語言的描述,因為工程師們必須快速設計生産齣滿足瞬息萬變的市場需求的産品。
基於語言的設計易於移植且不依賴於工藝,設計團隊也可以重用或修改以前的設計,以保持與更先進工藝的一緻性。隨著器件物理尺寸的縮小,電路密度的提高,基於原有HDL模型進行綜閤生成的電路同樣具有更高的性能。
硬件描述語言也是將各種設計專利成果集成為知識産權核(IP)的一種方便而有效的工具和手段。通過使用這種通用設計語言的描述,電路模塊可以根據需要單獨或閤並進行綜閤和測試,以縮短設計周期。有些仿真工具還支持基於多種語言的混閤描述。
采用HDL最顯著的優點在於:基於語言描述的電路及其優化可以自動地進行綜閤,而不用經曆人工設計方法中那些費力的步驟(如用卡諾圖化簡邏輯函數)。
目前,基於HDL的綜閤方法是工業界普遍采用的主流設計方法。設計者可以通過構建一個軟件原型或模型來驗證其功能,然後利用綜閤工具自動對所設計的電路進行優化,並且可以生成針對某物理工藝技術的網錶(nctlist)。
HDL和綜閤工具的應用使得工程師們更關注有關功能的設計,而不是具體的單個晶體管或邏輯門的設計;綜閤得到的電路可以實現預期的功能,並滿足麵積和/或性能的約束要求。無論是功能模型還是行為模型的HDL模型描述,都可綜閤齣不同的結構,並可據此快速對設計進行評估和摺中。
HDL可作為多種設計工具的平颱,包括:設計輸入、設計驗證、測試嚮量生成、故障分析和仿真、時序分析和/或驗證、綜閤和原理圖的自動生成等任務。HDL這種寬範圍的覆蓋使得設計者的設計工作通過工具鏈路時,由於不再需要考慮設計描述在不同工具間的轉換過程而大大提高瞭設計流程的工作效率。
Veriog和VHDL兩種語言受到工業界的廣泛支持,這兩種語言都成為瞭IEEE(電氣和電子工程師協會)標準,並都得到ASIC(專用集成電路)和PPGA(現場可編程門陣列)相關綜閤工具的支持。模擬電路設計語言,如SpiceL3,,在驗證電路的關鍵時序路徑上扮演著重要角色。但由於這些模擬電路描述語言對大型設計來說需要大得驚人的計算量,而且也不支持抽象設計,使得它們在大規模電路設計應用中變得很不實際。混閤語言(如Verilog.A語言)用於設計兼有數字和模擬電路的混閤信號係統。近幾年還齣現瞭SystcmC和Superlog這樣的係統級設計語言,它們能夠支持比Verilog或VHDL語言更高抽象級彆的設計。
……
前言/序言
精煉、明晰化與驗證
用硬件描述語言(HDL)建立行為級模型是現代專用集成電路設計的關鍵技術。如今,大多數設計者使用基於硬件描述語言的設計方法,創建基於語言的高層、抽象的電路描述,以驗證其功能和時序。在本書第一版的使用過程中,講授設計方法學所用的語言(IEEE 1464.1995)已經曆瞭兩次修改,分彆是IEEE 1364.2001及2005年的修訂版,即Verilog-2001和Verilog-2005,以提高--其有效性和效率。
這一版的編寫動機和第一版基本是相同的。對那些準備在産品研發團隊做齣成績的學生們來說。必須瞭解如何在設計流程的關鍵階段使用硬件描述語言。因此,需要有 l‘q在內容上超越先修課程“數字設計”中學習過的基本原則和方法的課程,本書就是為該課程而著的。
現在,市麵上討論硬件描述語言的書籍的數量已遠遠超過本書第一版齣版時的數量。但是,這些書大部分都定位於解釋語法,而不是如何運用語言進行設計,不太適閤於課堂教學。本書的重點是硬件描述語言的設計方法學,因此語言本身隻是一個配角。這一版中強化瞭如何通過實例證明,將一個數字係統描述並劃分為數據通路、狀態(反饋)信號和控製器(有限狀態機)係統結構的重要性。我們認為,這種描述可使設計和驗證復雜數字係統的方法更加清楚、直接、明瞭。本書給齣瞭大量的仿真結果和注釋,以幫助學生掌握時序機的操作過程,並深入理解由控製器産生的信號間的時序互動關係,數據通路的操作,以及從數據通路迴饋給控製器的信號。其目的都是為瞭開發齣可綜閤、無鎖存且無競爭的設計。
vcril
國外電子與通信教材係列:Verilog HDL高級數字設計(第二版) 下載 mobi epub pdf txt 電子書 格式