書采用VerilogHDL語言,較為系統地介紹了EDA設計技術的語法基礎、基本原理和設計方法。全書共12章,分為邏輯器件和語言基礎、EDA設計方法、EDA設計工具、NiosⅡ處理器及嵌入式系統設計四大部分,主要內容包括VerilogHDL語言基礎,可編程邏輯器件結構,各級抽象的建模設計方法,功能校驗和時序校驗設計方法,Quartus Ⅱ、ModelSim和NiosⅡ SBT for Eclipse設計工具,基于NiosⅡ的嵌入式系統設計流,配置BSP工程和應用工程,硬件抽象層及其API服務等。各章節配有實例和習題,所有實例均通過編譯和驗證。
本書可作為電子信息工程、通信工程、電氣工程及其自動化等相關專業本科學生的教材,也可作為研究生或工程技術人員的參考書。
1.注重Verilog HDL語法基礎和設計方法 2.結合當前技術發展,加入對嵌入式系統設計、片上系統設計、設計校驗等內容的介紹 3.各章節相對獨立,不同專業可有所取舍
第1章 緒論
1.1 EDA技術
1.1.1 EDA設計的技術優勢
1.1.2 EDA設計流
1.2 可編程邏輯器件及其開發環境
1.3 知識產權核及片上系統
習題
第2章 可編程邏輯器件
2.1 可編程邏輯陣列PLA
2.2 可編程陣列邏輯器件PLD
2.3 通用邏輯陣列器件GAL
2.4 CPLD結構
2.4.1 邏輯陣列塊
2.4.2 邏輯單元
2.4.3 用戶Flash存儲塊
第1章 緒論
1.1 EDA技術
1.1.1 EDA設計的技術優勢
1.1.2 EDA設計流
1.2 可編程邏輯器件及其開發環境
1.3 知識產權核及片上系統
習題
第2章 可編程邏輯器件
2.1 可編程邏輯陣列PLA
2.2 可編程陣列邏輯器件PLD
2.3 通用邏輯陣列器件GAL
2.4 CPLD結構
2.4.1 邏輯陣列塊
2.4.2 邏輯單元
2.4.3 用戶Flash存儲塊
2.4.4 輸入輸出口
2.5 FPGA結構
2.5.1 嵌入式乘法器
2.5.2 輸入輸出口
2.5.3 時鐘網絡和鎖相環邏輯塊
2.5.4 高速差分接口
2.5.5 存儲器塊
2.6 配置與編程
2.6.1 在系統編程接口
2.6.2 設計安全
習題
第3章 Verilog HDL語言
3.1 Verilog HDL的歷史及特點
3.2 標識符與關鍵字
3.3 注釋
3.4 格式
3.5 數據類型
3.5.1 值集合
3.5.2 矢量與標量
3.5.3 數組
3.5.4 參數
3.5.5 字符串
3.5.6 網絡類型
3.5.7 變量類型
3.6 賦值
3.6.1 連續賦值
3.6.2 過程賦值
3.7 表達式
3.7.1 操作數
3.7.2 操作符
3.8 強度
3.8.1 電荷強度
3.8.2 驅動強度
3.9 編譯指令
3.9.1 宏定義
3.9.2 條件定義
3.9.3 默認類型
3.9.4 文件包含
3.9.5 復位編譯器指令
3.9.6 時間單位
3.10 系統任務和系統函數
3.10.1 信息顯示
3.10.2 跟蹤顯示與觸發顯示
3.10.3 仿真時間函數
3.10.4 停止仿真任務
3.10.5 仿真隨機函數
習題
第4章 層次結構
4.1 系統及結構要素
4.2 設計方法
4.3 模塊及模塊抽象
4.3.1 模塊
4.3.2 模塊抽象
4.4 例化
4.4.1 模塊例化
4.4.2 原語例化
4.4.3 生成例化與等價驗證
習題
第5章 行為建模
5.1 過程語句
5.1.1 initial語句
5.1.2 always語句
5.1.3 阻塞式過程賦值
5.1.4 非阻塞式過程賦值
5.2 延時控制
5.3 條件語句
5.4 條件運算符
5.5 循環語句
5.5.1 repeat語句建模
5.5.2 for語句建模
5.5.3 while語句建模
5.5.4 forever語句建模
5.5.5 異常情況下退出循環
5.6 多路分支語句
5.7 任務和函數
5.7.1 任務
5.7.2 函數
5.7.3 函數和任務的比較
5.7.4 共享任務和函數
5.8 行為建模實例
5.8.1 交通燈演示模型
5.8.2 伺服電機調速控制器
習題
第6章 并行建模
6.1 事件控制
6.1.1 邊沿觸發事件控制
6.1.2 電平敏感事件控制
6.2 等待控制
6.3 順序控制
6.4 并行控制
6.5 并行建模實例
習題
第7章 邏輯設計
7.1 組合邏輯設計
7.1.1 多路開關
7.1.2 譯碼器
7.1.3 編碼器
7.1.4 比較器
7.1.5 加法器和減法器
7.1.6 乘法器
7.1.7 初等函數與通用查找表
7.2 時序邏輯設計
7.2.1 鎖存器和觸發器
7.2.2 有限狀態機
7.2.3 計數器
習題
第8章 用戶定義原語建模
8.1 定義用戶定義原語
8.1.1 用戶定義原語的基本形式
8.1.2 用戶定義原語的表符號
8.1.3 組合邏輯UDP
8.1.4 時序邏輯UDP
8.1.5 時序UDP的初始化
8.2 用戶定義原語建模
習題
第9章 設計校驗
9.1 設計校驗概述
9.1.1 校驗標準
9.1.2 等價驗證
9.1.3 模塊檢查
9.1.4 校驗重用
9.1.5 校驗方法
9.2 功能校驗
9.2.1 測試平臺
9.2.2 代碼封裝
9.2.3 數據抽象
9.2.4 競爭
9.3 時序校驗
9.3.1 延時類型
9.3.2 路徑延時
9.3.3 時序檢查
9.3.4 標準延時格式文件與反向標注
習題
第10章 Quartus Ⅱ開發環境
10.1 工程設計流程
10.1.1 Quartus Ⅱ設計流程
10.1.2 Quartus Ⅱ及EDA工具設計流程
10.2 設計輸入
10.2.1 創建工程
10.2.2 塊編輯器
10.2.3 文本編輯器
10.2.4 狀態機編輯器
10.2.5 參數化模塊庫
10.2.6 約束輸入
10.3 綜合
10.4 布局與布線
10.4.1 分析適配結果
10.4.2 優化適配
10.5 時序分析
10.5.1 TimeQuest時序分析器
10.5.2 標準時序分析器
10.5.3 時序分析流程
10.6 時序逼近
10.6.1 平面布局圖或器件布局圖
10.6.2 時序優化向導
10.6.3 使用網表優化實現時序逼近
10.6.4 時序逼近設計方法
10.7 功耗分析
10.7.1 功耗分析器工具
10.7.2 早期功耗估算
10.8 編程與配置
10.8.1 編程文件與編程設置
10.8.2 編程模式與編程電纜聯機
10.8.3 編程操作
10.9 形式驗證
10.9.1 形式驗證工具
10.9.2 形式驗證工具設置
10.10 系統集成工具
10.11 系統調試工具
習題
第11章 ModelSim仿真工具
11.1 ModelSim SE簡介
11.1.1 ModelSim SE的主窗口及仿真流程
11.1.2 創建工程和工作庫
11.1.3 編譯仿真文件
11.1.4 加載頂層設計模塊
11.1.5 執行仿真
11.1.6 調試
11.2 庫的創建和運用
11.3 波形分析
11.3.1 仿真波形窗口介紹
11.3.2 縮放波形
11.3.3 時標
11.3.4 輸出波形文件
11.4 時序仿真
11.5 例化存儲器
11.6 用Profiler進行性能分析
11.7 代碼覆蓋率
11.8 值變轉儲文件
11.8.1 轉儲系統任務
11.8.2 四態轉儲文件
11.8.3 擴展轉儲文件
11.8.4 操作VCD文件
習題
第12章 基于Nios Ⅱ的嵌入式系統設計
12.1 Nios Ⅱ處理器
12.1.1 算術邏輯單元
12.1.2 寄存器
12.1.3 異常處理
12.1.4 存儲器和輸入輸出口
12.1.5 運行模式及存儲器管理
12.1.6 地址空間和存儲器分區
12.1.7 調試和復位信號
12.1.8 JTAG調試模塊
12.1.9 指令集
12.1.10 處理器的內核類型選擇
12.1.11 例化Nios Ⅱ處理器
12.2 Avalon接口
12.3 嵌入式系統設計流
12.4 軟件設計
12.4.1 配置BSP工程和應用工程
12.4.2 硬件抽象層API設計
12.4.3 優化設計
12.4.4 系統啟動配置
習題
參考文獻
索引