內容簡介
《數字集成電路設計實驗教程》是作者結閤自身多年教學經驗和項目實踐經驗所編著的一《數字集成電路設計實驗教程》。作為一《數字集成電路設計實驗教程》,《數字集成電路設計實驗教程》著重突齣實用性和可操作性。也就是以一係列具有工程項目特點的實驗為載體,結閤實用的工具軟件,詳細介紹數字集成電路從前端設計到後端設計的一係列流程和方法。《數字集成電路設計實驗教程》由簡單到復雜、逐步深入、易學易懂,理論和實驗密切結閤,使讀者能夠較快掌握數字集成電路的設計方法。主要內容包括數字集成電路自頂嚮F (top-down)的設計流程,仿真軟件ModelSim、FPCA開發軟件ISE、調試利器ChipSe、ope Pro、邏輯綜閤軟件Design Compiler以及後端設計軟件Astro的使用,基本邏輯門電路、分頻器、狀態機、按鍵防抖電路、數碼管掃描顯示電路基礎性實驗,樂麯演奏電路、數字時鍾電路、交通信號燈、基於I2C接口的存儲器瀆寫訪問、VCA、MIPS微處理器綜閤性實驗。《數字集成電路設計實驗教程》在每章後麵還安排瞭相應的習題,便於讀者檢驗學習的效果。
目錄
目錄
第1章數字集成電路的設計流程1
第2章EDA軟件使用指南6
2.1仿真軟件——ModelSim6
2.1.1基於ModelSim的仿真流程6
2.1.2仿真設計7
2.2FPGA開發軟件——ISE12
2.2.1啓動ISE軟件12
2.2.2創建項目工程13
2.2.3添加設計的約束文件15
2.2.4邏輯綜閤17
2.2.5FPGA設計實現19
2.2.6編程下載FPGA20
2.3調試利器——ChipScope Pro28
2.3.1ChipScope Pro工作原理28
2.3.2ChipScope Pro開發實例28
2.4邏輯綜閤軟件——Design Compiler38
2.4.1啓動DesignCompiler綜閤器39
2.4.2邏輯單元庫加載40
2.4.3用戶設計源文件的加載與分析41
2.4.4頂層設計文件設置44
2.4.5時序約束45
2.4.6綜閤及優化46
2.4.7綜閤結果導齣48
2.5後端設計軟件——Astro50
2.5.1數據準備(data preparation)51
2.5.2設計建立(design setup)52
2.5.3布局規劃(floorplan)57
2.5.4時序設置(timing setup)63
2.5.5布局(placement)67
2.5.6時鍾樹綜閤(clock tree synthesis)72
2.5.7布綫75
2.5.8可製造性設計(design for manufacturing)82
2.5.9數據導齣(data export)88
第3章基礎性實驗94
3.1基本邏輯門電路實驗94
3.1.1實驗目的94
3.1.2實驗原理94
3.1.3實驗工具94
3.1.4實驗步驟95
3.1.5VHDL參考源代碼95
3.2分頻器實驗96
3.2.1實驗目的96
3.2.2實驗原理96
3.2.3實驗工具97
3.2.4實驗步驟97
3.2.5VHDL參考源代碼97
3.3狀態機控製流水燈實驗99
3.3.1實驗目的99
3.3.2實驗原理99
3.3.3實驗工具99
3.3.4實驗步驟99
3.3.5VHDL參考源代碼100
3.4按鍵防抖電路實驗103
3.4.1實驗目的103
3.4.2實驗原理104
3.4.3實驗工具105
3.4.4實驗步驟105
3.4.5VHDL參考源代碼106
3.5數碼管掃描顯示電路實驗107
3.5.1實驗目的107
3.5.2實驗原理108
3.5.3實驗工具109
3.5.4實驗步驟109
3.5.5VHDL參考源代碼109
第4章綜閤性實驗113
4.1樂麯演奏電路實驗113
4.1.1實驗目的113
4.1.2實驗原理113
4.1.3實驗工具116
4.1.4實驗步驟117
4.1.5VHDL參考源代碼122
4.2數字時鍾電路實驗126
4.2.1實驗目的126
4.2.2實驗原理126
4.2.3實驗工具127
4.2.4實驗步驟127
4.2.5VHDL參考源代碼128
4.3交通信號燈實驗145
4.3.1實驗目的145
4.3.2實驗原理145
4.3.3實驗工具146
4.3.4實驗步驟146
4.3.5VHDL參考源代碼146
4.4基於I2C接口的存儲器讀寫訪問綜閤實驗153
4.4.1實驗目的153
4.4.2實驗原理153
4.4.3實驗工具158
4.4.4實驗步驟158
4.4.5VHDL參考源代碼158
4.5VGA綜閤實驗188
4.5.1實驗目的188
4.5.2實驗原理188
4.5.3實驗工具192
4.5.4實驗步驟192
4.5.5VHDL參考源代碼192
4.6MIPS綜閤實驗196
4.6.1實驗目的196
4.6.2實驗原理196
4.6.3實驗工具212
4.6.4實驗步驟212
4.6.5VHDL參考代碼212
主要參考文獻231
精彩書摘
第1章數字集成電路的設計流程
集成電路(integrated circuit,IC)是微電子技術發展的一個標誌性成果,集成電路的發展經曆瞭小規模(SSI)、中規模(MSI)、大規模(LSI)、超大規模(VLSI)階段,一直發展到目前的SoC,已經可以在單一芯片中集成中央處理器(CPU)、數字信息處理器(DSP)、接口、鎖相環(PLL)、模擬數字轉換器(ADC)等越來越多的模塊。同時,集成電路設計與加工的特徵尺寸也達到十幾納米的水平。集成電路的高性能、高復雜性要求,給設計帶來瞭挑戰,同時也極大地促進瞭EDA的迅猛發展,尤其對於數字集成電路,其規模甚至達到單片幾億個晶體管,如果不依賴於EDA技術,其工作量是難以想象的。
電子設計自動化技術針對傳統的自底嚮上(bottom-up)的設計方法提齣瞭自頂嚮下(top-dowm)的設計方法。自頂嚮下的設計過程是從係統硬件的高層次抽象描述嚮底層物理描述的一係列轉換過程。自頂嚮下的設計對底層單元的選取更加靈活,有利於更好地發揮設計人員的創造性,從而形成具有自主知識産權的芯片産品。自頂嚮下的設計流程如圖1-1所示。
圖1-1自頂嚮下設計流程
自頂嚮下的設計由功能級、行為級描述開始;寄存器傳輸(RTL)級描述為第一個中間結果;再將RTL級描述由邏輯綜閤得到網錶(net-list)或電路圖;利用EDA工具將網錶自動轉換成目標文件下載到現場可編程門陣列(field programmable gate array,FPGA)/復雜可編程邏輯器件(complex programmable logic device,CPLD)或通過自動布局布綫設計成專用集成電路(application specification integrated circuit,ASIC),從而得到電路與係統的物理實現。
在設計過程中,FPGA開發設計流程與ASIC設計流程有很大的差異。
FPGA的設計流程是利用EDA開發軟件對FPGA芯片進行開發的過程。FPGA的設計流程主要包括電路設計輸入、功能仿真、綜閤、綜閤後仿真、布局布綫、布綫後仿真以及芯片編程與調試等步驟。FPGA開發的主要流程如圖1-2所示。
圖1-2FPGA開發的主要流程
以下對各步驟進行簡要介紹:
(1)電路設計輸入。常用的電路設計輸入方法有硬件描述語言(HDL)和原理圖輸入等。原理圖輸入是一種最直接的描述方式,在可編程芯片發展的早期應用比較廣泛,它將所需的器件從元件庫中調齣來,畫齣原理圖。這種方法雖然直觀並易於仿真,但效率很低,且不易維護,不利於模塊構造和重用,可移植性差,當芯片升級後,所有的原理圖都需要做一定的改動。目前,在實際開發中應用最廣泛的就是HDL輸入法,它利用文本描述設計,其主流語言是Verilog HDL和VHDL。這兩種語言都是美國電氣與電子工程師協會(IEEE)的標準HDL,其共同的突齣特點有:語言與芯片工藝無關,利於自頂嚮下設計,便於模塊的劃分,可移植性好,具有很強的邏輯描述和仿真功能,而且輸入效率很高。
(2)功能仿真。功能仿真,也稱為前仿真,是在編譯之前對用戶所設計的電路進行邏輯功能驗證,此時的仿真沒有延遲信息,僅對初步的功能進行檢測。仿真前,要先利用波形編輯器和HDL等建立波形文件和測試嚮量,仿真結果將會生成報告文件並輸齣信號波形,從中便可以觀察各個節點信號的變化。如果發現錯誤,則返迴修改邏輯設計。常用的工具有Model Tech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog以及NC-VHDL等軟件。
(3)綜閤。所謂綜閤就是將較高級抽象層次的描述轉化成較低層次的描述。綜閤優化根據目標與要求優化所生成的邏輯連接,使層次設計平麵化,供FPGA布局布綫軟件進行實現。即將設計輸入編譯成由與門、或門、非門、RAM、觸發器等基本邏輯單元組成的邏輯連接網錶。常用的綜閤工具有Synopsys(原Synplicity公司)公司的Synplify/Synplify Pro軟件以及各個FPGA廠傢自己推齣的綜閤開發工具。
(4)綜閤後仿真。綜閤後仿真檢查綜閤結果是否和原設計一緻。在仿真時,把綜閤生成的標準延時文件反標注到綜閤仿真模型中,可估計網錶中門延時帶來的影響。但由於沒有布綫信息,這一步驟不能估計綫延時,所以與布綫後的實際情況還有一定的差距,並不十分準確。
(5)布局布綫。布局布綫即實現,是將綜閤生成的邏輯網錶配置到具體的FPGA芯片上,布局布綫是其中最重要的過程。布局將邏輯網錶中的底層單元閤理地配置到FPGA芯片內部的固有硬件結構上。布綫則根據布局的拓撲結構,利用芯片內部的各種連綫資源,閤理正確地連接各個元件。布綫結束後,軟件工具會自動生成報告,提供有關設計中各部分資源的使用情況。基於對自身芯片知識産權的考慮,布局布綫工具一般由各FPGA芯片生産商自主提供。
(6)布綫後仿真。布綫後仿真也稱為後仿真,是指將布局布綫的延時信息反標注到設計網錶中,對設計的電路進行驗證。後仿真包含的時序信息最完整,能較好地反映芯片的實際工作情況。
(7)芯片編程與調試。設計的最後一步就是芯片編程與調試。芯片編程是指産生使用的數據文件(位流文件,bitstream),然後將編程數據下載到FPGA芯片中。邏輯分析儀是FPGA設計的主要調試工具,但需要引齣大量的測試引腳,且價格昂貴。目前,主流的FPGA芯片生産商都提供瞭內嵌的在綫邏輯分析儀(如Xilinx ISE中的ChipScope、Altera QuartusII中的Signal TapII以及Signal Prob)來解決上述矛盾,它們隻需要占用芯片少量的邏輯資源,具有很高的實用價值。
ASIC的設計可以粗略地分為設計輸入、邏輯綜閤、仿真、布局(placement)、布綫(rounting)、版圖後仿真、檢查驗證等步驟。利用商業化工具以及預先設計好的標準單元庫、宏單元庫已經使ASIC 設計成為速度最快、成本最低而且錯誤最少的一種IC 設計方法,因而ASIC 設計方法已迅速在工業界的各個領域得到推廣。ASIC的設計流程如圖1-3所示。
圖1-3ASIC設計流程
當HDL的行為級仿真通過之後,就可以進行ASIC邏輯綜閤瞭。所謂ASIC邏輯綜閤是指在工藝庫的基礎上通過映射和優化過程,把設計的RTL級描述轉換成與工藝密切相關的門級網錶。在綜閤過程中,設計者可以根據自己的需要加入時序約束或驅動負載約束等,使綜閤結果閤乎設計的要求。在ASIC邏輯綜閤上,Cadence公司的AMBIT Build Gates 和Synopsys公司的Design Compiler都是經過無數驗證,切實可用的工具。綜閤結束後為瞭及早地發現錯誤、排除錯誤,可以進行門級估算時序仿真,如果結果有錯誤就可以馬上迴到代碼設計糾正錯誤,直到仿真結果符閤要求。
接下來流程轉入版圖設計,在EDA工具環境下,可以將綜閤生成的網錶讀入並與工藝物理信息庫及時序庫配閤,進行整個芯片的布局布綫。布局布綫走通後,可得到一個初步的版圖。為瞭驗證實際布綫後寄生效應對設計的影響是否會導緻時序齣錯,必須進行版圖後仿真,仿真的方法與綜閤後仿真相同。另外,版圖必須在隨後的DRC、LVS中進行驗證,以確保版圖不違背設計規則、無電氣錯誤。此外,在版圖設計完成後,還可以進行更為準確的晶體管級的功能仿真,以此確保芯片設計的正確性。當然以上流程往往不是跑一遍就能夠完全達到功能、時序等條件的要求,一般都需要經過多次的迭代和優化纔能最終達到時序等條件的“收斂”。本章僅僅是對FPGA和ASIC設計的流程做瞭大緻的介紹,後麵的實驗教程有更為詳細的介紹和講解。
習題
(1)top-down設計方法主要包括哪幾個階段?分彆是什麼內容?
(2)FPGA開發的主要流程有哪些?
(3)ASIC設計流程包括哪些?
(4)FPGA開發的主要流程與ASIC設計流程有哪些區彆?
(5)FPGA的主要廠商有哪些?各自使用的EDA軟件是什麼?
第2章EDA軟件使用指南
“工欲善其事,必先利其器”,EDA軟件的熟練使用是學習數字集成電路設計的基礎。本章詳細介紹ModelSim仿真軟件、FPGA開發軟件ISE、調試利器Chipscope Pro、邏輯綜閤軟件(design compiler)和後端設計軟件(Astro)的使用。
2-1仿真軟件——ModelSim
ModelSim是Mentor公司推齣的優秀的HDL仿真軟件,它功能強大,提供友好的仿真環境,支持VHDL和Verilog混閤仿真,具有速度快、精度高和便於操作的特點。它還具有代碼分析能力,可以看齣不同代碼段消耗的資源情況。
2-1-1基於ModelSim的仿真流程
使用ModelSim進行仿真的流程如圖2-1所示。
圖2-1ModelSim仿真流程
前言/序言
數字集成電路設計實驗教程 下載 mobi epub pdf txt 電子書