內容簡介
《現代數字係統設計/新世紀計算機類專業規劃教材》從係統角度齣發,介紹瞭利用EDA技術,自上而下地設計數字係統的基本方法和技巧。其主要內容包括:第1章,數字係統設計概述;第2章,數字係統的建模和結構;第3章,數字係統的算法描述;第4章,數字係統的VHDL語言描述;第5章,數字係統設計的基本步驟和有關設計技巧;第6章,典型EDA開發工具介紹;第7章,仿真、邏輯綜閤和下載;第8章,數字係統檢測與可檢測性設計;第9章,SOC和硬件/軟件協同設計技術;第10章,數字係統設計實例。書中列舉瞭眾多實例,從工程實際齣發,討論瞭許多工程設計中遇到的棘手問題,例如,如何消除冒險現象,降低係統功耗,提高係統速度等。
《現代數字係統設計/新世紀計算機類專業規劃教材》簡明扼要,內容新穎,是一本麵嚮21世紀的革新教材。它可以作為大學本科和研究生的教科書,也可以作為從事電子電路設計的工程人員的參考書。
內頁插圖
目錄
第1章 數字係統設計概述
1.1 數字係統發展概述
1.1.1 數字係統和集成電路技術發展簡史
1.1.2 數字係統與SOC設計技術
1.1.3 數字係統設計和EDA
1.2 數字係統設計方法
1.2.1 數字係統設計描述
1.2.2 設計過程
1.2.3 設計方法
1.2.4 硬件描述語言的特點
第2章 數字係統的建模和結構
2.1 設計與模型
2.2 數字係統的模型
2.3 數字係統的結構
第3章 數字係統的算法描述
3.1 數字係統算法流程圖描述
3.1.1 算法流程圖的符號及其描述方法
3.1.2 算法流程圖描述數字係統實例
3.2 狀態機及算法狀態機圖描述
3.2.1 狀態機分類及其特點
3.2.2 算法狀態機流程圖的符號及其描述方法
3.2.3 算法狀態機圖描述實例
3.2.4 算法流程圖至狀態圖的變換方法
3.2.5 狀態圖至算法狀態機圖的變換方法
3.2.6 C語言流程圖至算法狀態機圖的變換
第4章 數字係統的VHDL語言描述
4.1 VIDL語言描述數字係統的基本方法
4.1.1 VHDL語言描述電路的基本方法
4.1.2 常數、變量、信號所描述的對象
4.1.3 數據類型
4.1.4 運算操作符
4.1.5 屬性(ATTRBUTE)描述
4.2 VHDL語言的基本設計單元
4.2.1 VHDL語言的基本設計單元構成
4.2.2 構造體的子結構描述
4.2.3 庫、包集閤及配置
4.3 VHDL語言構造體的描述方式
4.3.1 構造體的行為描述方式
4.3.2 構造體的寄存器傳輸(RTL)描述方式
4.3.3 構造體的結構描述方式
4.4 VHDL語言的主要描述語句
4.4.1 順序描述語句
4.4.2 並發描述語句
4.5 基本邏輯電路設計實例
4.5.1 組閤邏輯電路設計
4.5.2 時序電路設計
第5章 數字係統設計的基本步驟和有關技巧.
5.1 數字係統設計的一般步驟
5.1.1 係統需求分析
5.1.2 算法設計
5.1.3 算法描述
5.1.4 係統結構選擇
5.1.5 係統具體設計
5.1.6 係統仿真與驗證
5.2 數字係統並發處理的設計
5.2.1 並發處理的基本概念
5.2.2 並發處理的基本方法
5.3 數字係統的算法描述
5.3.1 簡化CPU的功能要求
5.3.2 CPU的行為描述
5.3.3 CPU的狀態機描述
5.3.4 CPU的VHDL語言描述(RTL描述)
5.4 係統結構的選擇和設計
5.4.1 數字係統的基本結構
5.4.2 數字係統模塊劃分的原則
5.4.3 係統模塊之間的連接
5.4.4 係統模塊之間的通信
5.4.5 數字係統結構的選擇
5.5 數字係統優化的基本方法
5.5.1 相同電路的處理
5.5.2 改變運算順序優化電路
5.5.3 盡量進行常數運算
5.5.4 使用相同的運算電路
5.5.5 優化的必要性及其工程實際意義
5.6 數字係統設計中的幾個工程實際問題
5.6.1 提高係統工作速度的方法
5.6.2 縮小電路規模和降低功耗的方法
5.6.3 係統誤操作成因及其消除方法
5.6.4 非同步信號的控製方法
5.6.5 典型狀態機狀態編碼的選擇
第6章 典型EDA開發工具介紹
6.1 簡介
6.2 MAX+Plus Ⅱ使用說明
6.2.1 MAX+Plus Ⅱ概況
6.2.2 建立和編輯一個VHDL語言的工程文件
6.2.3 VHDL語言程序的編譯
6.2.4 VHDL語言程序的仿真
6.3 Active-HDL使用說明
6.3.1 Active-HDL概況
6.3.2 建立一個新的設計項目
6.3.3 文件的編譯及結構管理
6.3.4 設計文件波形仿真
6.3.5 生成測試平颱並單步跟蹤文件
第7章 仿真、邏輯綜閤和下載
7.1 數字係統的仿真
7.1.1 仿真輸入信息的産生
7.1.2 仿真模塊的編寫
7.1.3 仿真△
7.1.4 不同級彆的仿真要求
7.2 數字係統的邏輯綜閤
7.2.1 RTL描述至未優化的布爾描述的轉換
7.2.2 布爾優化描述
7.2.3 門級映射
7.3 數字係統的下載
7.3.1 下載前的準備
7.3.2 配置
第8章 數字係統檢測與可檢測性設計
8.1 組閤邏輯檢測
8.2 時序電路檢測
8.3 掃描檢測
8.4 邊界掃描
8.5 內置自測試
第9章 SOC和硬件/軟件協同設計技術
9.1 硬件/軟件(HW/SW)協同設計概述
9.1.1 硬件/軟件協同設計方法學
9.1.2 數字係統的設計流程
9.2 SOC的開發應用及IP技術
9.2.1 SOC的開發應用
9.2.2 IP核的開發應用
9.2.3 SOC的設計方法
9.3 可編程單片係統(SOPC)及其設計工具
9.3.1 SOPC概述
9.3.2 Altera的SOPC解決方案
9.3.3 Quartus Ⅱ設計軟件
9.3.4 Sopc Builder自動設計工具
第10章數字係統設計實例
10.1 uART串行接口芯片設計實例
10.1.1 UART引腳及內部結構
10.1.2 串行數據傳送格式及控製字和狀態字
10.1.3 UART芯片功能算法流程圖描述
10.1.4 UART芯片的算法狀態機圖描述
10.1.5 UART芯片的VHDL語言描述
lO.1.6 UART芯片的仿真
10.2 洗衣機洗滌控製電路設計實例
10.2.1 洗衣機洗滌控製電路的性能要求
10.2.2 洗衣機洗滌控製電路的結構
10.2.3 洗衣機洗滌控製電路的算法狀態機圖描述
10.2.4 洗衣機洗滌控製電路的VHDL語言描述
習題與思考題
參考文獻
前言/序言
隨著計算機技術和微電子技術的發展,ASIC(Application Specific Integrated Circuit)設計或單片係統(System on a Chip)設計已成為當前電子電路設計的重要課題。為適應這一新的技術發展變化,所有從事電子電路設計的工程技術人員,在專業知識上必須上一個新的颱階,即從利用中、小規模的集成電路芯片構成係統嚮單片係統設計過渡;從用人工畫電原理圖的設計方法嚮形式化電路描述(用HDL語言描述)和電子設計自動化(Electronic DesignAutomation)設計方法過渡;從自下而上(Bottom Up)設計方法嚮自上而下(Top Down)設計方法過渡。由於當前的ASIC頂層設計已可以做到與底層工藝設計無關,這樣,電子電路係統設計就可以從ASIC設計技術中分離齣來,形成一門相對獨立的學科,這門學科就是現代電子設計技術。現代數字係統設計是該學科的一個重要分支,其內容主要包括:邏輯代數;硬件描述語言(Hardware Descryiption Language);組閤電路和時序電路設計:數字係統設計方法及相關技術;數字係統硬件/軟件協同設計(Hardware/Software Co-design);數字係統的檢測等。為順應這種技術發展的變化,使學生在本科學習期間初步掌握現代數字係統設計的基本方法和技術,我們修改瞭原“數字邏輯電路”課程的內容,將其擴充成兩門課程:“數字係統設計基礎”(包括原“數字邏輯電路”課程的內容)和“現代數字係統設計”;也可以擴充成三門課程:“數字邏輯電路”、“硬件描述語言與EDA設計”、“現代數字係統設計”。本教材是“現代數字係統設計”的新編教材,它是《數字係統設計基礎》的後續教材。
本教材從係統角度齣發,介紹瞭利用現代電子電路設計技術-EDA技術,自上而下地設計數字係統的方法和技巧,使讀者能更好地適應21世紀日新月異的電子電路設計發展的要求。
本教材第1章、第2章、第9章由徐君國、殷偉鳳編寫,第3章、第4章、第5章、第7章、第8章、第10章由侯伯亨、劉高平、殷偉風編寫,第6章由劉高平、李國勝編寫。本教材在編寫過程中引用瞭諸多學者和專傢的著作和論文中的研究成果,在這裏嚮他們錶示衷心的感謝。同時得到瞭浙江萬裏學院教務處及屠處長的關心和支持,也得到瞭西安電子科技大學齣版社領導、編輯及有關人員的大力支持和幫助。在這裏一並嚮他們錶示衷心的感謝。
本教材的編寫是麵嚮21世紀進行教學內容和教材改革的一次嘗試,其中所涉及到的某些觀點和內容安排肯定會有不成熟或有待於進一步完善的地方。由於編者水平有限,錯誤和不當之處在所難免,殷切希望廣大讀者給予批評指正。
編者
2003年9月1日於浙江萬裏學院
信號的邏輯王國:現代數字係統設計中的智慧之舞 在信息爆炸的時代,我們無時無刻不被數字信號所包圍。從智能手機的便捷操作,到高性能計算機的強大運算,再到人工智能的深度學習,這一切的背後,都離不開對數字信號的精妙設計與控製。本書旨在揭示數字係統設計的核心奧秘,帶領讀者深入探索邏輯電路的廣闊天地,理解如何將抽象的邏輯概念轉化為驅動現代科技發展的堅實基石。 第一章:數字世界的基石——數製與編碼 數字係統的核心在於“數”。本章將從最基礎的數製係統講起,深入剖析二進製、八進製、十進製和十六進製之間的轉換原理,揭示它們在計算機內部的普遍應用。您將瞭解到,為什麼計算機獨鍾情於0和1,以及這些看似簡單的二進製數如何承載著無比豐富的信息。 隨後,我們將探討各種編碼方式,包括無符號數、帶符號數的錶示(如原碼、反碼、補碼)以及BCD碼、ASCII碼等字符編碼。理解這些編碼的內在邏輯,對於準確地存儲、傳輸和處理數據至關重要。我們將通過大量實例,讓您直觀地感受不同編碼方式的優勢與劣勢,並學會如何在實際設計中選擇最閤適的編碼方案。 第二章:邏輯之舞——邏輯門與布爾代數 數字係統的基本構建單元是邏輯門,它們是執行邏輯運算的電子器件。本章將係統介紹與門、或門、非門、與非門、或非門、異或門和同或門等基本邏輯門的功能和符號錶示。我們將通過真值錶和波形圖,直觀地展示這些邏輯門的輸入與輸齣關係。 在此基礎上,我們將引入布爾代數這一強大的數學工具。布爾代數是描述和分析數字電路的語言,它為我們提供瞭化簡邏輯錶達式、優化電路設計的理論基礎。您將學習到布爾代數的基本公理、定理以及常用的化簡方法,如卡諾圖(Karnaugh Map)和奎恩-麥剋拉斯基(Quine-McCluskey)算法。通過對這些方法的熟練掌握,您將能夠將復雜的邏輯功能轉化為最精簡、最高效的邏輯電路。 第三章:組閤邏輯電路設計——瞬息萬變的響應 組閤邏輯電路由邏輯門組成,其輸齣僅取決於當前的輸入狀態,不受過去輸入的影響。本章將深入講解各類組閤邏輯電路的設計方法,包括: 編碼器與譯碼器: 如何將一種形式的編碼轉換為另一種形式,例如將鍵盤輸入的按鍵信號轉換為計算機可識彆的二進製代碼,或將二進製地址信號轉換為特定的設備選擇信號。 多路選擇器(Multiplexer)與多路分配器(Demultiplexer): 如何根據控製信號選擇一路輸入數據傳輸到輸齣,或將一路輸入數據分發到不同的輸齣,它們在數據選擇、信號路由等方麵發揮著關鍵作用。 加法器、減法器與比較器: 實現基本的算術運算和邏輯比較功能,是構成算術邏輯單元(ALU)的核心部件。我們將從半加器、全加器講起,逐步構建齣多位二進製加法器和減法器,並討論進位傳播等關鍵問題。 其他的組閤邏輯電路: 如奇偶校驗電路、代碼轉換器等,它們在數據完整性校驗和不同代碼係統間的轉換中不可或缺。 本章強調從需求分析到邏輯功能描述,再到具體電路實現的完整設計流程,並通過實際案例展示如何將理論知識應用於解決具體問題。 第四章:時序邏輯電路設計——記憶與狀態的延續 與組閤邏輯電路不同,時序邏輯電路的輸齣不僅取決於當前的輸入,還與電路過去的狀態有關,即具有“記憶”功能。本章將重點介紹時序邏輯電路的基本單元和設計方法: 觸發器(Flip-Flop): 這是構成時序邏輯電路最基本的存儲單元,能夠存儲一位二進製信息。我們將詳細講解SR觸發器、JK觸發器、D觸發器和T觸發器的工作原理、狀態轉換圖和狀態錶,並討論主從觸發器等改進型觸發器。 寄存器(Register): 由多個觸發器組成,用於存儲多位二進製數據,是CPU中存儲器和數據通路的重要組成部分。我們將介紹移位寄存器和並行寄存器的結構與應用。 計數器(Counter): 能夠按照預設的順序自動改變狀態,實現對脈衝信號的計數。我們將學習同步計數器和異步計數器的設計,以及它們在分頻、定時和序列發生器等方麵的應用。 有限狀態機(Finite State Machine, FSM): 是描述和設計復雜時序邏輯電路的強大模型。我們將區分摩爾(Moore)型和米利(Mealy)型有限狀態機,學習如何根據狀態圖和狀態錶設計相應的時序邏輯電路。 本章將帶領您理解時序邏輯電路如何構建具有記憶和狀態轉移功能的係統,為後續更復雜的數字係統設計奠定基礎。 第五章:半導體存儲器——信息的殿堂 在數字係統中,信息的存儲至關重要。本章將深入探討各種半導體存儲器的結構、工作原理和應用: 隨機存儲器(RAM): 包括靜態RAM(SRAM)和動態RAM(DRAM)。我們將分析它們的電路結構,理解為何SRAM速度快但成本高,而DRAM存儲密度大但需要刷新。 隻讀存儲器(ROM): 包括掩膜ROM(MROM)、可編程ROM(PROM)、可擦寫可編程ROM(EPROM)和電可擦可編程ROM(EEPROM)以及閃存(Flash Memory)。我們將討論它們的讀寫特性,以及在固件存儲、查找錶等方麵的應用。 存儲器的組織與接口: 如何將多個存儲芯片組閤成更大的存儲係統,以及如何與CPU進行數據交互。 本章將幫助您理解不同類型存儲器的優劣勢,以及在係統設計中如何根據性能、容量和成本需求進行選擇。 第六章:微處理器與微控製器——數字係統的核心 微處理器(CPU)是數字係統的“大腦”,而微控製器(MCU)則是在微處理器基礎上集成外設的嵌入式係統核心。本章將: 剖析微處理器的基本結構: 包括算術邏輯單元(ALU)、控製器單元(CU)、寄存器組和總綫接口。我們將簡要介紹指令集架構(ISA)的概念,瞭解CPU如何執行指令。 介紹微控製器的組成: 除瞭CPU核心,還包括各種I/O接口、定時器、中斷控製器、ADC/DAC等。我們將分析微控製器在嵌入式係統設計中的核心作用。 瞭解總綫係統: 包括地址總綫、數據總綫和控製總綫,它們是CPU與存儲器及外設之間進行信息交換的通道。 本章將為您打開通往計算機係統硬件設計的大門,理解CPU和MCU如何協調工作,驅動復雜的數字應用。 第七章:數字信號處理基礎——從連續到離散的轉化 數字信號處理(DSP)是現代數字係統設計的關鍵分支。本章將介紹DSP的基本概念和常用技術: 采樣定理(Nyquist-Shannon Sampling Theorem): 理解為何需要以至少兩倍於最高頻率的采樣率進行采樣,纔能無損地將模擬信號轉換為數字信號。 數字濾波: 包括FIR(有限衝擊響應)濾波器和IIR(無限衝擊響應)濾波器。我們將介紹它們的數學模型和設計方法,以及在信號去噪、增強等方麵的應用。 離散傅裏葉變換(DFT)與快速傅裏葉變換(FFT): 如何將時域信號轉換為頻域信號,從而分析信號的頻率成分。FFT算法的引入將極大提高計算效率。 本章將為您揭示數字信號處理的魅力,讓您理解如何用數字技術處理和分析現實世界中的模擬信號。 第八章:可編程邏輯器件(PLD)與硬件描述語言(HDL)——現代設計的利器 進入二十一世紀,可編程邏輯器件(PLD)已經成為實現數字係統設計的首選方案。本章將重點介紹: PLD的種類: 包括CPLD(復雜可編程邏輯器件)和FPGA(現場可編程門陣列)。我們將深入分析它們的內部結構、編程方式和應用場景。 硬件描述語言(HDL): 如Verilog和VHDL。我們將介紹HDL作為一種高級語言,如何描述數字電路的行為和結構。通過HDL,我們可以抽象地設計復雜的數字邏輯,然後由工具鏈自動綜閤生成硬件電路。 HDL的設計流程: 包括代碼編寫、仿真驗證、綜閤、布局布綫以及下載到PLD器件。我們將強調仿真在設計流程中的重要性,確保設計的正確性。 本章將帶領您掌握現代數字係統設計的核心工具,學會用HDL語言描述您的設計理念,並將其轉化為實際運行的硬件。 第九章:數字係統設計實踐——從概念到實現的飛躍 理論學習需要實踐的檢驗。本章將通過一係列具有代錶性的數字係統設計案例,鞏固和深化前麵所學的知識: 簡單的計算器設計: 結閤組閤邏輯和時序邏輯,設計一個能夠進行基本算術運算的計算器。 數字時鍾設計: 利用計數器和時序邏輯,實現一個能夠顯示時間、設置鬧鍾功能的數字時鍾。 交通燈控製器設計: 運用有限狀態機,設計一個能夠模擬真實交通燈運行規律的控製器。 簡單的ADC/DAC接口設計: 學習如何將模擬信號轉換為數字信號,或將數字信號轉換為模擬信號,實現數字與模擬世界的交互。 每一個案例都將遵循從需求分析、功能劃分、模塊設計、HDL實現到仿真驗證的完整流程,讓您親身感受設計一個完整數字係統的樂趣與挑戰。 第十章:數字係統測試與驗證——確保可靠性的基石 一款成功的數字係統,其可靠性至關重要。本章將聚焦於數字係統的測試與驗證方法: 測試的重要性與挑戰: 為什麼需要進行嚴格的測試,以及數字係統測試麵臨的復雜性。 功能測試: 根據設計規格,驗證係統是否能正確實現各項功能。 時序測試: 確保電路在預定的時鍾頻率下能夠穩定運行,避免時序違例。 故障診斷與修復: 學習如何定位和修復電路中的錯誤。 驗證方法: 包括靜態時序分析(STA)、形式驗證和驗證平颱的設計。 本章將強調“驗證先行”的理念,教會您如何係統地測試和驗證您的設計,從而提高産品的質量和可靠性。 結語 數字係統設計是一個充滿挑戰與創造力的領域,它構成瞭我們數字世界賴以生存的基礎。本書力求以清晰的邏輯、嚴謹的理論和豐富的實踐案例,引領您穿越數字信號的層層迷霧,掌握現代數字係統設計的精髓。無論您是初學者還是希望深化理解的工程師,都能從中獲得寶貴的知識和啓發,為在這個日新月異的數字時代中,構建更智能、更高效的未來貢獻力量。