內容簡介
本書介紹了EDA工程的理論基礎和系統晶片SOC的設計方法。第1-3章闡述了電子設計自動化的發展歷程、常用設計方法,介紹了積體電路設計的流程和集成設計環境;第4章介紹了Verilog HDL語言;第5章詳細介紹了VHDL程式設計方法;第6章介紹了軟、硬體協同設計語言——SystemC語言;第7章介紹了SOC設計工具的使用;第8章闡述了積體電路的可測試設計方法、算法驗證方法;第9章介紹了SOC晶片的實現方法和EDA工程設計方法學的進展。全書以系統晶片SOC為線索,闡述了EDA工程的設計方法、設計語言、設計流程、實現方法和驗證方法。
本書可作為積體電路領域的科技共和者的讀者,也可作為微電子、電子電路、通信、計算機等專業大學生、研究生的教學參考書。
目錄
第1章 緒論
1.1 eda工程概論
1.1.1 概述
1.1.2 eda工程的實現載體
1.1.3 eda工程的設計語言
1.1.4 eda工程的基本特徵
1.1.5 eda工程的學科範疇
1.2 eda工程發展歷程
1.3 eda工程與其他學科
1.3.1 eda工程學科與微電子技術的關係
1.3.2 eda工程促進其他學科的發展
第2章 eda工程設計方法
2.1 eda工程的設計方法
2.2 ic設計描述法
2.2.1 積體電路設計的描述方法
2.2.2 行為描述法
2.3 ip復用方法
2.3.1 問題的提出
2.3.2 軟ip核與硬ip核
2.3.3 設計復用方法
.2.3.4 基於ip模組的設計技術
2.4 以集成平台為基礎的設計方法
2.4.1 集成平台的概念
2.4.2 集成平台的結構
2.4.3 集成平台的發展
2.5 eda工程集成設計環境ide
2.5.1 集成設計環境的概念
2.5.2 趨向集成化的eda工具平台
2.5.3 集成設計環境介紹
2.6 虛擬器件協同設計環境
2.7 軟、硬體協同設計方法
2.7.1 軟、硬體協同設計語言
2.7.2 軟、硬體劃分的問題
2.7.3 軟、硬體協同設計工具
2.8 eda工程的分層設計方法
2.8.1 層次設計方法概述
2.8.2 層次設計方法實例--4位微處理器設計
2.9 eda工程的仿生學方法
2.9.1 概述
2.9.2 進化硬體
2.9.3 poe模型
2.9.4 電子胚胎結構模型
2.9.5 仿生soc晶片模型
2.10 eda工程綜合方法
2.10.1 綜合的概念
2.10.2 邏輯電路綜合
2.10.3 時序電路綜合
2.10.4 用eda工具進行自動綜合
2.11 eda工程仿真方法
2.11.1 概述
2.11.2 仿真方法
2.11.3 功能仿真
第3章 soc設計流程規劃
3.1 流程的概念
3.1.1 eda工程方法與設計流程
3.1.2 積體電路產業流程
3.1.3 系統層與算法層設計流程
3.1.4 高層次綜合設計流程
3.2 系統級晶片驗證流程
3.3 基於模組的設計流程
3.3.1 設計環境
3.3.2 設計流程
3.4 系統晶片soc設計方法
3.4.1 系統晶片soc概念
3.4.2 系統晶片對ic產業的影響
3.4.3 系統晶片的一般設計方法
3.4.4 系統晶片的分層設計方法
3.4.5 系統晶片的集成設計方法
3.4.6 系統晶片設計的關鍵問題
3.5 可程式系統級晶片
3.5.1 可程式系統級晶片的結構
3.5.2 可程式系統級晶片的設計方法
3.6 系統晶片的測試方法
3.7 系統晶片的設計實例
3.7.1 單片微處理器晶片
3.7.2 多處理器系統晶片
3.8 系統晶片soc展望
第4章 veriloghdl語言
4.1 概述
4.1.1 硬體描述語言的發展歷史
4.1.2 hdl語言的主要特徵
4.1.3 veriloghdl與vhdl的比較
4.1.4 設計方法
4.1.5 硬體描述語言的發展
4.2 程式結構
4.3 詞法約定
4.3.1 詞法
4.3.2 字元串
4.3.3 標誌符關鍵字和系統名稱
4.4 數據類型
4.4.1 物理數據類型
4.4.2 抽象數據類型
4.5 運算符和表達式
4.5.1 算術運算符
4.5.2 符號運算符
4.5.3 關係運算符
4.5.4 邏輯運算符
4.5.5 位邏輯運算符
4.5.6 一元約簡運算符
4.5.7 其他運算符
4.5.8 運算符優先權排序
4.6 控制結構
4.6.1 選擇結構
4.6.2 重複結構
4.7 其他語句
4.7.1 參數語句
4.7.2 連續賦值語句
4.7.3 阻塞和無阻塞過程賦值
4.7.4 任務和函式結構
4.8 時序控制
4.8.1 延遲控制
4.8.2 事件
4.8.3 等待語句
4.8.4 延遲定義塊
4.9 vedlog_xl仿真
4.10 設計練習
4.10.1 簡單的組合邏輯設計
4.10.2 簡單時序邏輯電路的設計
4.10.3 利用條件語句實現較複雜的時序邏輯電路
4.10.4 設計時序邏輯時採用阻塞賦值與非阻塞賦值的區別
4.10.5 用always塊實現較複雜的組合邏輯電路
4.10.6 在veriloghdl中使用函式
4.10.7 在veriloghdl中使用任務
4.10.8 利用有限狀態機進行複雜時序邏輯的設計
第5章 vhdl程式設計基石出
5.1 vhdl程式結構
5.1.1 實體及實體說明
5.1.2 類屬說明和連線埠說明
5.1.3 結構體及其描述方法
5.1.4 庫、程式包及其配置
5.2 vhdl語言的客體及其分類
5.2.1 標誌符
5.2.2 對象
5.2.3 數據類型
5.2.4 類型轉換
5.2.5 運算操作符
5.3 vhdl語法基礎
5.3.1 並行語句
5.3.2 順序語句
5.4 組合邏輯設計
5.4.1 門電路
5.4.2 編碼器、解碼器和選擇器電路
5.5 時序邏輯電路設計
5.5.1 時鐘信號的vhdl描述方法
5.5.2 時序電路中復位信號reset的vhdl描述方法
5.5.3 時序電路基礎模組之一--觸發器的設計
5.5.4 時序電路基礎模組之二--暫存器的設計
5.5.5 時序電路基礎模組之三--計數器的設計
5.6 測試平台程式的設計方法
5.6.1 實體描述可簡化
5.6.2 程式中應包含輸出錯誤信息的語句
5.6.3 配置語句
5.6.4 不同仿真目的對測試平台設計的要求
第6章 軟、硬體協同設計語言systemc
6.1 systemc概述
6.1.1 系統級設計所面臨的挑戰
6.1.2 systemc概述
6.1.3 systemc引起系統級設計方法的變化
6.1.4 systemc開發平台
6.2 systemc數據類型
6.2.1 sc_bit訌類型
6.2.2 sc_logic類型
6.2.3 固定精度的有符號和無符號整數
6.2.4 任意精度符號和無符號整數類型
6.2.5 任意長度的位矢量類型
6.2.6 定點類型
6.3 用systemc創建rtl模型
6.3.1 定義進程
6.3.2 創建模組
6.3.3 用單一sc_method進程的模組
6.3.4 含有多個sc_method進程的模組
6.3.5 創建層次化rtl模型
6.4 使用可綜合的子集
6.4.1 可綜合子集轉換
6.4.2 系統綜合前數據修改
6.4.3 系統綜合前修改建議
6.5 暫存器傳輸級(rtl)編程
6.5.1 暫存器
6.5.2 三態輸出
6.5.3 狀態機
6.6 行為級建模和綜合
6.6.1 rtl級建模和行為級建模的比較
6.6.2 行為級綜合簡介
6.6.3 選擇用於仿真的正確抽象方式
6.6.4 rtl代碼和行為級代碼示例
6.7 systemc與vhdl設計對比
6.7.1 dff實例
6.7.2 移位暫存器
6.7.3 計數器
6.7.4 狀態機
6.7.5 存儲器
第7章 soc設計工具cocemtric system studio
7.1 cocentdc system studio概述
7.1.1 cocentric system studio的組織結構
7.1.2 啟動設計平台
7.1.3 瀏覽用戶界面
7.1.4 打開工作區
7.1.5 打開設計模型
7.1.6 設計項目的編譯
7.1.7 設計項目的仿真
7.1.8 小結
7.2 數據流圖表dfg
7.2.1 創建個人庫
7.2.2 創建層次化dfg
7.3 ptim模型
7.3.1 單元級數字轉換器
7.3.2 進制到八進制轉換
7.4 control模型
7.4.1 宏調試或門模型
7.4.2 or模型-復位計數器
7.4.3 or模型--0與1計數器
7.4.4 層次化or模型--加法器/乘法器轉換開關
7.5 單元模型
7.5.1 單元模型錯誤演示
7.5.2 外部函式中的數量積
7.5.3 交換指針符號
7.5.4 利用已存在的模型建立新模型
7.5.5 仿真
7.5.6 調試
7.6 控制模型練習實驗
7.6.1 "與模型"--調幅波
7.6.2 動態切換髮生器
7.7 在系統平台中浮點到定點的轉換
7.7.1 開啟演示
7.7.2 仿真測試平台
7.7.3 建立質量量化標準
7.7.4 創建混合模型及添加字長參量
7.7.5 系統仿真時輸入連線埠分配
7.7.6 改變模式、字長設定
7.7.7 計算係數、器件固定
7.7.8 創建定點模型
7.7.9 創建定點測試平台並仿真
7.8 算法建模--可綜合的systemc rtl代碼產生
7.8.1 從prim模型中輸出hdl
7.8.2 從控制模型中輸出hdl
7.8.3 從dfg設計中輸出hdl
7.9 cocentric高級系統平台--使用davis
7.9.1 創建數據組、調用davis
7.9.2 選擇數據組和初始化設定
7.9.3 顯示davis結果
7.9.4 計算
7.9.5 創建並連線分散視窗
7.9.6 圖形顯示
第8章 eda工程可測試、驗證設計方法
8.1 概述
8.1.1 可測試設計
8.1.2 內建自測試
8.1.3 可測試設計中的功耗最佳化問題
8.1.4 可測試設計技術的發展
8.2 測試方法的範疇
8.3 可測試性分析
8.4 測試矢量生成
8.4.1 組合電路測試
8.4.2 時序電路測試
8.5 可測試性結構設計
8.5. 1 分塊測試
8.5.2 掃描測試設計
8.5.3 內建自測試
8.6 測試平台程式的設計方法
8.6.1 測試平台的搭建
8.6.2 不同仿真目的對測試平台設計的要求
8.6.3 用子程式方式建立測試平台
8.7 深亞微米工藝的時序分析方法
8.7.1 動態模型
8.7.2 行為模式
8.8 故障測試概述
8.8.1 故障模型
8.8.2 故障仿真
8.9 驗證方法概述
8.9.1 fpga器件的仿真驗證
8.9.2 嵌入式處理器驗證環境
第9章 soc實現方法和設計方法進展
9.1 設計實現方法的概念
9.1.1 設計實現初步
9.1.2 設計實現與邏輯綜合的區分
9.2 eda工程的cpld實現方法
9.2.1 可程式技術
9.2.2 複雜可程式器件(cpld)
9.2.3 現場可程式門陣列(fpga)
9.2.4 百萬門級fpga的設計方法
9.3 系統晶片soc設計方法進展
9.3. 1 硬、軟ip設計方法
9.3.2 c語言用於ic系統級設計
9.3.3 物理設計轉向cot設計方法
9.3.4 eda向edo轉變
9.4 ic設計技術的發展
9.4.1 共享rtl設計方法
9.4.2 動態可重構技術
參考文獻