EDA技術(shù)與應(yīng)用第2版課件_第1頁
EDA技術(shù)與應(yīng)用第2版課件_第2頁
EDA技術(shù)與應(yīng)用第2版課件_第3頁
EDA技術(shù)與應(yīng)用第2版課件_第4頁
EDA技術(shù)與應(yīng)用第2版課件_第5頁
已閱讀5頁,還剩449頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

2023/9/51EDA技術(shù)與應(yīng)用

(第2版)江國強編制桂林電子科技大學(xué)2023/7/301EDA技術(shù)與應(yīng)用

(第2版)江國強編2023/9/52目

第1章EDA技術(shù)概述

第2章EDA工具軟件使用方法第3章VHDL第4章Veilog

HDL第5章常用EDA工具軟件第6章可編程邏輯器件第7章EDA技術(shù)的應(yīng)用2023/7/302目

2023/9/53第1章EDA技術(shù)概述

1.1EDA技術(shù)及發(fā)展

1.2

EDA設(shè)計流程1.3硬件描述語言HDL1.4可編程邏輯器件1.5常用EDA工具

2023/7/303第1章EDA技術(shù)概述1.1ED2023/9/54第2章EDA工具軟件的使用方法

2.1QuartusⅡ的安裝2.2QuartusⅡ軟件的主界面

2.3

QuartusⅡ圖形編輯輸入法

2.4MAX+PLUSⅡ設(shè)計項目的轉(zhuǎn)換

2.5QuartusⅡ宏功能模塊的使用方法

2023/7/304第2章EDA工具軟件的使用方法2.2023/9/55第3章VHDL3.1VHDL基礎(chǔ)知識3.2VHDL語言要素3.3

VHDL順序語句3.4VHDL并行語句3.5VHDL庫和程序包3.6VHDL設(shè)計流程2023/7/305第3章VHDL3.1VHDL2023/9/56第4章VerilogHDL4.1VerilogHDL入門4.2VerilogHDL的詞法4.3VerilogHDL的語句4.4不同抽象級別的VerilogHDL模型4.5VerilogHDL設(shè)計流程

2023/7/306第4章VerilogHDL4.12023/9/57第5章常用EDA工具軟件

5.1MAX+PLUSⅡ

5.2ModelSim

5.3基于Matlab/DSPBuilder的DSP模塊設(shè)計2023/7/307第5章常用EDA工具軟件5.1M2023/9/58第6章可編程邏輯器件6.1可編程邏輯器件的基本原理

6.2可編程邏輯器件的設(shè)計技術(shù)

6.3可編程邏輯器件的編程與配置

2023/7/308第6章可編程邏輯器件6.1可編程邏輯2023/9/59第7章EDA技術(shù)的應(yīng)用

7.1組合邏輯電路設(shè)計應(yīng)用7.2時序邏輯電路設(shè)計應(yīng)用2023/7/309第7章EDA技術(shù)的應(yīng)用7.1組合邏2023/9/510第1章EDA技術(shù)概述1.1EDA技術(shù)及發(fā)展

20世紀(jì)末,數(shù)字電子技術(shù)得到飛速發(fā)展,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化的提高。在其推動下,數(shù)字電子技術(shù)的應(yīng)用已經(jīng)滲透到人類生活的各個方面。從計算機到手機,從數(shù)字電話到數(shù)字電視,從家用電器到軍用設(shè)備,從工業(yè)自動化到航天技術(shù),都盡可能采用數(shù)字電子技術(shù)。

本章介紹EDA技術(shù)的發(fā)展、EDA設(shè)計流程以及EDA技術(shù)涉及的領(lǐng)域。

2023/7/3010第1章EDA技術(shù)概述1.1EDA2023/9/511

微電子技術(shù),即大規(guī)模集成電路加工技術(shù)的進(jìn)步是現(xiàn)代數(shù)字電子技術(shù)發(fā)展的基礎(chǔ)。目前,在硅片單位面積上集成的晶體管數(shù)量越來越多,1978年推出的8086微處理器芯片集成的晶體管數(shù)是4萬只,到2000年推出的Pentium4微處理器芯片的集成度達(dá)4200萬只晶體管,2006年單片可編程邏輯器件(PLD)的集成度達(dá)到近10億只晶體管。原來需要成千上萬只電子元件組成的一臺計算機主板或彩色電視機電路,而現(xiàn)在僅用幾片超大規(guī)模集成電路就可以代替,現(xiàn)代集成電路已經(jīng)能夠?qū)崿F(xiàn)單片電子系統(tǒng)SOC(SystemOnaChip)的功能。

2023/7/3011微電子技術(shù),即大規(guī)模集成電路加工2023/9/512

現(xiàn)代電子設(shè)計技術(shù)的核心是EDA(ElectronicDesignAutomation)技術(shù)。EDA技術(shù)就是依靠功能強大的電子計算機,在EDA工具軟件平臺上,對以硬件描述語言HDL(HardwareDescriptionLanguage)為系統(tǒng)邏輯描述手段完成的設(shè)計文件,自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、仿真,直至下載到可編程邏輯器件CPLD/FPGA或?qū)S眉呻娐稟SIC(ApplicationSpecificIntegratedCircuit)芯片中,實現(xiàn)既定的電子電路設(shè)計功能。EDA技術(shù)使得電子電路設(shè)計者的工作僅限于利用硬件描述語言和EDA軟件平臺來完成對系統(tǒng)硬件功能的實現(xiàn),極大地提高了設(shè)計效率,減少設(shè)計周期,節(jié)省設(shè)計成本。

2023/7/3012現(xiàn)代電子設(shè)計技術(shù)的核心是EDA2023/9/513EDA是在20世紀(jì)90年代初從計算機輔助設(shè)計(CAD)、計算機輔助制造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發(fā)展而來的。一般把EDA技術(shù)的發(fā)展分為CAD、CAE和EDA三個階段。

CAD(ComputerAidedDesign)是EDA技術(shù)發(fā)展的早期階段,在這個階段,人們開始利用計算機取代手工勞動。但當(dāng)時的計算機硬件功能有限,軟件功能較弱,人們主要借助計算機對所設(shè)計的電路進(jìn)行一些模擬和預(yù)測,輔助進(jìn)行集成電路版圖編輯、印刷電路板PCB(PrintedCircuitBoard)布局布線等簡單的版圖繪制等工作。

2023/7/3013EDA是在20世紀(jì)90年代初2023/9/514CAE(ComputerAidedEngineering)是在CAD的工具逐步完善的基礎(chǔ)上發(fā)展起來的,尤其是人們在設(shè)計方法學(xué)、設(shè)計工具集成化方面取得了長足的進(jìn)步,可以利用計算機作為單點設(shè)計工具,并建立各種設(shè)計單元庫,開始用計算機將許多單點工具集成在一起使用,大大提高了工作效率。

20世紀(jì)90年代以來,微電子工藝有了驚人的發(fā)展,工藝水平已經(jīng)達(dá)到了65納米級,在一個芯片上已經(jīng)可以集成上百萬乃至數(shù)億只晶體管,芯片速度達(dá)到了吉比特/秒量級,百萬門以上的可編程邏輯器件陸續(xù)面世,這樣就對電子設(shè)計的工具提出了更高的要求,提供了廣闊的發(fā)展空間,

2023/7/3014CAE(Computer2023/9/515促進(jìn)了EDA技術(shù)的形成。特別重要的是世界各EDA公司致力推出兼容各種硬件實現(xiàn)方案和支持標(biāo)準(zhǔn)硬件描述語言的EDA工具軟件,都有效地將EDA技術(shù)推向成熟。今天,EDA技術(shù)已經(jīng)成為電子設(shè)計的重要工具,無論是設(shè)計芯片還是設(shè)計系統(tǒng),如果沒有EDA工具的支持都將是難以完成的。EDA工具已經(jīng)成為現(xiàn)代電路設(shè)計師的重要武器,正在起作越來越重要的作用。

2023/7/3015促進(jìn)了EDA技術(shù)的形成。特別重要的是世2023/9/516設(shè)計準(zhǔn)備設(shè)計輸入·原理圖·硬件描述語言·波形圖功能仿真設(shè)計處理·優(yōu)化、綜合·適配、分割·布局、布線時序仿真器件編程器件測試設(shè)計完成1.2EDA設(shè)計流程2023/7/3016設(shè)計準(zhǔn)備設(shè)計輸入功能仿真設(shè)計處理時序仿2023/9/5171.2.1設(shè)計準(zhǔn)備設(shè)計準(zhǔn)備是指設(shè)計者在進(jìn)行設(shè)計之前,依據(jù)任務(wù)要求,確定系統(tǒng)所要完成的功能及復(fù)雜程度,器件資源的利用、成本等所要做的準(zhǔn)備工作,如進(jìn)行方案論證、系統(tǒng)設(shè)計和器件選擇等。1.2.2設(shè)計輸入設(shè)計輸入將設(shè)計的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表示出來,并送入計算機的過程。設(shè)計輸入形式文本方式設(shè)計輸入方式圖形設(shè)計輸入方式文本、圖形兩者混合的設(shè)計輸入方式。2023/7/30171.2.1設(shè)計準(zhǔn)備1.2.2設(shè)2023/9/5181.原理圖或圖形輸入方式這是一種最直接的設(shè)計輸入方式,它使用軟件系統(tǒng)提供的元器件庫及各種符號和連線畫出原理圖,形成原理圖輸入文件。這種方式大多用在對系統(tǒng)及各部分電路很熟悉的情況,或在系統(tǒng)對時間特性要求較高的場合。優(yōu)點是容易實現(xiàn)仿真,便于信號的觀察和電路的調(diào)整。

2023/7/30181.原理圖或圖形輸入方式2023/9/5192.硬件描述語言輸入方式硬件描述語言有普通硬件描述語言和行為描述語言,它們用文本方式描述設(shè)計和輸入。普通硬件描述語言有AHDL、CUPL等,它們支持邏輯方程、真值表、狀態(tài)機等邏輯表達(dá)方式。行為描述語言是目前常用的高層硬件描述語言,有VHDL和VerilogHDL等,它們具有很強的邏輯描述和仿真功能,可實現(xiàn)與工藝無關(guān)的編程與設(shè)計,可以使設(shè)計者在系統(tǒng)設(shè)計、邏輯驗證階段便確立方案的可行性,而且輸入效率高,在不同的設(shè)計輸入庫之間轉(zhuǎn)換也非常方便。運用VHDL、VerilogHDL硬件描述語言進(jìn)行設(shè)計已是當(dāng)前的趨勢。

2023/7/30192.硬件描述語言輸入方式2023/9/5203.波形輸入方式波形輸入主要用于建立和編輯波形設(shè)計文件以及輸入仿真向量和功能測試向量。波形設(shè)計輸入適合用于時序邏輯和有重復(fù)性的邏輯函數(shù),系統(tǒng)軟件可以根據(jù)用戶定義的輸入/輸出波形自動生成邏輯關(guān)系。波形編輯功能還允許設(shè)計者對波形進(jìn)行拷貝、剪切、粘貼、重復(fù)與伸展。從而可以用內(nèi)部節(jié)點、觸發(fā)器和狀態(tài)機建立設(shè)計文件,并將波形進(jìn)行組合,顯示各種進(jìn)制的狀態(tài)值。還可以通過將一組波形重疊到另一組波形上,對兩組仿真結(jié)果進(jìn)行比較。

2023/7/30203.波形輸入方式2023/9/5211.2.3設(shè)計處理這是EDA設(shè)計中的核心環(huán)節(jié)。在設(shè)計處理階段,編譯軟件將對設(shè)計輸入文件進(jìn)行邏輯化簡、綜合和優(yōu)化,并適當(dāng)?shù)赜靡黄蚨嗥骷詣拥剡M(jìn)行適配,最后產(chǎn)生編程用的編程文件。設(shè)計處理主要包括設(shè)計編譯和檢查、邏輯優(yōu)化和綜合、適配和分割、布局和布線、生成編程數(shù)據(jù)文件等過程。2023/7/30211.2.3設(shè)計處理2023/9/5221.設(shè)計編譯和檢查設(shè)計輸入完成之后,立即進(jìn)行編譯。在編譯過程中首先進(jìn)行語法檢驗,如檢查原理圖的信號線有無漏接,信號有無雙重來源,文本輸入文件中關(guān)鍵字有無錯誤等各種語法錯誤,并及時標(biāo)出錯誤的位置信息報告,供設(shè)計者修改。然后進(jìn)行設(shè)計規(guī)則檢驗,檢查總的設(shè)計有無超出器件資源或規(guī)定的限制并將編譯報告列出,指明違反規(guī)則和潛在不可靠電路的情況以供設(shè)計者糾正

.2023/7/30221.設(shè)計編譯和檢查2023/9/5232.邏輯優(yōu)化和綜合邏輯優(yōu)化是化簡所有的邏輯方程或用戶自建的宏,使設(shè)計所占用的資源最少。綜合的目的是將多個模塊化設(shè)計文件合并為一個網(wǎng)表文件,并使層次設(shè)計平面化(即展平)。3.適配和分割在適配和分割過程,確定優(yōu)化以后的邏輯能否與下載目標(biāo)器件CPLD或FPGA中的宏單元和I/O單元適配,然后將設(shè)計分割為多個便于適配的邏輯小塊形式映射到器件相應(yīng)的宏單元中。如果整個設(shè)計不能裝入一片器件時,可以將整個設(shè)計自動分割成多塊并裝入同一系列的多片器件中去。2023/7/30232.邏輯優(yōu)化和綜合2023/9/5244.布局和布線布局和布線工作是在設(shè)計檢驗通過以后由軟件自動完成的,它能以最優(yōu)的方式對邏輯元件布局,并準(zhǔn)確地實現(xiàn)元件間的布線互連。布局和布線以后,軟件會自動生成布線報告,提供有關(guān)設(shè)計中各部分資源的使用情況等信息。5.生成編程數(shù)據(jù)文件(JED文件)設(shè)計處理的最后一步是產(chǎn)生可供器件編程使用的數(shù)據(jù)文件。對CPLD來說,是產(chǎn)生熔絲圖文件,即JEDEC文件(電子器件工程聯(lián)合會制定的標(biāo)準(zhǔn)格式,簡稱JED文件);對于FPGA來說,是生成位流數(shù)據(jù)文件(Bit-streamGeneration)。

2023/7/30244.布局和布線2023/9/5251.2.4設(shè)計校驗設(shè)計校驗過程包括功能仿真和時序仿真,這兩項工作是在設(shè)計處理過程中同時進(jìn)行的。功能仿真是在設(shè)計輸入完成之后,選擇具體器件進(jìn)行編譯之前進(jìn)行的邏輯功能驗證,因此又稱為前仿真。此時的仿真沒有延時信息或者有由系統(tǒng)添加的微小標(biāo)準(zhǔn)延時,這對于初步的功能檢測非常方便。時序仿真是在選擇了具體器件并完成布局、布線之后進(jìn)行的時序關(guān)系仿真,因此又稱為后仿真或延時仿真。在設(shè)計處理以后,對系統(tǒng)和各模塊進(jìn)行時序仿真,分析其時序關(guān)系,估計設(shè)計的性能以及檢查和消除競爭冒險等。2023/7/30251.2.4設(shè)計校驗2023/9/5261.2.5器件編程編程是指將設(shè)計處理中產(chǎn)生的編程數(shù)據(jù)文件通過軟件放到具體的可編程邏輯器件中去。對CPLD器件來說是將JED文件下載(DownLoad)到CPLD器件中去,對FPGA來說是將位流數(shù)據(jù)BG文件配置到FPGA中去。器件編程需要滿足一定的條件,如編程電壓、編程時序和編程算法等。普通的CPLD器件和一次性編程的FPGA需要專用的編程器完成器件的編程工作?;赟RAM的FPGA可以由EPROM或其他存儲體進(jìn)行配置。在系統(tǒng)的可編程器件(ISP-PLD)則不需要專門的編程器,只要一根與計算機互連的下載編程電纜就可以了。2023/7/30261.2.5器件編程2023/9/5271.2.6器件測試和設(shè)計驗證器件在編程完畢之后,可以用編譯時產(chǎn)生的文件對器件進(jìn)行檢驗、加密等工作,或采用邊界掃描測試技術(shù)進(jìn)行功能測試,測試成功后才完成其設(shè)計。設(shè)計驗證可以在EDA硬件開發(fā)平臺上進(jìn)行。EDA硬件開發(fā)平臺的核心部件是一片可編程邏輯器件FPGA或CPLD,再附加一些輸入輸出設(shè)備,如按鍵、數(shù)碼顯示器、指示燈、喇叭等,還提供時序電路需要的脈沖源。將設(shè)計電路編程下載到FPGA或CPLD中后,根據(jù)EDA硬件開發(fā)平臺的操作模式要求,進(jìn)行相應(yīng)的輸入操作,然后檢查輸出結(jié)果,驗證設(shè)計電路。

2023/7/30271.2.6器件測試和設(shè)計驗證2023/9/5281.3硬件描述語言

硬件描述語言HDL是EDA技術(shù)中的重要組成部分,常用的硬件描述語言有AHDL、VHDL和VerilogHDL,而VHDL和VerilogHDL是當(dāng)前最流行的并成為IEEE標(biāo)準(zhǔn)的硬件描述語言。

2023/7/30281.3硬件描述語言硬件描2023/9/529VHDL是超高速集成電路硬件描述語言(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)的縮寫。VHDL作為IEEE標(biāo)準(zhǔn)的硬件描述語言和EDA的重要組成部分,經(jīng)過十幾年的發(fā)展、應(yīng)用和完善,以其強大的系統(tǒng)描述能力、規(guī)范的程序設(shè)計結(jié)構(gòu)、靈活的語言表達(dá)風(fēng)格和多層次的仿真測試手段,在電子設(shè)計領(lǐng)域受到了普遍的認(rèn)同和廣泛的接受,成為現(xiàn)代EDA領(lǐng)域的首選硬件設(shè)計語言。專家認(rèn)為,在新世紀(jì)中,VHDL與Verilog語言將承擔(dān)起幾乎全部的數(shù)字系統(tǒng)設(shè)計任務(wù)。1.3.1VHDL

2023/7/3029VHDL是超高速集成電路硬件描2023/9/530VHDL的特點1、VHDL具有強大的功能,覆蓋面廣,描述能力強。VHDL支持門級電路的描述,也支持以寄存器、存貯器、總線及運算單元等構(gòu)成的寄存器傳輸級電路的描述,還支持以行為算法和結(jié)構(gòu)的混合描述為對象的系統(tǒng)級電路的描述。2、VHDL有良好的可讀性。它可以被計算機接受,也容易被讀者理解。用VHDL書寫的源文件,既是程序又是文檔,既是工程技術(shù)人員之間交換信息的文件,又可作為合同簽約者之間的文件。2023/7/3030VHDL的特點2、VHDL有良好的可讀2023/9/5313、VHDL具有良好的可移植性。作為一種已被IEEE承認(rèn)的工業(yè)標(biāo)準(zhǔn),VHDL事實上已成為通用的硬件描述語言,可以在各種不同的設(shè)計環(huán)境和系統(tǒng)平臺中使用。4、使用VHDL可以延長設(shè)計的生命周期。用VHDL描述的硬件電路與工藝無關(guān),不會因工藝而是描述過時。與工藝有關(guān)的參數(shù)可以通過VHDL提供的屬性加以描述,工藝改變時,只需要修改相應(yīng)程序中屬性參數(shù)即可。

2023/7/30313、VHDL具有良好的可移植性。作為一2023/9/5325、VHDL支持對大規(guī)模設(shè)計的分解和已有設(shè)計的再利用。VHDL可以描述復(fù)雜的電路系統(tǒng),支持對大規(guī)模設(shè)計的分解,由多人、多項目組來共同承擔(dān)和完成。標(biāo)準(zhǔn)化的規(guī)則和風(fēng)格,為設(shè)計的再利用提供了有力的支持。6、VHDL有利于保護知識產(chǎn)權(quán)。用VHDL設(shè)計的專用集成電路(ASIC),在設(shè)計文件下載到集成電路時可以采用一定保密措施,使其不易被破譯和竊取。

2023/7/30325、VHDL支持對大規(guī)模設(shè)計的分解和已2023/9/533用VHDL實現(xiàn)數(shù)字電路設(shè)計的過程編輯源程序編譯設(shè)計文件功能仿真邏輯綜合時序仿真編程下載設(shè)件調(diào)試目標(biāo)芯片2023/7/3033用VHDL實現(xiàn)數(shù)字電路設(shè)計的過程編輯源2023/9/5341.3.2VerilogHDLVerilogHDL也是目前應(yīng)用最為廣泛的硬件描述語言,并被IEEE采納為IEEE#1064-1995標(biāo)準(zhǔn)。VerilogHDL可以用來進(jìn)行各種層次的邏輯設(shè)計,也可以進(jìn)行數(shù)字系統(tǒng)的邏輯綜合、仿真驗證和時序分析。VerilogHDL適合算法級(Algorithm)、寄存器傳輸級(RTL)邏輯級(Logic)、門級(Gate)和版圖級(Layout)等各個層次的電路設(shè)計和描述。

2023/7/30341.3.2VerilogHDL2023/9/535

采用VerilogHDL進(jìn)行電路設(shè)計的最大優(yōu)點是其與工藝無關(guān)性,這使得設(shè)計者在進(jìn)行電路設(shè)計時可以不必過多考慮工藝實現(xiàn)的具體細(xì)節(jié),只需要根據(jù)系統(tǒng)設(shè)計的要求施加不同的約束條件,即可設(shè)計出實際電路。實際上,利用計算機的強大功能,在EDA工具的支持下,把邏輯驗證與具體工藝庫相匹配,將布線及延遲計算分成不同的階段來實現(xiàn),從而減少了設(shè)計者的繁重勞動。

2023/7/3035采用VerilogHDL進(jìn)行2023/9/536VerilogHDL和VHDL都是用于電路設(shè)計的硬件描述語言,并且都已成為IEEE標(biāo)準(zhǔn)。VerilogHDL也具有與VHDL類似的特點,稍有不同的是VerilogHDL早在1983年就已經(jīng)推出,至今已有20年的應(yīng)用歷史,因而VerilogHDL擁有廣泛的設(shè)計群體,其設(shè)計資源比VHDL豐富。另外VerilogHDL是在C語言的基礎(chǔ)上演化而來的,因此只要具有C語言的編程基礎(chǔ),就很容易學(xué)會并掌握這種語言。

2023/7/3036VerilogHDL2023/9/5371.3.3AHDLAHDL(AlteraHardwareDescriptionLanguage)是Altera公司根據(jù)自己公司生產(chǎn)的MAX系列器件和FLEX系列器件的特點專門設(shè)計的一套完整的硬件描述語言。

AHDL是一種模塊化的硬件描述語言,它完全集成于Altera公司的MAX+plusII的軟件開發(fā)系統(tǒng)中。AHDL特別適合于描述復(fù)雜的組合電路、組(group)運算以及狀態(tài)機、真值表和參數(shù)化的邏輯。用戶可以通過MAX+plusII的軟件開發(fā)系統(tǒng)對AHDL源程序進(jìn)行編輯,并通過對源文件的編譯建立仿真、時域分析和器件編程的輸出文件。

2023/7/30371.3.3AHDL2023/9/538AHDL的語句和元素種類齊全、功能強大,而且易于應(yīng)用。用戶可以使用AHDL建立完整層次的工程設(shè)計項目,或者在一個層次的設(shè)計中混合其他類型的設(shè)計文件,例如VHDL設(shè)計文件或VerilogHDL設(shè)計文件。

2023/7/3038AHDL的語句和元素種類齊全、功能強大2023/9/539

可編程邏輯器件PLD(ProgrammableLogicDevice)是一種半定制集成電路,在其內(nèi)部集成了大量的門和觸發(fā)器等基本邏輯電路,用戶通過編程來改變PLD內(nèi)部電路的邏輯關(guān)系或連線,就可以得到需要的設(shè)計電路??删幊踢壿嬈骷某霈F(xiàn),改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計方法,其設(shè)計方法為采用EDA技術(shù)開創(chuàng)了廣闊的發(fā)展空間,并極大地提高電路設(shè)計的效率。

1.4可編程邏輯器件2023/7/3039可編程邏輯器件PLD(Prog2023/9/540

在可編程邏輯器件PLD沒有出現(xiàn)之前,數(shù)字系統(tǒng)的傳統(tǒng)設(shè)計往往采用“積木”式的方法進(jìn)行,實質(zhì)上是對電路板進(jìn)行設(shè)計,通過標(biāo)準(zhǔn)集成電路器件搭建成電路板來實現(xiàn)系統(tǒng)功能,即先由器件搭成電路板,再由電路板搭成系統(tǒng)。數(shù)字系統(tǒng)的“積木塊”就是具有固定功能的標(biāo)準(zhǔn)集成電路器件,如TTL的74/54系列、CMOS的4000/4500系列芯片和一些固定功能的大規(guī)模集成電路等,用戶只能根據(jù)需要選擇合適的集成電路器件,并按照此種器件推薦的電路搭成系統(tǒng)并調(diào)試成功。設(shè)計中,設(shè)計者沒有靈活性可言,搭成的系統(tǒng)需要的芯片種類多且數(shù)目大。

2023/7/3040在可編程邏輯器件PLD沒有出現(xiàn)2023/9/541PLD的出現(xiàn),給數(shù)字系統(tǒng)的傳統(tǒng)設(shè)計法帶來新的變革。采用PLD進(jìn)行的數(shù)字系統(tǒng)設(shè)計,是基于芯片的設(shè)計或稱之為“自底向上”(Bottom-Up)的設(shè)計,它跟傳統(tǒng)的積木式設(shè)計有本質(zhì)的不同。它可以直接通過設(shè)計PLD芯片來實現(xiàn)數(shù)字系統(tǒng)功能,將原來由電路板設(shè)計完成的大部分工作放在PLD芯片的設(shè)計中進(jìn)行。這種新的設(shè)計方法能夠由設(shè)計者根據(jù)實際情況和要求定義器件的內(nèi)部邏輯關(guān)系和管腳,這樣可通過芯片設(shè)計實現(xiàn)多種數(shù)字系統(tǒng)功能,同時由于管腳定義的靈活性,不但大大減輕了系統(tǒng)設(shè)計的工作量和難度,提高了工作效率,而且還可以減少芯片數(shù)量,縮小系統(tǒng)體積,降低能源消耗,提高系統(tǒng)的穩(wěn)定性和可靠性。

2023/7/3041PLD的出現(xiàn),給數(shù)字系2023/9/542

目前,可編程邏輯器件有許多品種。集成度是集成電路一項很重要的指標(biāo),可編程邏輯器件從集成密度上可分為低密度可編程邏輯器件LDPLD和高密度可編程邏輯器件HDPLD兩類。

PROM、PLA、PAL和GAL是早期發(fā)展起來的PLD,其集成密度一般小于700門(等效門)/片。它們同屬于

LDPLD。

2023/7/3042目前,可編程邏輯器件有許多品2023/9/543HDPLD包括可擦除可編程邏輯器件EPLD(ErasableProgrammableLogicDevice)、復(fù)雜可編程邏輯器件CPLD(ComplexPLD)和FPGA三種,其集成密度大于700門/片。隨著集成工藝的發(fā)展,HDPLD集成密度不斷增加,性能不斷提高。如Altera公司的EPM9560,其密度為12000門/片,Lattice公司的pLSI/ispLSI3320為14000門/片等。目前集成度最高的HDPLD可達(dá)25萬門/片以上。

2023/7/3043HDPLD包括可擦除可2023/9/544

目前常用的可編程邏輯器件都是從與或陣列和門陣列發(fā)展起來的,所以可以從結(jié)構(gòu)上將其分為陣列型PLD和現(xiàn)場可編程門陣列型FPGA兩大類。陣列型PLD的基本結(jié)構(gòu)由與陣列和或陣列組成。簡單PLD(如PROM、PLA、PAL和GAL等)、EPLD和CPLD都屬于陣列型PLD。

FPGA具有門陣列的結(jié)構(gòu)形式,它有許多可編程單元(或稱邏輯功能塊)排成陣列組成,這些邏輯單元的結(jié)構(gòu)和與或陣列的結(jié)構(gòu)不同,也稱之為單元型PLD。

2023/7/3044目前常用的可編程邏輯器件都是2023/9/5451.5常用EDA工具

用EDA技術(shù)設(shè)計電路可以分為不同的技術(shù)環(huán)節(jié),每一個環(huán)節(jié)中必須有對應(yīng)的軟件包或?qū)S玫腅DA工具獨立處理。EDA工具大致可以分為設(shè)計輸入編輯器、仿真器、HDL綜合器、適配器(或布局布線器)以及下載器等5個模塊。2023/7/30451.5常用EDA工具用E2023/9/5461.5.1設(shè)計輸入編輯器通常專業(yè)的EDA工具供應(yīng)商或各可編程邏輯器件廠商都提供EDA開發(fā)工具,在這些EDA開發(fā)工具中都含有設(shè)計輸入編輯器,如Xilinx公司的Foundation、Altera公司的MAX+plusII等。一般的設(shè)計輸入編輯器都支持圖形輸入和HDL文本輸入。圖形輸入通常包括原理圖輸入、狀態(tài)圖輸入和波形圖輸入三種常用方法。原理圖輸入方式沿用傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計方式,即根據(jù)設(shè)計電路的功能和控制條件,畫出設(shè)計的原理圖或狀態(tài)圖或波形圖,然后在設(shè)計輸入編輯器的支持下,將這些圖形輸入到計算機中,形成圖形文件。

2023/7/30461.5.1設(shè)計輸入編輯器2023/9/5471.5.2仿真器

在EDA技術(shù)中仿真的地位非常重要,行為模型的表達(dá)、電子系統(tǒng)的建模、邏輯電路的驗證以及門級系統(tǒng)的測試,每一步都離不開仿真器的模擬檢測。在EDA發(fā)展的初期,快速地進(jìn)行電路邏輯仿真是當(dāng)時的核心問題,即使在現(xiàn)在,各個環(huán)節(jié)的仿真仍然是整個EDA設(shè)計流程中最重要、最耗時的一個步驟。因此,仿真器的仿真速度、仿真的準(zhǔn)確性和易用性成為衡量仿真器的重要指標(biāo)。2023/7/30471.5.2仿真器2023/9/548

幾乎每個EDA廠商都提供基于Verilog/VHDL的仿真器。常用的仿真器有ModelTechnology公司的Modelsim,Cadence公司的Verilog-XL和NC-Sim,Aldec公司的ActiveHDL,Synopsys公司的VCS等。

1.5.3HDL綜合器

硬件描述語言誕生的初衷是用于設(shè)計邏輯電路的建模和仿真,但直到Synoposys公司推出了HDL綜合器后,才可以HDL直接用于電路設(shè)計。2023/7/3048幾乎每個EDA廠商都提供基于Ve2023/9/549 HDL綜合器是一種用EDA技術(shù)實施電路設(shè)計中完成電路化簡、算法優(yōu)化、硬件結(jié)構(gòu)細(xì)化的計算機軟件,是將硬件描述語言轉(zhuǎn)化為硬件電路的重要工具。HDL綜合器在把可綜合的HDL(Verilog或VHDL)轉(zhuǎn)化為硬件電路時,一般要經(jīng)過兩個步驟。第1步是HDL綜合器對Verilog或VHDL進(jìn)行處理分析,并將其轉(zhuǎn)換成電路結(jié)構(gòu)或模塊,這時是不考慮實際器件實現(xiàn)的,即完全與硬件無關(guān),這個過程是一個通用電路原理圖形成的過程。第2步是對應(yīng)實際實現(xiàn)目標(biāo)器件的結(jié)構(gòu)進(jìn)行優(yōu)化,并使之滿足各種約束條件,優(yōu)化關(guān)鍵路徑等。

2023/7/3049 HDL綜合器是一種用EDA技術(shù)實施電2023/9/550HDL綜合器的輸出文件一般是網(wǎng)表文件,是一種用于電路設(shè)計數(shù)據(jù)交換和交流的工業(yè)標(biāo)準(zhǔn)化格式的文件,或是直接用硬件描述語言HDL表達(dá)的標(biāo)準(zhǔn)格式的網(wǎng)表文件,或是對應(yīng)FPGA/CPLD器件廠商的網(wǎng)表文件。

HDL綜合器是EDA設(shè)計流程中的一個獨立的設(shè)計步驟,它往往被其他EDA環(huán)節(jié)調(diào)用,完成整個設(shè)計流程。

電路網(wǎng)表(邏輯圖)

由元件名N、模型M、輸入端信號PI、輸出端信號PO四部分組成,是唯一確定電路連接關(guān)系的數(shù)據(jù)結(jié)構(gòu)。即:E=(N,M,PI,PO)2023/7/3050HDL綜合器的輸出文件一般是網(wǎng)2023/9/551例:一位全加器的電路網(wǎng)表E1,XOR,(X,Y),S1E2,XOR,(Cin,S1),SumE3,AND,(X,Y),S2E4,AND,(S1,Cin),S3E5,OR,(S2,S3),Cout&&≥1=1=1E2E1E4E3E5SUMCOUTS1S3S2CINXY2023/7/3051例:一位全加器的電路網(wǎng)表&&≥1=1=2023/9/552第2章EDA工具軟件的使用方法?本章概要:本章以Altera公司的QuartusⅡ為主,介紹EDA工具軟件的使用方法,作為EDA設(shè)計的基礎(chǔ)。通過本章的學(xué)習(xí),讀者可初步采用QuartusII軟件的原理圖輸入法,設(shè)計數(shù)字電路和系統(tǒng),掌握用試驗開發(fā)系統(tǒng)或開發(fā)板對設(shè)計電路進(jìn)行硬件驗證的方法。?知識要點: (1)EDA技術(shù)的原理圖輸入設(shè)計法。(2)用原理圖輸入法實現(xiàn)多層次系統(tǒng)電路的設(shè)計。(3)QuartusⅡ的宏功能模塊的使用方法。

2023/7/3052第2章EDA工具軟件的使用方法?本2023/9/5532.1QuartusII軟件的安裝

QuartusII軟件的安裝比較簡單,只要把QuartusII軟件光盤放入計算機的光驅(qū)中,安裝光盤將自動引導(dǎo)完成QuartusII的安裝。軟件安裝結(jié)束之后,還必須在軟件中指定Altera公司的授權(quán)文件(License.dat),才能正常使用QuartusII軟件。

2023/7/30532.1QuartusII軟件的安2.2QuartusII軟件的主界面QuartusII軟件為適應(yīng)廣大MAX+PLUSⅡ軟件應(yīng)用工程人員的需要,提供了QuartusII和與MAX+PLUSⅡ兼容的兩種主界面。Quartus主界面窗口MAX+PLUSⅡ主界面窗口2.2QuartusII軟件的主界面Q2023/9/5552.3QuartusII的圖形編輯輸入法

圖形編輯輸入法也稱為原理圖輸入設(shè)計法。用QuartusII的原理圖輸入設(shè)計法進(jìn)行數(shù)字系統(tǒng)設(shè)計時,不需要任何硬件描述語言知識,在具有數(shù)字邏輯電路基本知識的基礎(chǔ)上,就能可使用QuartusII提供EDA平臺,設(shè)計數(shù)字電路或系統(tǒng)。

為了方便電路設(shè)計,設(shè)計者首先應(yīng)當(dāng)在計算機中建立自己的工程目錄(如d:\myeda)。將自己的全部EDA設(shè)計文件放在文件夾中。注意:工程文件夾的名稱不要使用漢字,最好也不要使用數(shù)字。

2023/7/30552.3QuartusII的圖形編在QuartusII平臺上,使用圖形編輯輸入法設(shè)計電路的操作流程包括編輯(設(shè)計輸入)、編譯、仿真和編程下載等基本過程。用QuartusII圖形編輯方式生成的圖形文件默認(rèn)的擴展名為.bdf。下面以8位加法器adder8的設(shè)計為例,介紹QuartusII軟件使用的基本方法。設(shè)計結(jié)果用杭州康芯電子有限公司的GW48系列EDA實驗系統(tǒng)(以下簡稱GW48)、南京偉福實業(yè)有限公司的EDA6000試驗開發(fā)系統(tǒng)(以下簡稱為EDA6000)和友晶公司的ALTERADE2開發(fā)板(以下簡稱為DE2開發(fā)板)進(jìn)行硬件驗證。在QuartusII平臺上,使用圖形編輯輸2023/9/557QuartusII原理圖輸入的基本操作編輯原理圖編譯設(shè)計文件仿真引腳鎖定硬件調(diào)試編程下載2023/7/3057QuartusII原理圖輸入的基本操2023/9/558

使用QuartusII設(shè)計電路系統(tǒng)之前,需要先建立設(shè)計項目(Project)。例如,用圖形編輯法設(shè)計8位加法器adder8時,需要先建立adder8的設(shè)計項目。在QuartusII集成環(huán)境下,執(zhí)行“File”菜單的“NewProjectWizard”命令,彈出如圖所示的新建設(shè)計項目對話框的“NewProjectWizard:Directory,Name,TOP-LevelEntuty[page1of5]”頁面(新建設(shè)計項目對話框共5個頁面)。2.3.1編輯輸入圖形設(shè)計文件2023/7/3058 使用QuartusII設(shè)計電路系統(tǒng)此頁面用于登記設(shè)計文件的地址(文件夾)、設(shè)計項目的名稱和頂層文件實體名。在對話框的第一欄中填入項目所在的文件夾名;第二欄是設(shè)計項目名,需要填入新的設(shè)計項目名,第三欄是頂層文件實體名,需要填入頂層文件實體的名稱。設(shè)計項目名和頂層文件實體名可以同名,一般在多層次系統(tǒng)設(shè)計中,以與設(shè)計項目同名的設(shè)計實體作為頂層文件名。此頁面用于登記設(shè)計文件的地址(文件夾)、設(shè)計新建項目對話框的第2頁面用于增加設(shè)計文件,包括頂層設(shè)計文件和其他底層設(shè)計文件。如果頂層設(shè)計文件和其他底層設(shè)計文件已經(jīng)包含在工程文件夾中,則在此頁面中將這些設(shè)計文件增加到新建項目中。新建項目對話框第3頁面用于設(shè)置編程下載的目標(biāo)芯片的類型與型號。在編譯設(shè)計文件前,應(yīng)先選擇下載的目標(biāo)芯片,否則系統(tǒng)將以默認(rèn)的目標(biāo)芯片為基礎(chǔ)完成設(shè)計文件的編譯。目標(biāo)芯片選擇應(yīng)根據(jù)支持硬件開發(fā)和驗證的開發(fā)板或試驗開發(fā)系統(tǒng)上提供的可編程邏輯器件來決定。不同的適配板上的可編程邏輯不同。新建設(shè)計項目對話框的第4頁面用于設(shè)置第三方EDA工具軟件的使用,一般情況下可以設(shè)置為“不使用”(在第三方工具軟件選擇框不出現(xiàn)“√”)。

新建設(shè)計項目對話框的第5頁面用于顯示新建設(shè)計項目的摘要,用鼠標(biāo)點擊此頁面下方的“Finish”按鈕,完成新設(shè)計項目的建立。

新建項目對話框的第2頁面用于增加設(shè)計文件,包2023/9/561新的項目建立后,在QuartusII集成環(huán)境下,執(zhí)行“File”菜單的“New”命令,在彈出編輯文件類型對話框中,選擇“BlockDiagram/SchematicFile”(模塊/原理圖文件)方式,進(jìn)入QuartusII圖形編輯方式的窗口界面。

圖2.22編輯文件類型對話框2023/7/3061新的項目建立后,在Qu2023/9/562

在原理圖編輯窗中的任何一個位置上用雙擊鼠標(biāo),彈出一個元件選擇窗。

圖2.23元件選擇框基本邏輯元件庫參數(shù)可設(shè)置的強函數(shù)元件庫基本邏輯元件庫中的元件由此輸入所需要的元件名MAX+plus庫2023/7/3062 在原理圖編輯窗中的任何一個位置上用雙2023/9/563在8位加法器adder8的設(shè)計中,將電路設(shè)計需要的2個4位加法器74283以及輸入、輸出元件符號調(diào)人圖形編輯框中,根據(jù)8位加法器設(shè)計的原理圖,用鼠標(biāo)完成電路內(nèi)部的連接以及與輸入、輸出元件的連接,并將相應(yīng)的輸入元件符號名分別更改為“A[7..0]”和“B[7..0]”,把輸出元件的名稱分更改為“SUM[7..0]”和“COUT”,如圖所示。其中A[7..0]和B[7..0]是兩個8位加數(shù)輸入端,SUM[7..0]是8位和數(shù)輸出端,COUT是向高位進(jìn)位輸出端。電路設(shè)計完成后,用“adder8.bdf”為文件名保存在工程目錄中。圖2.248位加法器的原理圖2023/7/3063在8位加法器adder2023/9/5642.3.2編譯設(shè)計圖形文件

執(zhí)行QuartusII主窗口“Processing”菜單的“StartCompilation”命令,或者在主窗口上直接用鼠標(biāo)左鍵點擊“開始編譯”命令按鈕,開始對adder8.bdf文件進(jìn)行編譯。編譯工具的編譯過程界面如圖2.25所示,編譯過程包括分析與綜合、適配、編程和時序分析等4個環(huán)節(jié)。

圖2.25QuartusII編譯工具界面2023/7/30642.3.2編譯設(shè)計圖形文件2023/9/5652.3.3真設(shè)計文件

1.建立波形文件執(zhí)行QuartusII主窗口“File”菜單的“New”命令,在彈出編輯文件類型對話框,選擇對話框“OtherFiles”中的“VectorWaveformFile”方式,進(jìn)入QuartusII波形編輯方式,彈出新建波形文件編輯窗口界面。

新建波形文件編輯窗口界面2023/7/30652.3.3真設(shè)計文件新建波形文件2023/9/5662.輸入信號節(jié)點在波形編輯方式下,執(zhí)行“Edit”菜單下的“InsertNodeorBus…”命令,或在波形文件編輯窗口的“Name”欄中點擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“InsertNodeorBus…”命令,彈出插入節(jié)點或總線(InsertNodeorBus…)對話框,。在“InsertNodeorBus…”對話窗口中首先點擊“NodeFinder…”鍵,彈出節(jié)點發(fā)現(xiàn)者(NodeFinder)對話框。

插入信號節(jié)點對話框節(jié)點發(fā)現(xiàn)者對話框2023/7/30662.輸入信號節(jié)點插入信號節(jié)點對話框在“NodeFinder”對話框的“Filter”欄目中,用選擇“Pins:all”項,再點擊“Start”按鈕,這時在窗口左邊的“NodesFound:”(節(jié)點建立)框中將列出該設(shè)計項目的全部信號節(jié)點。若在仿真中需要觀察全部信號的波形,則點擊窗口中間的“>>”按鈕;若在仿真中只需要觀察部分信號的波形,則首先用鼠標(biāo)左鍵將信號名點黑選中,然后點擊窗口中間的“>”按鈕,選中的信號即進(jìn)入到窗口右邊的“SelectedNodes:”(被選擇的節(jié)點)框中。如果需要刪除“SelectedNodes:”框中的節(jié)點信號,也可以用鼠標(biāo)將其選中,然后點擊窗口中間的“<”按鈕。節(jié)點信號選擇完畢后,點擊“OK”按鈕。在“NodeFinder”對話框的“Fil3.設(shè)置波形參量

QuartusII默認(rèn)的仿真時間域是1

s,如果需要更長時間觀察仿真結(jié)果,可執(zhí)行“Edit”命令菜單中的“EndTime…”選項,在彈出的如圖2.30所示的“EndTime”(設(shè)置仿真時間域)對話框中,輸入適當(dāng)?shù)姆抡鏁r間域(如10

s),后點擊“OK”按鈕完成設(shè)置。設(shè)置仿真時間域?qū)υ捒?.設(shè)置波形參量設(shè)置仿真時間域?qū)υ捒?.編輯輸入信號為輸入信號編輯測試電平或數(shù)據(jù)的示意圖如圖所示。仿真編輯窗口的左側(cè)各種功能選擇按鈕的主要功能及使用方法如下:

為輸入信號編輯測試電平或數(shù)據(jù)示意圖放大/縮小工具未初始化(U)強未知(X)0電平(強0)1電平(強1)高阻(Z)弱0(L)弱1(H)計數(shù)值任意值隨機值時鐘弱未知(W)無關(guān)(DC)反相選擇工具文本工具編輯工具全屏顯示發(fā)現(xiàn)替換4.編輯輸入信號為輸入信號編輯測試電平或數(shù)據(jù)示意圖放大/5.波形文件存盤執(zhí)行“File”選項的“Save”命令,完成波形文件的存盤。6.運行仿真器執(zhí)行“Processing”中的“StartSimulation”命令,對設(shè)計電路進(jìn)行仿真。8位加法器的仿真波形5.波形文件存盤8位加法器的仿真波形2.3.4編程下載設(shè)計文件編程下載是指將設(shè)計處理中產(chǎn)生的編程數(shù)據(jù)文件通過EDA軟件放到具體的可編程邏輯器件中去的過程。對CPLD器件來說是將JED文件下載(DownLoad)到CPLD器件中去,對FPGA來說是將位流數(shù)據(jù)BG文件配置到FPGA中去。編程下載需要可編程邏輯器件的開發(fā)板或試驗開發(fā)系統(tǒng)支持。1.基于GW48的編程下載過程GW48的結(jié)構(gòu)與功能見本書的附錄A,基于GW48的8位加法器設(shè)計的編程下載過程,包括選擇實驗?zāi)J?、引腳鎖定和編程下載三個部分。2.3.4編程下載設(shè)計文件1.基于GW48的編程下載過程(1)選擇實驗?zāi)J接肊DA方式設(shè)計的電路的最終目的,是得到滿足設(shè)計功能的硬件電路,在將設(shè)計電路編程下載到目標(biāo)芯片之前,需要進(jìn)行引腳鎖定。引腳鎖定就是根據(jù)目標(biāo)芯片的引腳分布規(guī)則,確定設(shè)計電路的輸入和輸出端口與目標(biāo)芯片的連接關(guān)系,即把哪一條設(shè)計電路的輸入/輸出端口,連接到目標(biāo)芯片的哪一只引腳(Pin)上。在進(jìn)行目標(biāo)芯片的引腳鎖定之前,首先需要確定目標(biāo)芯片的引腳與GW48的外部設(shè)備(如按鈕、發(fā)光二極管、七段數(shù)碼器等)的連接關(guān)系,把目標(biāo)芯片的引腳與實驗開發(fā)系統(tǒng)的外部設(shè)備連接的方式稱為實驗?zāi)J?。GW48上的目標(biāo)芯片與外部設(shè)備連接的方式有十幾種,因此其實驗?zāi)J揭灿惺畮追N。對于每一個具體的設(shè)計,需要選擇一個合適模式,才能對其進(jìn)行完整的實驗驗證。8位加法器設(shè)計的實驗驗證可以選擇實驗電路結(jié)構(gòu)圖NO.1提供的實驗?zāi)J剑磳嶒災(zāi)J絅O.1。(1)選擇實驗?zāi)J皆谶M(jìn)行目標(biāo)芯片的引腳鎖定之(2)引腳鎖定引腳鎖定前應(yīng)首先選擇目標(biāo)芯片,本實驗選擇的目標(biāo)芯片為EPF10K10LC84-4。參考附錄A“GW48使用說明”中的實驗電路結(jié)構(gòu)圖NO.1和表A.5,確定引腳鎖定。端口名稱 I/O管腳 芯片引腳 端口名稱 I/O管腳 芯片引腳 B[0] PIO0 5 A[4] PIO12 22 B[1] PIO1 6 A[5] PIO13 23 B[2] PIO2 7 A[6] PIO14 24 B[3] PIO3 8 A[7] PIO15 25 B[4] PIO4 9 SUM[0] PIO24 39 B[5] PIO5 10 SUM[1] PIO25 47 B[6] PIO6 11 SUM[2] PIO26 48 B[7] PIO7 16 SUM[3] PIO27 49 A[0] PIO8 17 SUM[4] PIO28 50 A[1] PIO9 18 SUM[5] PIO29 51 A[2] PIO10 19 SUM[6] PIO30 52 A[3] PIO11 21 SUM[7] PIO31 53 COUT PIO39 65 8位加法器與目標(biāo)芯片引腳的連接關(guān)系表(2)引腳鎖定端口名稱 I/O管腳 芯片引腳 端口名稱 I/(3)下載設(shè)計文件在QuartusII軟件界面上選擇“Tools”的編程器“Programmer”命令或者用鼠標(biāo)左鍵直接點擊“Programmer”命令按鈕,彈出設(shè)置編程方式窗口。設(shè)置編程方式窗口(3)下載設(shè)計文件設(shè)置編程方式窗口下載設(shè)計文件之前需要設(shè)定編程方式。在設(shè)置編程方式窗口中,用鼠標(biāo)左鍵點擊“Hardware…”(硬件設(shè)置)按鈕,在彈出“HardwareSetup”硬件設(shè)置對話框中點擊“AddHardware”按鈕,在彈出的添加硬件對話框中選擇“ByteBlasterMV[LP1]”編程方式。ByteBlasterMV[LP1]編程方式對應(yīng)計算機的并行口編程下載通道,“MV”是混合電壓的意思,主要指對ALTERA的各類芯片電壓的FPGA/CPLD都能由此編程下載。硬件設(shè)置完成后,在返回到的設(shè)置編程方式窗口中,在“Mode:”欄目選擇PassiveSerial模式,該模式適用于Altera公司的可編程邏輯器件。完成上述操作后,執(zhí)行“Processing”的“Stare”命令,或者用鼠標(biāo)左鍵點擊設(shè)置編程方式窗口左邊開始編程按鈕“Start”,實現(xiàn)設(shè)計電路到目標(biāo)芯片的編程下載。

下載設(shè)計文件之前需要設(shè)定編程方式。在設(shè)置編程(4)硬件驗證設(shè)計電路用并行電纜將GW48與計算機的并行接口連接在一起,打開GW48的電源,按動模式選擇開關(guān)選擇工作模式“1”。按動GW48實驗板上的十六進(jìn)制數(shù)輸入按鈕“鍵4”、“鍵3”、“鍵2”和“鍵1”,得到A[7..0]和B[7..0]不同的輸入組合;觀察輸出發(fā)光二極管“D8”的亮滅及“數(shù)碼8”和“數(shù)碼7”上的數(shù)字組合,硬件驗證8位加法器的功能。(4)硬件驗證設(shè)計電路2.4MAX+PLUSⅡ設(shè)計項目的轉(zhuǎn)換QuartusII軟件可以將MAX+PLUSⅡ設(shè)計的項目轉(zhuǎn)換到QuartusII環(huán)境下執(zhí)行,執(zhí)行QuartusII主窗口“File”菜單的“ConvertMAX+PLUSⅡProject…”命令,完成MAX+PLUSⅡ設(shè)計文件到的QuartusII設(shè)計項目的轉(zhuǎn)換,并建立QuartusII設(shè)計項目名稱(如cont10)。“ConvertMAX+PLUSⅡProject”對話框2.4MAX+PLUSⅡ設(shè)計項目的轉(zhuǎn)換2.5QuartusII宏功能模塊的使用方法使用QuartusII的MegeWizardPlug-InManager中的宏功能模塊可以幫助用戶完成一些復(fù)雜系統(tǒng)的設(shè)計,并可以方便地對現(xiàn)有的設(shè)計文件進(jìn)行修改。這些宏功能模塊包括LPM(LibraryParameterizedMegafunction)、MegaCore(例如FFT、FIR等)和AMMP(AlteraMegafunctionPartnersProgram,例如PCI、DDS等)。下面以波形發(fā)生器的設(shè)計為例,介紹QuartusII宏功能模塊的使用方法。2.5QuartusII宏功能模塊的使用方法2.5.1設(shè)計原理在波形發(fā)生器的原理圖中,lpm_counter0是LPM計數(shù)器,lpm_rom0是LPM只讀存儲器(ROM)。ROM中保存的是某種波形信號(如鋸齒波或正弦波)的數(shù)據(jù),其地址由計數(shù)器lpm_counter0提供。lpm_counter0是一個8位加法計數(shù)器,在時鐘的控制下計數(shù)器的輸出q[7..0]由00000000到11111111循環(huán)變化,使ROM輸出周期性的波形信號的數(shù)據(jù)。波形發(fā)生器的原理圖2.5.1設(shè)計原理波形發(fā)生器的原理圖2.5.2編輯輸入頂層設(shè)計文件首先為波形發(fā)生器建立新的設(shè)計項目“mydds”,并選擇Cyclone系列的EP1C6Q240C8作為設(shè)計項目的下載目標(biāo)芯片。然后執(zhí)行“File”菜單的“New”命令,打開一個新的“BlockDiagram/SchematicFile”編輯窗口。1.加入計數(shù)器元件用鼠標(biāo)雙擊原理圖編輯窗,在彈出的元件選擇窗的“Libraries”欄目中選擇“arithmetic”的“l(fā)pm_counter”(計數(shù)器)LPM元件。LPM是參數(shù)化的多功能庫元件,每一種LPM元件都具有許多端口和參數(shù),通過對端口的選擇與參數(shù)的設(shè)置得到設(shè)計需要的元件。pm_counter元件選擇窗2.5.2編輯輸入頂層設(shè)計文件1.加入計數(shù)器元件pm_c計數(shù)器元件選定后用鼠標(biāo)點擊“OK”按鈕,彈出“MegaWizardPlug-InManager[page2c]”對話框頁面。在該對話框頁面中,選擇VHDL(或VerilogHDL)作為輸出文件的類型,并將生成的計數(shù)器名稱及保存的文件夾輸入到“Whatnamedoyouwantfortheoutputfile?”欄目中。MegaWizardPlug-InManager[page2c]對話框頁面計數(shù)器元件選定后用鼠標(biāo)點擊“OK”按鈕,彈出完成上述操作后,點擊“Next”按鈕,進(jìn)入計數(shù)器參數(shù)設(shè)置的下一個對話框頁面“MegaWizardPlug-InManager–LPM_COUNTER[page1of4]”。在此頁面中設(shè)置計數(shù)器的q輸出位數(shù)為8bit,時鐘輸入clock的有效邊沿為“Uponly”(上升沿有效)。時鐘邊沿也可以選擇“Downonly”(下降沿有效)或“Updown”(雙邊沿有效)。LPM_COUNTER[page1of4]”對話框頁面完成上述操作后,點擊“Next”按鈕,進(jìn)入計完成計數(shù)器此頁的參數(shù)設(shè)置后點擊“Next”按鈕,進(jìn)入計數(shù)器參數(shù)設(shè)置的“MegaWizardPlug-InManager–LPM_COUNTER[page2of4]”對話框頁面。在此對話框頁面中,選擇計數(shù)器的類型為“Plainbinary”(二進(jìn)制)。計數(shù)器的類型除了二進(jìn)制外,還可以選擇任意模值,如5、10、60等。另外,計數(shù)器還可以增加一些輸入或輸出端口,如“ClockEnable”(時鐘使能)、“Cary-in”(進(jìn)位輸入)、“CountEnable”(計數(shù)器使能)和“Cary-out”(進(jìn)位輸出)。LPM_COUNTER[page2of4]”對話框頁面完成計數(shù)器此頁的參數(shù)設(shè)置后點擊“Next完成計數(shù)器此頁的參數(shù)設(shè)置后點擊“Next”按鈕,進(jìn)入計數(shù)器參數(shù)設(shè)置的“MegaWizardPlug-InManager–LPM_COUNTER[page3of4]”對話框頁面。此頁面用于為計數(shù)器添加同步或異步輸入控制端,如“Clear”(清除)、“Load”(預(yù)置)等。LPM_COUNTER[page3of4]”對話框頁面完成計數(shù)器此頁的參數(shù)設(shè)置后點擊“Next”按點擊“Next”按鈕,進(jìn)入計數(shù)器參數(shù)設(shè)置的“MegaWizardPlug-InManager–LPM_COUNTER[page4of4]”對話框頁面,這是計數(shù)器參數(shù)設(shè)置的最后一個頁面,主要用于選擇生成計數(shù)器的輸出文件,如VHDL的文本文件“l(fā)pm_rom0.vhd”、圖形符號文件“l(fā)pm_rom0.bsf”等。至此,計數(shù)器參數(shù)設(shè)置完成,用鼠標(biāo)左鍵點擊點擊“Finish”按鈕結(jié)束設(shè)置。LPM_COUNTER[page4of4]”對話框頁面點擊“Next”按鈕,進(jìn)入計數(shù)器參數(shù)設(shè)置的“2.建立存儲器初值設(shè)定文件為了將數(shù)據(jù)裝入ROM中,在加入并設(shè)置ROM之前,應(yīng)首先建立一個存儲器初值設(shè)定文件(或稱為.mif格式文件)。①在QuartusII集成環(huán)境下,執(zhí)行“File”菜單的“New”命令,打開一個新的“Memoryinitializationfile”(存儲器初值設(shè)定文件)編輯窗口,在彈出的存儲器參數(shù)設(shè)置對話框中輸入存儲器的字?jǐn)?shù)(Numberofwords)為256,字長(Wordsize)為8位。存儲器參數(shù)設(shè)置對話框2.建立存儲器初值設(shè)定文件存儲器參數(shù)設(shè)置對話框②存儲器的參數(shù)設(shè)置結(jié)束后點擊“OK”按鈕,彈出存儲器初值設(shè)定文件的界面,將此文件以.mif為類型屬性(如mydds.mif)保存在工程目錄中。在存儲器初值設(shè)定文件的界面中,執(zhí)行AddressRadix項則可對存儲器的地址基數(shù)進(jìn)行選擇,地址有Binary、Decimal、Octal和Hexadecimal等4種基數(shù)數(shù)制選擇。執(zhí)行MemoryRadix項則可對存儲器單元中的數(shù)據(jù)基數(shù)進(jìn)行設(shè)置,存儲器數(shù)據(jù)有Binary、Hexadecimal、Octal、SignedDecimal和UnsignedDecimal等5種基數(shù)選擇。

存儲器初值設(shè)定文件的界面②存儲器的參數(shù)設(shè)置結(jié)束后點擊“OK”按鈕,③將數(shù)據(jù)加入存儲器初值設(shè)定文件中。新建的存儲器初值設(shè)定文件中的數(shù)據(jù)全部為0,在存儲器初值設(shè)定文件的界面可以直接輸入每個存儲器字的數(shù)據(jù),也可以用鼠標(biāo)點擊文件界面,在彈出的格式文件操作快捷菜單提示下,完成數(shù)據(jù)輸入?!癈ustomFillCells”對話框格式文件操作快捷菜單③將數(shù)據(jù)加入存儲器初值設(shè)定文件中。新建的存例如,在彈出的格式文件操作快捷菜單中選擇“CustomFillCells”(塊填充)項,在彈出“CustomFillCells”對話框的“Startingaddress”欄目內(nèi)輸入起始地址(如00),在“Endingaddress”欄目內(nèi)輸入結(jié)束地址(如ff);將“Incrementing/Decrementing”選中后,在“StartingValue”欄目中輸入起始值(如0),在“Incrementby”(或Decrementby)欄目中輸入增加(或減少)值(如2)。完成上述操作后點擊“OK”按鈕,結(jié)束.mif格式文件中的數(shù)據(jù)填充。數(shù)據(jù)填充的結(jié)果為:從00地址開始到ff地址結(jié)束,數(shù)據(jù)由00值開始存儲于00地址單元,并將此值遞增2后填入下一個存儲單元;當(dāng)遞增的值大于8位二進(jìn)制數(shù)的最大值(即255)后,數(shù)據(jù)又從00值開始重新填寫,直至結(jié)束地址為止。用上述方法產(chǎn)生的存儲器初始數(shù)據(jù)實際是一個鋸齒波發(fā)生器的數(shù)據(jù)。例如,在彈出的格式文件操作快捷菜單中選擇“C3.加入只讀存儲器ROM元件用鼠標(biāo)雙擊原理圖編輯窗,在彈出的元件選擇窗的“Libraries”欄目中選擇“storage”的“l(fā)pm_rom”(只讀存儲器ROM)LPM元件。用鼠標(biāo)點擊“OK”按鈕后彈出“MegaWizardPlug-InManager[page2c]”對話框頁面。在該對話框頁面中,選擇VHDL(或VerilogHDL)作為輸出文件的類型,并將生成的只讀存儲器名稱及保存的文件夾)輸入到“Whatnamedoyouwantfortheoutputfile?”欄目中。MegaWizardPlug-InManager[page2c]對話框3.加入只讀存儲器ROM元件MegaWizardPlug完成上述操作后,點擊“Next”按鈕,進(jìn)入ROM參數(shù)設(shè)置的下一個對話框頁面“MegaWizardPlug-InManager–LPM_ROM[page1of4]”。在此頁面中設(shè)置ROM的q輸出位數(shù)為8bit,字?jǐn)?shù)為256,采用單時鐘控制方式。LPM_ROM[page1of4]對話框頁面完成上述操作后,點擊“Next”按鈕,進(jìn)入R完成頁的參數(shù)設(shè)置后點擊“Next”按鈕,進(jìn)入ROM參數(shù)設(shè)置的“MegaWizardPlug-InManager–LPM_ROM[page2of4]”對話框頁面。此對話框頁面用于選擇ROM的clken(時鐘使能)和aclr(清除)輸入控制端(本例設(shè)計不選擇)。LPM_ROM[page2of4]對話框頁面完成頁的參數(shù)設(shè)置后點擊“Next”按鈕,進(jìn)入完成此頁的參數(shù)設(shè)置后點擊“Next”按鈕,進(jìn)入ROM參數(shù)設(shè)置的“MegaWizardPlug-InManager–LPM_ROM[page3of4]”對話框頁面。在此頁面的“Doyouwantto…”欄目中選中“Yes,usethisfileforthememorycontentdata”項,并輸入初始化數(shù)據(jù)文件名(如mydds.mif)。另外,將“AlowIn-SystemMemory…”項選中,表示允許QuartusII能通過JTAG口對下載于FPGA中的ROM進(jìn)行在系統(tǒng)測試和讀寫。LPM_ROM[page3of4]對話框頁面完成此頁的參數(shù)設(shè)置后點擊“Next”按鈕,進(jìn)入完成此頁的參數(shù)設(shè)置后點擊“Next”按鈕,進(jìn)入ROM參數(shù)設(shè)置的“MegaWizardPlug-InManager–LPM_ROM[page4of4]”對話框頁面。這是ROM參數(shù)設(shè)置的最后一個頁面,此頁面主要用于選擇生成ROM的輸出文件。至此,ROM參數(shù)設(shè)置完成,用鼠標(biāo)左鍵點擊“Finish”按鈕結(jié)束設(shè)置。4.編輯和編譯頂層設(shè)計文件在新建的圖形編輯窗口中加入計數(shù)器lpm_couter0和只讀存儲器lpm_rom0元件后,再加入設(shè)計電路的輸入和輸出元件,按照波形發(fā)生器原理圖完成電路中的連線。以“mydds.bdf”作為頂層文件名將設(shè)計文件保存于工程目錄中,并通過QuartusII的編譯。完成此頁的參數(shù)設(shè)置后點擊“Next”按鈕,進(jìn)2.5.3仿真頂層設(shè)計文件為波形發(fā)生器設(shè)計建立仿真文件,然后執(zhí)行“Processing”中的“StartSimulation”命令,或點擊“StartSimulation”按鈕,對波形發(fā)生器設(shè)計電路進(jìn)行仿真,仿真波形輸出的數(shù)據(jù)就是在存儲器初值設(shè)定文件中加入的(鋸齒波發(fā)生器)數(shù)據(jù)。波形發(fā)生器的仿真結(jié)果2.5.3仿真頂層設(shè)計文件波形發(fā)生器的仿真結(jié)果2.5.5圖形文件的轉(zhuǎn)換為了使利用QuartusII宏功能模塊設(shè)計的電路能在其他軟件平臺運行和驗證,可將其轉(zhuǎn)換為HDL文件。執(zhí)行QuartusII主窗口“File”菜單的“Create/Update”項的“CreateHDLDesignFileforCurrentFile”命令,彈出產(chǎn)生HDL文件對話框,選擇產(chǎn)生VHDL或VerilogHDL類型文件。HDL文件類型確定后,用鼠標(biāo)左鍵點擊“OK”按鈕,即可為當(dāng)前的設(shè)計產(chǎn)生VHDL文件或VerilogHDL文件。2.5.5圖形文件的轉(zhuǎn)換2023/9/597第3章

VHDL

?本章概要:本章介紹硬件描述語言VHDL的語言要素、程序結(jié)構(gòu)以及描述風(fēng)格,并介紹最基本、最典型的數(shù)字邏輯電路的VHDL描述,作為VHDL工程設(shè)計的基礎(chǔ)。?知識要點:(1)VHDL設(shè)計實體的基本結(jié)構(gòu)。(2)VHDL的語言要素。(3)用VHDL實現(xiàn)各種類型電路及系統(tǒng)的方法。

(4)VHDL設(shè)計流程。

2023/7/3097第3章VHDL?本章概要:本章介2023/9/5983.1VHDL基本知識 VHDL作為IEEE標(biāo)準(zhǔn)的硬件描述語言和EDA的重要組成部分,經(jīng)過十幾年的發(fā)展、應(yīng)用和完善,以其強大的系統(tǒng)描述能力、規(guī)范的程序設(shè)計結(jié)構(gòu)、靈活的語言表達(dá)風(fēng)格和多層次的仿真測試手段,在電子設(shè)計領(lǐng)域受到了普遍的認(rèn)同和廣泛的接受,成為現(xiàn)代EDA領(lǐng)域的首選硬件設(shè)計語言。專家認(rèn)為,在新世紀(jì)中,VHDL與Verilog語言將承擔(dān)起幾乎全部的數(shù)字系統(tǒng)設(shè)計任務(wù)。2023/7/30983.1VHDL基本知識 VHD2023/9/599結(jié)構(gòu)體(ARCHITECTURE)進(jìn)程或其它并行結(jié)構(gòu)實體(ENTITY)配置(CONFIGURATION)庫、程序包設(shè)計實體3.1.1VHDL程序設(shè)計基本結(jié)構(gòu)2023/7/3099結(jié)構(gòu)體進(jìn)程實體(ENTITY)配置(C2023/9/51003.1.1庫、程序包庫(LIBRARY)——存放預(yù)先設(shè)計好的程序包和數(shù)據(jù)的集合體。程序包(PACKAGE)——將已定義的數(shù)據(jù)類型、元件調(diào)用說明及子程序收集在一起,供VHDL設(shè)計實體共享和調(diào)用,若干個包則形成庫。IEEE庫包括:STD_LOGIC_1164STD_LOGIC_ARITH——是SYNOPSYS公司加入IEEE庫程序包,包括:STD_LOGIC_SIGNED(有符號數(shù))STD_LOGIC_UNSIGNED(無符號數(shù))2023/7/301003.1.1庫、程序包IEEE庫包括2023/9/5101STD_LOGIC_SMALL_INT(小整型數(shù))VHDL’87版本使用IEEESTD1076-1987語法標(biāo)準(zhǔn)VHDL’93版本使用IEEESTD1076-1993語法標(biāo)準(zhǔn)例:LIBRARYIEEEUSEIEEE.STD_LOGIC_1164.ALL描述器件的輸入、輸出端口數(shù)據(jù)類型中將要用到的IEEE的標(biāo)準(zhǔn)庫中的STD_LOGIC_1164程序包。2023/7/30101STD_LOGIC_SMALL_IN2023/9/51023.1.2實體(ENTITY)說明格式: ENTITY實體名IS [類屬參數(shù)說明]

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論