《數字電路EDA設計與應用》以數字電路的EDA設計為主線,結合豐富的實例,按照由淺入深的學習規律,逐步引入EDA技術和工具,圖文并茂,重點突出。全書分為三部分。第一部分是基礎篇,介紹EDA技術和硬件描述語言。第二部分是軟件操作篇,主要介紹MAX+plus II和Quartus II軟件工具的使用。第三部分是設計應用篇,通過大量典型的應用實例,使讀者掌握數字系統EDA設計的方法和技巧。每章后面附有習題,為方便教師教學,《數字電路EDA設計與應用》配有多媒體電子教案。
《數字電路EDA設計與應用》可作為電子信息、電氣、通信、自動控制、自動化和計算機類專業的EDA技術教材,也可作為上述學科或相關學科工程技術人員的參考書,還可作為電子產品制作、科技創新實踐、EDA課程設計和畢業設計等實踐活動的指導書。
《數字電路EDA設計與應用》編者根據多年的教學經驗,從實際應用的角度出發編寫此書。在編寫過程中,著重以培養能力為目標,在實例選排上注重循序漸進。由淺入深。全書分為三部分。共7章。第一部分是基礎篇。介紹EDA技術和硬件描述語言。第二部分是軟件操作篇。主要介紹MAX+plus II和Quartus II軟件工具的使用。第三部分是設計應用篇,通過大量典型的應用實例。使讀者掌握數字系統EDAi沒計的方法和技巧。每章后面附有習題,為方便教師教學,《數字電路EDA設計與應用》配有多媒體電子教案。《數字電路EDA設計與應用》可作為電子信息、電氣、通信、自動控制、自動化和計算機類專業的EDA技術教材。也可作為上述學科或相關學科工程技術人員的參考書;還可作為電子產品制作、科技創新實踐、EDA課程設計和畢業設計等實踐活動的指導書。
近年來,EDA技術發展非常迅速,已經成為推動電子工業發展的主要動力。EDA技術的發展和推廣應用、對高校電子技術課程教學思想、教學方法和教學目標產生了深遠影響。許多高校相繼將EDA技術作為電子技術教學改革的主要方向,在電子、通信、信息、電氣等相關專業開設EDA課程、介紹EDA技術。特別是在數字邏輯電路、大規模可編程器件、硬件描述語言等課程中都加入了EDA設計環節。因此,數字電路的研究和實現方法隨之發生變化,從而促使數字電路的實驗方法和實驗手段也不斷更新、完善和開拓。
借助。EDA軟件來進行數字邏輯電路的設計、模擬和調試,這種實驗方法可以減少實驗器材的重復投入,避免對實驗器材的實際損耗,降低實驗成本,提高實驗效率。它適合于數字電路課程初學者做驗證性實驗,更適合于數字邏輯設計者,充分發揮自主性,自行設計邏輯電路。這有助于學生更快更好地掌握課堂上講述的基本概念、原理,有利于增強學生的知識創新能力。
本書是編者根據多年的教學經驗,從實際應用的角度出發編寫而成。在編寫過程中,著重以培養能力為目標,實例選排上注重循序漸進,由淺入深。全書分為三部分,共7章,知識結構安排如下。
第一部分是基礎篇。第1章主要介紹EDA技術的內涵、發展及其設計流程。第2章詳細講解硬件描述語言VHDL程序設計,包括VHDL語法、基本結構以及常用語句,使讀者對VHDL程序的編寫有深入的認識。
第一部分 基礎篇
第1章 EDA技術概述1
1.1 EDA技術及其發展1
1.1.1 EDA技術的涵義1
1.1.2 EDA技術的發展史2
1.2 傳統設計方法與EDA方法的區別3
1.3 EDA工程的設計流程4
1.3.1 設計輸入5
1.3.2 邏輯綜合和優化6
1.3.3 適配6
1.3.4 仿真6
1.3.5 目標器件的編程/下載6
習題7
第2章 硬件描述語言8
2.1 VHDL簡介8
2.2 VHDL語法基?10
2.2.1 文法規則10
2.2.2 數據對象11
2.2.3 數據類型14
2.2.4 運算操作符20
2.3 VHDL程序的基本結構26
2.3.1 實體27
2.3.2 結構體28
2.3.3 進程語句29
2.3.4 子程序33
2.3.5 庫和程序包35
2.4 VHDL順序語句38
2.4.1 進程中的賦值語句38
2.4.2 IF語句41
2.4.3 CASE語句45
2.4.4 LOOP語句46
2.4.5 NEXT語句48
2.4.6 EXIT語句49
2.4.7 RETURN語句50
2.4.8 NULL語句50
2.5 VHDL并行語句51
2.5.1 并行信號賦值語句51
2.5.2 條件信號賦值語句52
2.5.3 選擇信號賦值語句53
2.5.4 ASSERT語句54
2.5.5 COMPONENT語句55
2.5.6 元件例化語句56
2.5.7 GENERATE語句57
習題58
第二部分 軟件操作篇
第3章 MAX + plus II使用指南60
3.1 MAX + plus II的基本操作60
3.1.1 MAX + plus II簡介60
3.1.2 MAX + plus II的安裝61
3.1.3 MAX + plus II的常用菜單63
3.1.4 MAX + plus II幫助文檔68
3.2 MAX + plus II的設計輸入69
3.2.1 原理圖設計輸入70
3.2.2 文本設計輸入80
3.2.3 波形設計輸入81
3.2.4 層次化設計輸入87
3.3 項目的編譯89
3.3.1 編譯前的設置90
3.3.2 運行編譯器92
3.3.3 程序編譯中的常見錯誤94
3.4 仿真和定時分析96
3.4.1 仿真96
3.4.2 定時分析99
3.5 管腳的重新分配101
3.5.1 方法一102
3.5.2 方法二104
3.6 器件的編程下載105
3.6.1 編程器的設置105
3.6.2 編程硬件驅動程序安裝106
習題110
第4章 Quartus II使用指南111
4.1 Quartus II軟件簡介111
4.1.1 Quartus II概述111
4.1.2 Quartus II用戶界面112
4.2 建立工程113
4.2.1 創建工程113
4.2.2 工程管理116
4.2.3 轉換MAX+plusⅡ工程118
4.3 設計輸入119
4.3.1 使用文本編輯器輸入120
4.3.2 使用模塊編輯器輸入122
4.3.3 使用宏功能模塊輸入133
4.3.4 使用自定義符號輸入138
4.4 器件與引腳分配140
4.4.1 設置目標器件140
4.4.2 引腳分配141
4.5 項目編譯143
4.5.1 全編譯與分步編譯143
4.5.2 查看適配結果146
4.6 使用Quartus II仿真器147
4.6.1 創建仿真波形文件147
4.6.2 仿真器參數設置154
4.6.3 啟動仿真156
4.7 器件編程158
習題161
第三部分 設計應用篇
第5章 常用數字電路的設計162
5.1 組合邏輯電路設計162
5.1.1 運算電路設計162
5.1.2 編碼器設計168
5.1.3 譯碼器設計170
5.1.4 數據選擇器設計171
5.2 時序邏輯電路設計172
5.2.1 時鐘的描述172
5.2.2 復位的描述173
5.2.3 觸發器設計173
5.2.4 鎖存器設計176
5.2.5 移位寄存器設計176
5.2.6 計數器設計178
5.2.7 分頻器設計179
5.3 存儲器的設計180
5.3.1 只讀存儲器180
5.3.2 隨機讀寫存儲器188
5.3.3 先進先出存儲器的設計190
5.4 常用接口電路設計192
5.4.1 發光二極管顯示電路193
5.4.2 LED數碼管顯示電路194
5.4.3 蜂鳴器電路197
習題200
第6章 數字系統的設計202
6.1 花樣彩燈控制器的設計202
6.1.1 設計要求202
6.1.2 設計模塊203
6.1.3 程序實現203
6.1.4 仿真分析205
6.2 交通燈控制器的設計206
6.2.1 設計要求206
6.2.2 設計模塊206
6.2.3 程序實現207
6.3 序列檢測器的設計210
6.3.1 設計原理210
6.3.2 設計模塊210
6.3.3 程序實現211
6.3.4 仿真分析211
6.4 花樣計數器的設計212
6.4.1 設計要求212
6.4.2 設計模塊212
6.4.3 程序實現212
6.4.4 仿真分析214
6.5 電子搶答器的設計215
6.5.1 設計要求215
6.5.2 設計模塊215
6.5.3 程序實現215
6.5.4 仿真分析218
6.6 數字秒表的設計218
6.6.1 設計要求218
6.6.2 設計模塊218
6.6.3 程序實現219
6.6.4 仿真分析222
6.7 汽車尾燈控制器的設計222
6.7.1 設計原理222
6.7.2 設計要求223
6.7.3 設計模塊223
6.7.4 程序實現223
6.7.5 仿真分析224
6.8 電子密碼鎖的設計225
6.8.1 設計要求225
6.8.2 設計模塊226
6.8.3 程序實現226
6.8.4 仿真分析228
6.9 音樂電子琴的設計228
6.9.1 設計要求228
6.9.2 設計原理229
6.9.3 設計模塊230
6.9.4 程序實現231
6.10 數字時鐘的設計239
6.10.1 設計要求239
6.10.2 設計模塊239
6.10.3 程序實現242
6.11 數字頻率計的設計248
6.11.1 設計要求248
6.11.2 設計原理249
6.11.3 設計模塊249
6.11.4 程序實現250
6.11.5 仿真分析252
6.12 出租車計費器的設計253
6.12.1 設計要求253
6.12.2 設計模塊253
6.12.3 程序實現256
6.12.4 仿真分析261
習題262
第7章 如虎添翼——DSP Builder設計263
7.1 DSP Builder簡介263
7.2 DSP Builder安裝264
7.2.1 軟件要求264
7.2.2 DSP Builder軟件安裝265
7.2.3 授權文件的安裝266
7.3 DSP Builder設計流程267
7.4 幅度調制器設計268
7.4.1 建立Simulink設計模型269
7.4.2 Simulink模型仿真278
7.4.3 Simulink模型編譯279
習題282
參考文獻284
1.20世紀70年代的計算機輔助設計階段
20世紀70年代為EDA技術發展初期。早期的電子系統硬件設計采用的是分立元件,隨著集成電路的出現和應用,硬件設計進入到發展的初級階段。初級階段的硬件設計大量選用中小規模標準集成電路,人們將這些器件焊接在電路板上,做成初級電子系統,對電子系統的調試是在組裝好的PCB(Printed Circuit Board)板上進行的。由于設計師對圖形符號使用數量有限,傳統的手工布圖方法無法滿足產品復雜性的要求,更不能滿足工作效率的要求。可編程邏輯技術及其器件問世,計算機作為一種工具在科研領域得到廣泛應用。而在后期,CAD的概念已見雛形,這一階段人們開始利用計算機、二維圖形編輯與分析的CAD工具,完成布圖布線等高度重復性的繁雜工作。
2.20世紀80年代的計算機輔助工程設計階段
20世紀80年代,集成電路進入了CMOS(互補場效應管)時代,復雜可編程邏輯器件進入商業應用,相應的輔助設計軟件投入使用。而在20世紀80年代末,出現了現場可編程門陣列(FPGA);CAE和CAD技術的應用更為廣泛,它們在PCB設計方面的原理圖輸入、自動布局布線及PCB分析,以及邏輯設計、仿真、綜合和簡化等方面擔任了重要的角色。特別是各種硬件描述語言的出現、應用和標準化方面的重大進步,為電子設計自動化必須解決的電路建模、標準文檔及仿真測試奠定了基礎。
3.20世紀90年代電子系統設計自動化階段
為了滿足千差萬別的系統用戶提出的設計要求,最好的辦法是由用戶自己設計芯片,讓他們把想設計的電路直接設計在自己的專用芯片上。微電子技術的發展,特別是可編程邏輯器件的發展,使得微電子廠家可以為用戶提供各種規模的可編程邏輯器件,使設計者通過設計芯片實現電子系統功能。.EDA工具的發展,又為設計師提供了全線EDA工具。
這個階段發展起來的EDA工具,目的是在設計前期將設計師從事的許多高層次設計由工具來完成,如可以將用戶要求轉換為設計技術規范,有效地處理可用的設計資源與理想的設計目標之間的矛盾,按具體的硬件、軟件和算法分解設計等。由于電子技術和EDA工具的發展,設計師可以在不太長的時間內使用:EDA工具,通過一些簡單標準化的設計過程,利用微電子廠家提供的設計庫來完成數萬門專用集成電路(ASIC)和集成系統的設計與驗證。