EDA技術(shù)概述整套課件完整版電子教案最全ppt整本書課件全套教學(xué)教程(最新)(PPT 734頁)_第1頁
EDA技術(shù)概述整套課件完整版電子教案最全ppt整本書課件全套教學(xué)教程(最新)(PPT 734頁)_第2頁
EDA技術(shù)概述整套課件完整版電子教案最全ppt整本書課件全套教學(xué)教程(最新)(PPT 734頁)_第3頁
EDA技術(shù)概述整套課件完整版電子教案最全ppt整本書課件全套教學(xué)教程(最新)(PPT 734頁)_第4頁
EDA技術(shù)概述整套課件完整版電子教案最全ppt整本書課件全套教學(xué)教程(最新)(PPT 734頁)_第5頁
已閱讀5頁,還剩729頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 【要求】 理解可編程邏輯器件和EDA技術(shù)的初步知識。 【知識點】理解EDA技術(shù)的概念理解EDA技術(shù)的發(fā)展理解EDA技術(shù)的主要內(nèi)容理解可編程邏輯器件的發(fā)展理解可編程邏輯器件的分類與結(jié)構(gòu)及原理理解面向CPLD/FPGA的設(shè)計流程 【重點和難點】EDA技術(shù)的概念和發(fā)展可編程邏輯器件的分類與結(jié)構(gòu)第1章 EDA技術(shù)概述下一頁第1頁,共734頁。第1章 EDA技術(shù)概述1.1 EDA歷史與發(fā)展1.2 可編程邏輯器件1.3 本章小結(jié)上一頁第2頁,共734頁。一、EDA技術(shù)的概念 電子設(shè)計自動化(Electronic Design Automation, EDA)技術(shù)已經(jīng)成為現(xiàn)代電子設(shè)計技術(shù)的核心,廣泛應(yīng)用于

2、集成電路IC、復(fù)雜電了電路和PCB的設(shè)計。EDA技術(shù)的發(fā)展,使得ASIC設(shè)計得到了快速的發(fā)展。 什么是EDA技術(shù)? EDA技術(shù)是現(xiàn)代電了產(chǎn)品設(shè)計技術(shù)中的一門綜合性新技術(shù),包括廣義和狹義的EDA技術(shù)。 廣義的EDA技術(shù),包括計算機(jī)輔助分析CAA技術(shù)(EWB, MATLAB等),印制電路板計算機(jī)輔助設(shè)計PCB-CAD技術(shù)(Protel, Or CAD等),專用集成電路設(shè)計ASIC技術(shù)等。 1.1 EDA歷史與發(fā)展下一頁第3頁,共734頁。下一頁上一頁 1.1 EDA歷史與發(fā)展 狹義的EDA技術(shù)是指IES/ASIC自動化設(shè)計技術(shù),是以計算機(jī)為基本工作平臺,以硬件描述語言為系統(tǒng)邏輯描述的主要表達(dá)方式,

3、以EDA工具軟件為開發(fā)環(huán)境,以大規(guī)模可編程邏輯器件為設(shè)計載體,以專用集成電路ASIC (Application Special Integrated Circuit)、單片電子系統(tǒng)SOC (System On Chip)芯片為目標(biāo)器件,以電子系統(tǒng)設(shè)計為應(yīng)用方向的電子產(chǎn)品設(shè)計自動化過程。 電子系統(tǒng)設(shè)計的自動化過程主要包括有:邏輯編譯、邏輯化簡、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真、邏輯適配等過程。 本書討論的對象專指狹義的EDA技術(shù)。第4頁,共734頁。下一頁上一頁 1.1 EDA歷史與發(fā)展二、EDA技術(shù)的歷史與發(fā)展 EDA技術(shù)隨著計算機(jī)技術(shù)、微電子技術(shù)、電子系統(tǒng)設(shè)計技術(shù)的發(fā)展,主要經(jīng)歷了3個

4、發(fā)展階段: 計算機(jī)輔助設(shè)計(Computer-Aided Design CAD)階段 計算機(jī)輔助工程設(shè)計(Computer-Aided Engineering Design CAED)階段; 電子系統(tǒng)設(shè)計自動化(Electronic System Design Automation, ESDA)階段。 第5頁,共734頁。下一頁上一頁 1.計算機(jī)輔助設(shè)計CAD階段 20世紀(jì)70年代,MOS工藝得到了廣泛的應(yīng)用,中、小規(guī)模的集成電路有了新的發(fā)展。可編程邏輯技術(shù)和可編程邏輯器件的出現(xiàn),可以應(yīng)用計算機(jī)技術(shù),將平面圖形設(shè)計與分析工具CAD代替乎工制圖、布線等,出現(xiàn)了第一代EDA技術(shù)。由于受計算機(jī)工作平

5、臺的技術(shù)條件制約,當(dāng)時的計算機(jī)輔助設(shè)計技術(shù)還比較差。2.計算機(jī)輔助工程設(shè)計CAED階段 20世紀(jì)80年代,隨著個人工作站計算機(jī)平臺的出現(xiàn)和集成電路設(shè)計CMOS時代的到來、FPGA的出現(xiàn)等,極大地推動EDA工具發(fā)展,使得計算機(jī)工作平臺技術(shù)得到迅速發(fā)展。出現(xiàn)了以計算1.1 EDA歷史與發(fā)展第6頁,共734頁。機(jī)仿真技術(shù)和自動布線技術(shù)為核心的第一代EDA技術(shù)。設(shè)計工程師可以通過軟件工具來完成產(chǎn)品開發(fā)的設(shè)計、分析、生產(chǎn)、測試等各項工作。但是,基于原理圖進(jìn)行設(shè)計開發(fā)的CAE工具,仍然不能滿足高集成度的復(fù)雜電了系統(tǒng)設(shè)計的要求,設(shè)計工程中的系統(tǒng)優(yōu)化設(shè)計也被固定的具體化的電路元件所制約。3.電子系統(tǒng)設(shè)計自動化

6、ESDA階段 20世紀(jì)90年代,設(shè)計工程師在產(chǎn)品設(shè)計過程中,從使用硬件轉(zhuǎn)向設(shè)計硬件,從電路級電子產(chǎn)品開發(fā)轉(zhuǎn)向系統(tǒng)級電子產(chǎn)品開發(fā)。硬件描述語言的標(biāo)準(zhǔn)化及基于計算機(jī)技術(shù)的面向用戶的低成本大規(guī)模ASIC設(shè)計技術(shù)的應(yīng)用,集成電路設(shè)計工藝進(jìn)入到了超深亞微下一頁上一頁1.1 EDA歷史與發(fā)展第7頁,共734頁。米階段,使得SEDA技術(shù)得到了全新的發(fā)展。SEDA工具軟件以系統(tǒng)級設(shè)計為核心,集成了系統(tǒng)行為描述與結(jié)構(gòu)綜合、系統(tǒng)仿真與測試、系統(tǒng)劃分與指標(biāo)分配、系統(tǒng)決策與文件生成等完整的電了系統(tǒng)設(shè)計自動化工具,極大地提高了電子系統(tǒng)設(shè)計的效率。 EDA技術(shù)在進(jìn)入21世紀(jì)后,得到了更大的發(fā)展,主要表現(xiàn)在以下幾個方面:

7、使電子設(shè)計成果以自主知識產(chǎn)權(quán)的方式得以明確表達(dá)和確認(rèn)成為可能。 在仿真和設(shè)計兩方面支持標(biāo)準(zhǔn)硬件描述語言的功能強(qiáng)大的EDA軟件不斷推出。 下一頁上一頁1.1 EDA歷史與發(fā)展第8頁,共734頁。 電子技術(shù)全方位納入EDA領(lǐng)域。 EDA使得電子領(lǐng)域各學(xué)科的界限更加模糊,更加互為包容。 更大規(guī)模的FPGA和CPLD器件的不斷推出。 基于EDA工具的ASIC設(shè)計標(biāo)準(zhǔn)單元已涵蓋大規(guī)模電了系統(tǒng)及 復(fù)雜IP核(IP: Intellectual Property,知識產(chǎn)權(quán)的簡稱,常指公司開發(fā)的硬件設(shè)計包)模塊。 SoC高效低成本設(shè)計技術(shù)的成熟。 系統(tǒng)級、行為驗證級硬件描述語言(如System C)的出現(xiàn),使復(fù)

8、雜電子系統(tǒng)的設(shè)計和驗證簡單化。 新一代的EDA技術(shù)將會向著功能強(qiáng)大、簡單易學(xué)以及使用方便的方向發(fā)展。下一頁上一頁1.1 EDA歷史與發(fā)展第9頁,共734頁。下一頁上一頁1.1 EDA歷史與發(fā)展三、EDA技術(shù)的主要內(nèi)容 EDA技術(shù)的主要內(nèi)容包括:硬件描述語言、可編程邏輯器件和EDA軟件工具。硬件描述語言是EDA技術(shù)的主要描述與表達(dá)方式,可編程邏輯器件是EDA技術(shù)的主要目標(biāo)器件,EDA軟件工具是EDA技術(shù)的開發(fā)平臺。它們是EDA技術(shù)的主要內(nèi)容,是EDA設(shè)計的主要支撐。 1.硬件描述語言 硬件描述語言(Hardware Description Language ) HDL是EDA技術(shù)的重要組成部分,

9、是EDA各種描述方法中最能體現(xiàn)EDA優(yōu)越性的描述方法。第10頁,共734頁。 所謂硬件描述語言,就是一個描述工具,用以描述設(shè)計系統(tǒng)的邏輯功能,實現(xiàn)該功能的算法、電路結(jié)構(gòu)及約束條件等。它要求既能描述系統(tǒng)的行為,又能描述系統(tǒng)的結(jié)構(gòu)。常見的HDL有VHDL, Verilog HDL, System Verilog, System C等。其中,Sy stemVerilog和System C這兩種HDL還處于不斷完善的過程中。而VHDL和VerilogHDL在EDA設(shè)計中使用最多,幾乎所有的主流EDA工具都支持。VHDL是電子設(shè)計主流硬件的描述語言之一,本書主要以VHDL為學(xué)習(xí)的重點。 VHDL是VHS

10、IC(Very High Speed Integrated Circuit) Hardware DescriptionLanguage,即超高速集成電路硬件描述語言的簡稱,是美國國防部于1983年開發(fā)創(chuàng)建的,并由IEEE(下一頁上一頁1.1 EDA歷史與發(fā)展第11頁,共734頁。The Institute of Electrical and Electronic Engineers)進(jìn)一步發(fā)展,在1987年被確定為標(biāo)準(zhǔn)化的硬件描述語言。1993年IEEE對VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展了VHDL內(nèi)容,公布了新版本VHDL,即IEEE 1076-1993版本?,F(xiàn)在,最新

11、的VHDL標(biāo)準(zhǔn)版本是IEEE 1076-2002。 VHDL已經(jīng)成為系統(tǒng)描述的國際公認(rèn)標(biāo)準(zhǔn),得到眾多EDA公司的支持,更多的硬件設(shè)計者使用VHDL描述數(shù)字系統(tǒng)。 VHDL具有與具體硬件電路無關(guān)、與設(shè)計平臺無關(guān)的特性,并具有強(qiáng)大的電路行為描述和系統(tǒng)的能力,支持硬件的設(shè)計、驗證、綜合和測試,在語言易讀性和層次化設(shè)計等方面都具有很強(qiáng)的生命力和應(yīng)用潛力。下一頁上一頁1.1 EDA歷史與發(fā)展第12頁,共734頁。 VHDL能在多個級別上對同一邏輯功能進(jìn)行描述,如可以在寄存器級別上對電路結(jié)構(gòu)進(jìn)行描述,也可以在行為描述級別上對電路功能與性能進(jìn)行描述,各個描述都能利用綜合工具將描述轉(zhuǎn)化為硬件結(jié)構(gòu)。 VHDL的

12、基本結(jié)構(gòu)含有一個實體和一個結(jié)構(gòu)體,而一個完整的VHDL結(jié)構(gòu)還應(yīng)該包括程序包、庫與配置。用VHDL進(jìn)行電路設(shè)計描述時,通常采用的是“自頂向下”的結(jié)構(gòu)化的設(shè)計方法。 VHDL的特點概括起來有以下幾點: VHDL具有強(qiáng)大的功能,覆蓋面廣,描述能力強(qiáng)。VHDL支持門級電路的描述,支持以寄存器、存儲器、總線及運算單元等構(gòu)成的寄存器傳輸級電路的描述,還支持以行為算法和結(jié)構(gòu)的混合描 下一頁上一頁1.1 EDA歷史與發(fā)展第13頁,共734頁。述為對象的系統(tǒng)級電路的描述。 VHDL具有良好的可讀性。它可以被計算機(jī)接受,也很容易被讀者理解。VHDL源文件,既是程序又是文檔,是工程技術(shù)人員間交換信息的文件。 VHD

13、L具有良好的可移植性。作為被IEEE承認(rèn)的工業(yè)標(biāo)準(zhǔn),VHDL實隊、上己成為通用的硬件描述語言,可以在各種EDA的設(shè)計環(huán)境和開發(fā)平臺中使用。 VHDL提高了設(shè)計效率,縮短了設(shè)計周期。VHDL描述的硬件電路可以與工藝無關(guān),設(shè)計者只需考慮功能即可。 VHDL采用“自頂向下”的設(shè)計方法及對已有設(shè)計的再利用。 下一頁上一頁1.1 EDA歷史與發(fā)展第14頁,共734頁。 VHDL可描述復(fù)雜電路系統(tǒng),支持對大規(guī)模設(shè)計的分解,由多人、多項目組共同完成。標(biāo)準(zhǔn)化規(guī)則和設(shè)計風(fēng)格,為設(shè)計的再利用提供了有力的支持。 VHDL設(shè)計有利于保護(hù)知識產(chǎn)權(quán)。VHDL設(shè)計的ASIC,在將設(shè)計文件下載到ASIC芯片時,可以采用加密的

14、保護(hù)措施,有效保護(hù)設(shè)計成果。2.可編程邏輯器件 可編程邏輯器件(Programmable Logic Device ) PLD是一種由用戶編程實現(xiàn)某種邏輯功能的新型邏輯器件。自20世紀(jì)70年代問世后,就以其速度快、集成度高、可加密和重新定義編程、上萬次的編程次數(shù)等優(yōu)點得到了廣泛應(yīng)用。 下一頁上一頁1.1 EDA歷史與發(fā)展第15頁,共734頁。 可編程邏輯器件由PLA到CPLD/FPGA,到SoC,在高速度、高集成度、高可靠性方面得到了快速的發(fā)展。片上系統(tǒng)(System on a Chip, SoC)指的是以嵌入式系統(tǒng)為核心,集軟硬件于一體,內(nèi)嵌復(fù)雜功能模塊的集成芯片。3. EDA軟件工具 ED

15、A工具在EDA技術(shù)應(yīng)用中占據(jù)極其重要的位置,EDA的核心是利用計算機(jī)完成電路設(shè)計的全程自動化,因此,基于計算機(jī)環(huán)境下的EDA工具軟件的支持是必不可少的。 由于EDA整個流程涉及不同技術(shù)環(huán)節(jié),每一個環(huán)節(jié)中必須有對應(yīng)的軟件包或?qū)S肊DA工具獨立處理,包括對電路模型功能模擬、對VHDL行為描述邏輯綜合等。下一頁上一頁1.1 EDA歷史與發(fā)展第16頁,共734頁。 EDA工具大致可以分為設(shè)計輸入編輯器、仿真器、HDL綜合器、適配器(或布局布線器)、下載器(或編程器)5個模塊。這5個模塊不同程度地集成綜合在各個EDA公司自己開發(fā)的EDA開發(fā)軟件工具中。 目前在國內(nèi)比較流行的EDA軟件工具主要有Alter

16、a公司的MAX+plus II 和Quartos II , Lattice公司的Expert LEVER和 Synario, Xilinx公司的Foundation和 Alliance, Actel公司的Actel Designer等。 Altera其主要產(chǎn)品有MAX7000/9000, FELXIOK, APEX20K, ACEXIK, Cyclone等系列。Altera公司在20世紀(jì)90年代后發(fā)展很快,認(rèn)為他們的開發(fā)工具M(jìn)AX+plus II是最成功 下一頁上一頁1.1 EDA歷史與發(fā)展第17頁,共734頁。的EDA開發(fā)平臺之一,Quartos II是MAX+plus II的升級版本。 X

17、ilinx是FPGA的發(fā)明者,其產(chǎn)品種類比較齊全,主要有XC9500/4000,Spartan, Virtex, Coolrunner等。Xilinx和Altera是主要的可編程邏輯器件供應(yīng)商,在歐洲,使用Xilinx公司產(chǎn)品的人較多;在日本及亞太地區(qū),使用Altera公司產(chǎn)品的人較多;在美國,則是平分秋色。這兩大供應(yīng)商提供了全球60%以上的PLD/FPGA產(chǎn)品??梢哉f,Altera和Xilinx共同決定了PLD技術(shù)的發(fā)展方向。 Lattice是ISP(在系統(tǒng)可編程)技術(shù)的發(fā)明者,其主要產(chǎn)品有ispLSI2000/5000/8000, MACH4/5, ispMACH4000等。下一頁上一頁1

18、.1 EDA歷史與發(fā)展第18頁,共734頁。 與Altera公司和 Xilinx公司相比,Lattice公司的開發(fā)工具略遜一籌,但其中小規(guī)模PLD比較有特色。Lattice公司于1999年推出可編程模擬器件,并收購了、Vantis(原AMD了公司),成為第二大可編程邏輯器件供應(yīng)商。 Actel是反熔絲PLD技術(shù)的領(lǐng)導(dǎo)者。由于反熔絲PLD抗輻射,耐高低溫,功耗低,速度快,所以在軍工產(chǎn)品和宇航產(chǎn)品上有較大優(yōu)勢。Altera和Xilinx則一般不涉足軍工產(chǎn)品和宇航產(chǎn)品市場。 本書主要是以Altera公司的Quartos II為開發(fā)平臺,以可編程邏輯器件為目標(biāo)器件,以VHDL為描述的EDA技術(shù)學(xué)習(xí)。

19、返 回上一頁1.1 EDA歷史與發(fā)展第19頁,共734頁。一、可編程邏輯器件的發(fā)展過程 20世紀(jì)70年代,熔絲編程的PROM和PLA是最早的可編程邏輯器件。 20世紀(jì)70年代末,AMD公司對PLA進(jìn)行改進(jìn),推出了PAL器件。 20世紀(jì)80年代初,Lattice公司發(fā)明電可擦寫的、比PAL使用更靈活的GAL器件。 20世紀(jì)80年代中期,Xilinx公司提出現(xiàn)場可編程概念,產(chǎn)生了世界上第一片F(xiàn)PGA。下一頁1.2 可編程邏輯器件第20頁,共734頁。 同期,Altera公司推出EPLD器件,比GAL具有更高的集成度,可以用紫外線或電擦除。 20世紀(jì)80年代末,Lattice公司提出在系統(tǒng)可編程技術(shù)

20、,并推出一系列具備在系統(tǒng)可編程能力的CPLD器件,將可編程邏輯器件的性能和應(yīng)用技術(shù)推向了全新的高度。 進(jìn)入20世紀(jì)90年代后,可編程邏輯集成電路技術(shù)進(jìn)入了高速發(fā)展的時期。器件的可用邏輯門數(shù)超過百萬門,出現(xiàn)了內(nèi)嵌復(fù)雜功能模塊(如加法器、乘法器、RAM, CPU核、DSP核、PLL等) SoPC。 下一頁上一頁1.2 可編程邏輯器件第21頁,共734頁。下一頁上一頁二、可編程邏輯器件分類 可編程邏輯器件的種類很多,都具有自身的結(jié)構(gòu)特點。對其進(jìn)行分類,主要的分類方法有: 按集成度分、按結(jié)構(gòu)分、按編程工藝分。 按集成度分,一般可用分成兩大類: 可用邏輯門數(shù)大約在500以下,稱為簡單PLD。如早期的PR

21、OM, PLA,PAL, GAL等。 集成度較高的,稱為復(fù)雜PLD。如現(xiàn)在大量使用的CPLD /FPGA。 按結(jié)構(gòu)分,一般也分為兩大類: 乘積項結(jié)構(gòu)器件。其基本結(jié)構(gòu)為“與-或”陣列的器件,大部分簡單PLD和CPLD都屬于這類。1.2 可編程邏輯器件第22頁,共734頁。下一頁上一頁 查找表結(jié)構(gòu)器件。由簡單的查找表組成可編程門,再構(gòu)成陣列 形式的器件,F(xiàn)PGA屬于這類。 按編程工藝分,大致有: 熔絲(Fuse)型。早期的PROM采用熔絲結(jié)構(gòu),編程過程中根據(jù)設(shè)計的熔絲圖文件來燒斷對應(yīng)的熔絲,達(dá)到編程的目的。 反熔絲 ( Antifuse)型。這是對熔絲技術(shù)的改進(jìn),在編程處通過擊穿漏層使得亮點間導(dǎo)通

22、。與熔絲燒斷獲得開路相反。Actel公司的FPGA采用的就是這種技術(shù)。 EPROM型。EPROM型稱為紫外線擦除電可編程邏輯器件,可多次編程。 EEPROM型。EEPROM型稱為電可擦寫編程邏輯器件,是1.2 可編程邏輯器件第23頁,共734頁。下一頁上一頁1.2 可編程邏輯器件對EPROM工藝的改進(jìn)?,F(xiàn)有的大部分CPLD和GAL器件采用這樣的工藝。 SRAM型。即SRAM查找表結(jié)構(gòu)器件,大部分FPGA采用這樣的結(jié)構(gòu)。 Flash型。采用Flash工藝的FPGA 可以實現(xiàn)多次可編程,掉電后也不需要重新配置。三、可編程邏輯器件的結(jié)構(gòu)和原理 可編程邏輯器件從結(jié)構(gòu)上劃分,可以分為乘積項結(jié)構(gòu)和查找表結(jié)

23、構(gòu)。 下面分別介紹基于這兩種結(jié)構(gòu)的可編程邏輯器件的內(nèi)部結(jié)構(gòu)和實現(xiàn)原理。第24頁,共734頁。下一頁上一頁1.2 可編程邏輯器件 1.基于乘積項(Product-Term)的PLD結(jié)構(gòu) 簡單的PLD和CPLD都采用這種結(jié)構(gòu),Altera公司的MAX7000S系列具有一定的典型性,下面以此為例介紹基于乘積項的PLD的結(jié)構(gòu),如圖1-1所示。 這種PLD的結(jié)構(gòu)可以分為二個部分:宏單元(Macrocell) ,可編程連線(PIA )用I /O端子控制塊。 宏單元是PLD的基本結(jié)構(gòu),多個宏單元組成一個邏輯陣列塊(LAB)。 可編程連線可以傳遞信號,連接所有的宏單元。I/O端子控制塊負(fù)責(zé)輸入/輸出端子的電氣

24、特性控制。宏單元的結(jié)構(gòu)如圖1-2所示。第25頁,共734頁。下一頁上一頁 2.乘積項結(jié)構(gòu)PLD的邏輯實現(xiàn)原理 下面以一個簡單的例了,具體說明PLD是如何利用其結(jié)構(gòu)實現(xiàn)組合邏輯的。利用PLD實現(xiàn)下列邏輯函數(shù): PLD將以如圖1-3所示的方式來實現(xiàn)組合邏輯 由PLD的I/O引腳進(jìn)入可編程連線陣列(PIA) ,在內(nèi)部會產(chǎn)生 6個輸出。圖中的“點”和“叉”都表示相連(可編程熔絲導(dǎo)通)1.2 可編程邏輯器件第26頁,共734頁。所以有: 這樣就實現(xiàn)了需要的組合邏輯。這樣一個簡單的組合邏輯,一個宏單元就可以完成。但是對于一個比較復(fù)雜的電路,一個宏單元是不能實現(xiàn)的,這樣就需要通過并行擴(kuò)展項和共享邏輯擴(kuò)展項將

25、多個宏單元連接,通過將一個宏單元的輸出再輸入到另一個宏單元的輸入,這樣就可以實現(xiàn)更復(fù)雜的邏輯了。1.2 可編程邏輯器件下一頁上一頁第27頁,共734頁。 3.基于查找表(Look-Up-Table)的FPGA結(jié)構(gòu) FPGA器件采用的是這種結(jié)構(gòu)。 查找表(LUT)實際上就是一個RAM。FPGA多數(shù)使用的是4輸入的LUT,每一個LUT可以看成一個4位地址線的16X 1的RAM。 用戶通過原理圖或HDL描述了一個邏輯電路后,PLD/FPGA開發(fā)軟件就會自動計算邏輯電路的所有可能的結(jié)果,并把結(jié)果預(yù)先寫入RAM。 這樣,每一個輸入信號進(jìn)行邏輯運算就等于輸入一個地址進(jìn)行查表,找出地址對應(yīng)的內(nèi)容,輸出結(jié)果。

26、 圖1-4是Altera的FLEX l OK芯片的內(nèi)部結(jié)構(gòu)(其他系列的FPGA結(jié)構(gòu)也基本相同,只以FLEXIOK為例)。1.2 可編程邏輯器件下一頁上一頁第28頁,共734頁。下一頁上一頁1.2 可編程邏輯器件 其主要包括LAB, I/O塊、RAM塊(圖中未表小出)、可編程行/列連線。LE是FLEX/ACEX系列芯片實現(xiàn)邏輯的最基本結(jié)構(gòu),其結(jié)構(gòu)如圖1-5所示。一個LAB又包括8個邏輯單元(LE)、一個LE有一個LUT,一個觸發(fā)器和相關(guān)的邏輯。 4.查找表結(jié)構(gòu)的FPGA邏輯實現(xiàn)原理 仍以簡單的例子進(jìn)行說明:用FPGA實現(xiàn)下列邏輯函數(shù): A, B, C由FPGA的I/O引腳輸入后進(jìn)入可編程連線(P

27、IA),然后作為地址連線連接到LUT, LUT中已經(jīng)事先寫入所有可能的邏輯結(jié)果。第29頁,共734頁。 通過地址查找到相應(yīng)的數(shù)據(jù),然后輸出,這樣,組合邏輯就實現(xiàn)了。這些實現(xiàn)的步驟都是由軟件自動完成的,不需要人為的干預(yù)。這是一個簡單的邏輯電路,只需要一個LUT就可以完成。對于一個LUT無法完成的復(fù)雜電路,需要通過進(jìn)位鏈將多個單元連接,一同實現(xiàn)復(fù)雜的邏輯功能。 由于LUT適合SRAM工藝生產(chǎn),所以大部分FPGA都是基于SRAM工藝的。SRAM工藝的芯片在斷電后信息會丟失,所以需要外加一片專用配置芯片,在通電的時候,由該配置芯片把數(shù)據(jù)信息加載到FPGA中,F(xiàn)PGA才可以正常工作。由于配置芯片進(jìn)行配置

28、的時間很短,不會影響系統(tǒng)正常工作。有少數(shù)FPGA采用反熔絲或Flash工藝,這樣就不需要外加專用配置芯片了。1.2 可編程邏輯器件下一頁上一頁第30頁,共734頁。四、面向CPLD/FPGA的EDA設(shè)計流程 EDA設(shè)計的大部分工作都是在EDA軟件工具平臺上進(jìn)行的,面向CPLD/FPGA的EDA設(shè)計流程如圖1-6所示。EDA設(shè)計流程包括設(shè)計準(zhǔn)備、設(shè)計輸入、設(shè)計實現(xiàn)、器件編程4個步驟,以及相應(yīng)的功能仿真、時序仿真、硬件測試3個設(shè)計驗證過程。 1.設(shè)計準(zhǔn)備 設(shè)計準(zhǔn)備是設(shè)計者在進(jìn)行系統(tǒng)設(shè)計之前,根據(jù)任務(wù)要求,確定系統(tǒng)所要實現(xiàn)的功能及復(fù)雜度,進(jìn)行器件資源的利用、成本等準(zhǔn)備工作。如進(jìn)行方案論證、系統(tǒng)設(shè)計分

29、解、器件選擇等。1.2 可編程邏輯器件下一頁上一頁第31頁,共734頁。 2.設(shè)計輸入 設(shè)計輸入是設(shè)計者將系統(tǒng)的設(shè)計按照EDA開發(fā)軟件的要求以某種形式描述表達(dá)出來,并被計算機(jī)所接收。設(shè)計輸入主要有原理圖輸入方式、采用HDL描述的文本輸入方式、波形輸入方式、文本和圖形混合的設(shè)計輸入方式。也可以采用“自頂向下”的層次結(jié)構(gòu)化設(shè)計法,將多個輸入文件合并成一個設(shè)計文件。 (1)原理圖輸入方式 原理圖輸入是圖形輸入編輯方式,是一種最直接的描述表達(dá)方式。使用軟件系統(tǒng)提供的元器件庫和各種符號連線設(shè)計成系統(tǒng)電路的原理圖,形成圖形輸入文件。其優(yōu)點是易于實現(xiàn)仿真,便于信號的觀察。1.2 可編程邏輯器件下一頁上一頁第

30、32頁,共734頁。 (2)硬件描述語言輸入方式 硬件描述語言輸入是文本輸入編輯方式,是一種行為描述表達(dá)方式。硬件描述語言輸入方式具有很強(qiáng)的邏輯描述和功能仿真,可實現(xiàn)與工藝無關(guān)的編程設(shè)計。設(shè)計者在系統(tǒng)設(shè)計、邏輯驗證階段便可確立方案的可行性,輸入效率高。運用VHDL或Verilog HDL硬件描述語言進(jìn)行設(shè)計已是當(dāng)前的趨勢。 (3)波形圖輸入方式 波形圖輸入方式主要用于建立和編輯波形設(shè)計文件及輸入仿真向量和功能測試向量。波形圖輸入適用于時序邏輯仿真,開發(fā)軟件平臺可以根據(jù)用戶定義的輸入波形自動生成輸出與輸入的邏輯關(guān)系。1.2 可編程邏輯器件下一頁上一頁第33頁,共734頁。3.設(shè)計實現(xiàn) 設(shè)計實現(xiàn)是

31、面向CPLD/FPGA的EDA設(shè)計的核心環(huán)節(jié)。在這個環(huán)節(jié),開發(fā)軟件平臺將對設(shè)計輸入文件進(jìn)行邏輯化簡、綜合優(yōu)化、自動適配,最后產(chǎn)生編程用的編程文件。設(shè)計實現(xiàn)過程主要包括設(shè)計編譯檢查、邏輯綜合優(yōu)化、適配分割、布局布線、生成編程數(shù)據(jù)文件等。 (1)設(shè)計編譯檢查 設(shè)計輸入完成之后,要進(jìn)行編譯。編譯過程將進(jìn)行語法檢查,有錯誤的會提出錯誤信息報告,供設(shè)計者修改。編譯后進(jìn)行設(shè)計規(guī)則檢查,指明設(shè)計有無違反規(guī)則及是否存在潛在不可靠情況,供設(shè)計者糾正。 1.2 可編程邏輯器件下一頁上一頁第34頁,共734頁。 (2)邏輯綜合優(yōu)化 邏輯優(yōu)化主要是面積優(yōu)化和時間優(yōu)化。面積優(yōu)化的目的是使設(shè)計所占用的PLD中的邏輯元件(

32、LE)數(shù)最少。時間優(yōu)化的目的是使設(shè)計的系統(tǒng)傳輸延遲時間最小。綜合的目的是將多個模塊化設(shè)計文件合并為一個網(wǎng)表文件。 (3)適配分割 適配是將綜合器產(chǎn)生的網(wǎng)表文件針對具體的日標(biāo)器件進(jìn)行邏輯映射操作。分割工作也在適配的過程中自動實現(xiàn),主要是在整個設(shè)計不能裝入一片器件時,自動分割成多塊并裝入同一系列的多片器件中。 1.2 可編程邏輯器件下一頁上一頁第35頁,共734頁。 (4)布局布線 布局布線工作是在設(shè)計驗證通過后由軟件自動完成的,能以最優(yōu)的方式對邏輯元件進(jìn)行布局,實現(xiàn)元件間的布線互連。布局布線完成后,軟件自動生成布線報告,為設(shè)計者提供設(shè)計中資源利用的相關(guān)信息。 (5)生成編程數(shù)據(jù)文件 軟件最后會自

33、動生成可供器件編程使用的數(shù)據(jù)文件。目標(biāo)器件若是CPLD,則是生成熔絲圖文件(JEDEC文件,也簡稱JED文件),若是FPGA,則是生成位流數(shù)據(jù)文件(BG文件)。1.2 可編程邏輯器件返 回上一頁第36頁,共734頁。 1.3 本章小結(jié)返 回EDA技術(shù)概論面向CPLD/FPGA的EDA設(shè)計流程EDA技術(shù)的主要內(nèi)容可編程邏輯器件的結(jié)構(gòu)和原理可編程邏輯器件的分類可編程邏輯器件的發(fā)展EDA技術(shù)的歷史與發(fā)展EDA技術(shù)的概念可編程邏輯器件EDA歷史與發(fā)展第37頁,共734頁。圖1-1 基于乘積項的PLD內(nèi)部結(jié)構(gòu)返 回 圖中是乘積項陣列,實際上就是一個與陣列,每一個交義點都是一個可編程熔絲,若導(dǎo)通則實現(xiàn)的是

34、與邏輯。中間的乘積項選擇矩陣是一個或陣列,與陣列一起完成組合邏輯。第38頁,共734頁。圖1-2 宏單元結(jié)構(gòu)返 回 該圖是一個D觸發(fā)器,它的時鐘、清零信號都可以編程選擇,可以使用專用的全局清零和全局時鐘,也可以使用內(nèi)部邏輯產(chǎn)生的時鐘和清零。若不需要觸發(fā)器,則可將其旁路信號直接給PIA或I/O端子。第39頁,共734頁。圖1-3 實現(xiàn)組合邏輯返 回第40頁,共734頁。圖1-4 Altera的FLEX l0K芯片的內(nèi)部結(jié)構(gòu)返 回第41頁,共734頁。 圖1-5 邏輯單元 (LE) 內(nèi)部結(jié)構(gòu)返 回第42頁,共734頁。 圖1-6 CPLD/FPGA設(shè)計流程返 回設(shè)計準(zhǔn)備設(shè)計輸入原理圖硬件描述語言波

35、形圖設(shè)計實現(xiàn)綜合、優(yōu)化適配、分割布局、布線時序仿真功能仿真硬件測試設(shè)計完成器件編程第43頁,共734頁。 【要求】 掌握VHDL語言的基本知識和運用VHDL語言設(shè)計邏輯電路的基本方法。 【知識點】理解VHDL程序的基本結(jié)構(gòu)理解VHDL程序的順序語句理解VHDL程序的并行語句理解VHDL程序的語言要素第2章 VHDL設(shè)計入門下一頁第44頁,共734頁。 【重點和難點】 VHDL程序的順序結(jié)構(gòu) VHDL程序的并行結(jié)構(gòu)【引言】 HDL文本輸入設(shè)計法是Quartus II的一個重要輸入設(shè)計法 ,本書主要介紹VHDL文本輸入法。本章討論VHDL語言的基本知識和運用 VHDL語言設(shè)計邏輯電路的方法,在以后

36、各章再對VHDL文本輸入設(shè)計法及其應(yīng)用作進(jìn)一步的討論。 本章先介紹VHDL程序的基本結(jié)構(gòu)、順序語句和并行 語句,最后對VHDL程序的語言要素做一個總結(jié)。第2章 VHDL設(shè)計入門下一頁上一頁第45頁,共734頁。第2章 VHDL設(shè)計入門2.1 VHDL程序的基本結(jié)構(gòu)2.2 VHDL程序的順序語句2.3 VHDL程序的并行語句2.4 VHDL程序的語言要素總結(jié)2.5 本章小結(jié)上一頁第46頁,共734頁。 VHDL程序包含實體(ENTITY ) 、結(jié)構(gòu)體(ARCHITECTURE ) 、配置( CONFIGURATION)、程序包(PACKAGE、庫(LIBRARY)5個部分。 簡單的實體是由實體和

37、結(jié)構(gòu)體兩部分組成的。 實體用于描述設(shè)計系統(tǒng)的外部接口信號,結(jié)構(gòu)體用于描述系統(tǒng)的行為、系統(tǒng)數(shù)據(jù)的流程或者系統(tǒng)組織結(jié)構(gòu)形式。 設(shè)計實體是VHDL程序的基本單元,是電子系統(tǒng)的抽象。 簡單的實體可以是一個與門電路( AND GATE),復(fù)雜的實體可以是一個微處理器或一個數(shù)字電了系統(tǒng)。 實體由實體說明和結(jié)構(gòu)體說明兩部分組成。2.1 VHDL程序的基本結(jié)構(gòu)下一頁第47頁,共734頁。下一頁上一頁2.1 VHDL程序的基本結(jié)構(gòu) 【例2.1】以下是一個簡單的VHDL源程序,可以歸納出VHDL程序的基本結(jié)構(gòu)。 ENTITY m yand2 IS -實體名稱為and2 PORT (a,b:IN BIT; -a,

38、b是兩個輸入引腳 c:OUT BIT); -c為輸出引腳 END m yand2; ARCHITECTURE examl OF myand2 IS -結(jié)構(gòu)體 BEGIN exam 1是對實體and2的內(nèi)部 c=a AND b; 描述,描述了and2器件的內(nèi)部 功能為實現(xiàn)一個2輸入與門 END exam1; 第48頁,共734頁。下一頁上一頁 由例2.1可以看出,VHDL程序由兩部分組成: 第1部分為實體說明. 第2部分為結(jié)構(gòu)體。 VHDL程序結(jié)構(gòu)更抽象、更基本、更簡練的表示如圖2-1所示。 設(shè)計實體用關(guān)鍵字ENTITY來標(biāo)識,結(jié)構(gòu)體ARCHITECTURE來標(biāo)識。 系統(tǒng)設(shè)計中的實體提供該設(shè)計系

39、統(tǒng)的公共信息,結(jié)構(gòu)體定義了各個 模塊內(nèi)的操作特性。 一個設(shè)計實體必須包含一個結(jié)構(gòu)體或含有多個結(jié)構(gòu)體。一個電子系統(tǒng)的設(shè)計模型如圖2-2所示。2.1 VHDL程序的基本結(jié)構(gòu)第49頁,共734頁。下一頁一、實體 實體由實體名、類型說明、端口說明、實體說明部分和實體語句部分組成。1.實體語句結(jié)構(gòu)根據(jù)IEEE標(biāo)準(zhǔn),實體組織的一般格式為: ENTITY實體名IS GENERIC(類型說明); PORT(端口說明); 實體說明部分: BEGIN 實體語句部分; END ENTITY實體名;2.1 VHDL程序的基本結(jié)構(gòu)上一頁第50頁,共734頁。 實體名是設(shè)計者自己給設(shè)計實體的命名,其他設(shè)計實體可對該設(shè)計實

40、體進(jìn)行調(diào)用。中間在方括號內(nèi)的語句描述,在特定的情況下并非是必須的。 2.類型說明 類型說明是實體說明中的可選項,放在端口說明之前,其一般使寫格式為: GENERIC CONSTANT名字表: 1N了類型標(biāo)識:一靜態(tài)表達(dá)式, 舉例: GENERIC(m:TIME: =3ns) 這個參數(shù)說明是指在VHDL程序中,結(jié)構(gòu)體內(nèi)的參數(shù)m的值為3ns。 下一頁上一頁2.1 VHDL程序的基本結(jié)構(gòu)第51頁,共734頁。 類型說明和端口說明是實體說明的組成部分,用于說明設(shè)計實體和外部通信的通道。利用外部通信通道,參數(shù)的類型說明為設(shè)計實體提供信息。參數(shù)的類型用來規(guī)定端口的大示、I/O引腳的指派、實體中子元件的數(shù)口

41、和實體的定時特性等信息。 3.端口說明 端口說明是對設(shè)計實體與外部接口的描述,是設(shè)計實體和外部環(huán)境動態(tài)通信的通道,其功能對應(yīng)于電路圖符號的一個引腳。實體說明中的每一個I/O信號被稱為一個端口,一個端口就是一個數(shù)據(jù)對象。端口可以被賦值,也可以當(dāng)做變量用在邏輯表達(dá)式中。定義實體的一組端口稱作端口說明。 下一頁上一頁2.1 VHDL程序的基本結(jié)構(gòu)第52頁,共734頁。 端口說明的組織結(jié)構(gòu)必須有一個名稱、一個通信模式和一個數(shù)據(jù)類型。端口說明的一般格式為: Port(端口名,端口名:模式 數(shù)據(jù)類型名 端口名,端口名:模式 數(shù)據(jù)類型名); 端口名是賦于每個外部引腳的名稱,名稱的含義要明確,如D開頭的端口名

42、表示數(shù)據(jù),A開頭的端口名表示地址等。端口名通常用幾個英文字母或一個英文字母加數(shù)字表示。 下面是合法的端口名:CLK, RESET, A0, D3。 模式用來說明數(shù)據(jù)、信號通過該端口的傳輸方向。端口模式有IN, OUT,BUFFER, 1NOUT。下一頁上一頁2.1 VHDL程序的基本結(jié)構(gòu)第53頁,共734頁。下一頁上一頁 (1)輸入(IN) 輸入僅允許數(shù)據(jù)流入輸入模式主要用于時鐘輸入、控制輸入(如RESET, ENABLE, CLK)和單向的數(shù)據(jù)輸入,如地址信號(ADDRESS)。不用的輸入一般接地,以免浮動引入干擾噪聲。 (2)輸出(OUT) 輸出僅允許數(shù)據(jù)流從實體內(nèi)部輸出。端口的驅(qū)動源是由

43、被設(shè)計的實體內(nèi)部進(jìn)行的。輸出模式不能用于被設(shè)計實體的內(nèi)部反饋,因為輸出端口在實體內(nèi)不能看做可讀的。輸出模式常用于計數(shù)輸出、單向數(shù)據(jù)輸出、設(shè)計實體產(chǎn)生的控制其他實體的信號等。一般而言,不用的輸出端口不能接地,避免造成輸出高電平時燒毀被設(shè)計實體。 2.1 VHDL程序的基本結(jié)構(gòu)第54頁,共734頁。 (3)緩沖(BUFFER) 緩沖模式的端口與輸出模式的端口類似,只是緩沖模式允許內(nèi)部引用該端口的信號。緩沖端口既能用于輸出,也能用于反饋。 緩沖端口的驅(qū)動源可以是: 設(shè)計實體的內(nèi)部信號源; 其他實體的緩沖端口。 緩沖不允許多重驅(qū)動,不與其他實體的雙向端口和輸出端口相連。 內(nèi)部反饋的實現(xiàn)方法有: 建立緩

44、沖模式端口; 建立設(shè)計實體的內(nèi)部節(jié)點。 下一頁上一頁2.1 VHDL程序的基本結(jié)構(gòu)第55頁,共734頁。 緩沖模式用于在實體內(nèi)部建立一個可讀的輸出端口,例如計數(shù)器輸出,計數(shù)器的現(xiàn)態(tài)被用來決定計數(shù)器的次態(tài)。實體既需要輸出,又需要反饋,這時設(shè)計端口模式應(yīng)為緩沖模式。 (4)雙向模式(INOUT) 雙向模式可以代替輸入模式、輸出模式和緩沖模式。 在設(shè)計實體的數(shù)據(jù)流中,有些數(shù)據(jù)是雙向的,數(shù)據(jù)可以流入該設(shè)計實體,也有數(shù)據(jù)從設(shè)計實體流出,這時需要將端口模式設(shè)計為雙向端口。 雙向模式的端口允許引入內(nèi)部反饋,所以雙向模式端口還可以作為緩沖模式用。由上述分析可見,雙向端口是一個完備的端口模式。下一頁上一頁2.1

45、 VHDL程序的基本結(jié)構(gòu)第56頁,共734頁。二、結(jié)構(gòu)體 結(jié)構(gòu)體具體指明了該設(shè)計實體的行為,定義了該設(shè)計實體的功能,規(guī)定了該端口。輸入信號的驅(qū)動源由設(shè)計實體的數(shù)據(jù)流程,指派了實體中內(nèi)部元件的連接關(guān)系。 用VHDL語言描述結(jié)構(gòu)體有4種方法: 行為描述法:采用進(jìn)程語句,順序描述被稱設(shè)計實體的行為。 數(shù)據(jù)流描述法:采用進(jìn)程語句,順序描述數(shù)據(jù)流在控制流作用下被加工、處理、存儲的全過程。 結(jié)構(gòu)描述法:采用并行處理語句描述設(shè)計實體內(nèi)的結(jié)構(gòu)組織和元件互連關(guān)系。 下一頁上一頁2.1 VHDL程序的基本結(jié)構(gòu)第57頁,共734頁。 采用多個進(jìn)程(PROCESS)、多個模塊(BLOCKS)、多個子程序(SUBPRO

46、GRAMS)的子結(jié)構(gòu)方式。 結(jié)構(gòu)體的一般書寫格式為: ARCHITECTURE結(jié)構(gòu)體名OF實體名IS 定義語句,內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)定義 BEGIN 并行處理語句; 進(jìn)程語句; END結(jié)構(gòu)體名; 下一頁上一頁2.1 VHDL程序的基本結(jié)構(gòu)第58頁,共734頁。 一個結(jié)構(gòu)體的組織結(jié)構(gòu)從“ARCHITECTURE結(jié)構(gòu)體名OF實體名IS”開始,到“END結(jié)構(gòu)體名”結(jié)束。 結(jié)構(gòu)體名稱由設(shè)計者自由命名,是結(jié)構(gòu)體的唯一名稱。OF后面的實體名稱表明該結(jié)構(gòu)體屬于哪個設(shè)計實體,有些設(shè)計實體中可能含有多個結(jié)構(gòu)體。這些結(jié)構(gòu)體的命名可以從不同側(cè)面反映結(jié)構(gòu)體的特色,讓人一目了然。例如: ARCHITECTUR

47、E behacvioral OF mux IS -用結(jié)構(gòu)體行為命名 ARCHITECTURE dataflow OF mux IS -用結(jié)構(gòu)體的數(shù)據(jù)流命名 下一頁上一頁2.1 VHDL程序的基本結(jié)構(gòu)第59頁,共734頁。 ARCHITECTURE structural OF mux IS -用結(jié)構(gòu)體的組織結(jié)構(gòu)命名 ARCHITECTURE bool OF mux IS -用結(jié)構(gòu)體的數(shù)學(xué)表達(dá)方式命名 ARCHITECTURE latch OF mux IS -用結(jié)構(gòu)體的功能來定義 上述幾個結(jié)構(gòu)體都屬于設(shè)計實體mux,每個結(jié)構(gòu)體有著不同的名稱,使得閱讀VHDL程序的人能直接從結(jié)構(gòu)體的描述方式了解功

48、能,定義電路行為。下一頁上一頁2.1 VHDL程序的基本結(jié)構(gòu)第60頁,共734頁。三、程序包 實體中定義的各種數(shù)據(jù)類型、子程序和元件調(diào)用說明只能局限在該實體內(nèi)或結(jié)構(gòu)體內(nèi)調(diào)用,其他實體不能使用。 程序包的語句格式如下: PACKAGE程序包名IS -程序包首開始 程序包首說明語句 END程序包名; -程序包首結(jié)束 PACKAGE BODY程序包名IS -程序包體開始 程序包體說明語句 END程序包名; -程序包體結(jié)束 下一頁上一頁2.1 VHDL程序的基本結(jié)構(gòu)第61頁,共734頁。 STD_LOGIC_1164程序包是IEEE庫中最常用的程序包,是IEEE的標(biāo)準(zhǔn)程序包。其中包括了一些數(shù)據(jù)類型、了

49、類型和函數(shù)的定義,這些定義將VHDL擴(kuò)展為一個能描述多值邏輯(即除具有“0”和“1”以外還有其他的邏輯量,如高阻態(tài)“Z、不定態(tài)“X”等)的硬件描述語言。 程序包結(jié)構(gòu)中,程序包體并非是必須的,程序包首可以獨立定義和使用。 例如: PACKAGE PAC1 IS -程序包首開始 TYPE BYTE IS RANGE 0 TO 255; -定義數(shù)據(jù)類型BYTE 下一頁上一頁2.1 VHDL程序的基本結(jié)構(gòu)第62頁,共734頁。 SIGNAL ADDEND: NIBBLE; -定義信號ADDEND END PAC1; -程序包首結(jié)束 如果要使用這個程序包中的所有定義,可用USE語句訪問此程序包: USE

50、 WORK.PAC1.ALL;四、庫 在利用VHDL進(jìn)行工程設(shè)計中,為了提高設(shè)計效率以及使設(shè)計遵循某些統(tǒng)一的語言標(biāo)準(zhǔn)或數(shù)據(jù)格式,有必要將一些有用的信息匯集在一個或幾個庫中以供調(diào)用。這些信息可以是預(yù)先定義的數(shù)據(jù)類型、子程序等設(shè)計單元的集合體(程序包),或預(yù)先設(shè)計好的各種設(shè)計實體(元件庫程序包)。因此,可以把庫看成是一種用來存儲預(yù)先完成的程序包和數(shù)據(jù)集合體的倉庫。 上一頁下一頁2.1 VHDL程序的基本結(jié)構(gòu)第63頁,共734頁。 庫的語句格式如下: LIBRARY庫名: 這一語句相當(dāng)于為其后的設(shè)計實體打開了以次庫名命名的庫,以便設(shè)計實體可以利用其中的程序包。如語句“LIBRARY_IEEE;”表示

51、打開IEEE庫。 1.庫的種類 (1)IEEE庫 IEEE庫是VH支持工業(yè)標(biāo)準(zhǔn)的程序包。IEEE庫中的標(biāo)準(zhǔn)程序包主要包含STD_LOGIC_1164, STD_LOGIC_ARITH, STD_LOGIC_SIGNED , STD_LOGIC_UNSIGNED程序包。 上一頁下一頁2.1 VHDL程序的基本結(jié)構(gòu)第64頁,共734頁。 (2)STD庫 STD庫是VHDL的標(biāo)準(zhǔn)庫,VHDL在編譯過程中自動使用這個庫,所以使用時不需要語句說明,類似“LIBRARY_STD”這種語句是不必要的。 (3)WORK庫 WORK庫是用戶的VHDL設(shè)計的現(xiàn)行工作庫,用于存放用戶設(shè)計和定義的一些設(shè)計單元和程序包

52、。因此,自動滿足VHDL的語言標(biāo)準(zhǔn),實際調(diào)用中,也不需要語句說明。 2.庫的用法 在VHDL中,庫的說明語句是放在實體單元的前面,而目庫語言一般必須與USE語言同用。庫語言關(guān)鍵詞LIBRARY,指明所使用的庫上一頁下一頁2.1 VHDL程序的基本結(jié)構(gòu)第65頁,共734頁。名。USE語句指明庫中的程序包。一旦說明了程序包,整個設(shè)計實體都可以進(jìn)入訪問和調(diào)用,但其作用范圍僅限于所說明的設(shè)計實體。 USE語句的使用將使說明的程序包對本設(shè)計實體部分全部開放, USE語句的使用有兩種常用格式: USE庫名.程序包名.項目名; USE庫名.程序包名.ALL; 例如: LIBRARY IEEE; -打開IEE

53、E庫 USE IEEE.STD_LOGIC_1164.ALL; -使用IEEE庫內(nèi)的STD_LOGIC_1164 上一頁下一頁2.1 VHDL程序的基本結(jié)構(gòu)第66頁,共734頁。 USE IEEE.STD_LOGIC_UNSIGNED.ALL; -使用IEEE庫內(nèi)的STD LOGIC UNSIGNED程序包內(nèi) 的所有資源五、配置 配置可以把特定的結(jié)構(gòu)體指定給一個確定的實體。為了滿足不同設(shè)計階段或不同場合的需要,對某一個實體,我們可以給出幾種不同形式的結(jié)構(gòu)體描述,這樣在其他實體調(diào)用該實體時,就可以根據(jù)需要選擇其中某一個結(jié)構(gòu)體,選擇不同的結(jié)構(gòu)體以便進(jìn)行性能對比試驗,確認(rèn)性能最佳的結(jié)構(gòu)體。以上這些工

54、作就由配置來完成。 上一頁下一頁2.1 VHDL程序的基本結(jié)構(gòu)第67頁,共734頁。配置語句的一般語句如下: CONFIGURATION 配置名 OF 實體名 IS 配置語句說明 END 配置名; 例2.2在描述一個與非門NAND的設(shè)計實體中會有兩個不同的邏輯描述方法構(gòu)成的結(jié)構(gòu)體。用配置語句來為特定的結(jié)構(gòu)體擊求作配置指定。LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MYNAND IS 上一頁下一頁2.1 VHDL程序的基本結(jié)構(gòu)第68頁,共734頁。 PORT (A:IN STD_LOGIC; B: IN STD_LOGIC; C: OUT

55、 STD_LOGIC); END ENTITY MYNAND; ARCHITECTURE ART1 OF MYNAND IS BEGIN C=NOT(A AND B); END ARCHITECYURE ART1; ARCHITECTURE ART2 OF MYNAND IS BEGIN 上一頁下一頁2.1 VHDL程序的基本結(jié)構(gòu)第69頁,共734頁。 C=1 WHEN (A=0)AND(B=0) ELSE 1 WHEN (A=0)AND(B=1) ELSE 1 WHEN (A=1)AND(B=0) ELSE 0 WHEN (A=1)AND(B=1) ELSE 0; END ARCHITECT

56、URE; CONFIGURATION SECOND OF IS FOR ART2 END FOR; END SECOND; 上一頁下一頁2.1 VHDL程序的基本結(jié)構(gòu)第70頁,共734頁。 CONFIGURATION FIRST OF IS FOR ART1 END FOR; END FIRST; 在本例中,若指定配置名為SECOND,則為實體NAND配置的結(jié)構(gòu)體為ART2;若指定配置名為FIRST,則為實體NAND配置的結(jié)構(gòu)體為ARTl。兩種結(jié)構(gòu)的描述方式不同,但是邏輯功能相同。 上一頁返 回2.1 VHDL程序的基本結(jié)構(gòu)第71頁,共734頁。 順序語句是VHDL程序設(shè)計中很貢要的語句系列之

57、一,它能夠從多個側(cè)面完整地描述數(shù)字系統(tǒng)的硬件結(jié)構(gòu)和基本邏輯功能。順序語句與傳統(tǒng)軟件要指的是語句的執(zhí)行(指仿真執(zhí)行)順序與它們書寫順序基本一致。 順序語句只能出現(xiàn)在進(jìn)程(PROCESS)或了程序(PROCEDURE)、函數(shù)(FUNCTION)中使用,按程序書寫的順序自上而下、一個一個語句地執(zhí)行。進(jìn)程本身屬于并行語句,這就是說在同一設(shè)計實體中,所有的進(jìn)程都是并行執(zhí)行的,每一個進(jìn)程內(nèi)部的語句是順序執(zhí)行的。 本節(jié)主要介紹賦值語句、IF語句、CASE語句、LOOP語句。 2.2 VHDL程序的順序語句下一頁第72頁,共734頁。一、順序賦值語句 順序語句中的賦值語句分變量賦值語句和信號賦值語句。其用途是

58、將一個值或者表達(dá)式的運算結(jié)果傳遞給一個變量、信號或者由它們組成的數(shù)組。但一者是有區(qū)別的,變量賦值時間延遲為零,而信號賦值一定存在時間延遲。 1.變量賦值語句 格式:口標(biāo)變量名:一賦值源(表達(dá)式): 例如:x:=5.0; z:=x+y; 其中x和z都是變量,:=表示給變量賦值。 上一頁下一頁 2.2 VHDL程序的順序語句第73頁,共734頁。 2.信號賦值語句 格式:口標(biāo)信號名=賦值源: 例如:y=3; b(3 TO 4)=c(1 TO 2); 其中y為信號,而b則為數(shù)組型信號,=表示給信號賦值。 二、IF語句 IF語句的書寫格式如下二種: 1.簡化的IF語句 IF條件表達(dá)式THEN 順序語句

59、: END IF: 上一頁下一頁 2.2 VHDL程序的順序語句第74頁,共734頁。 第一種語句的執(zhí)行情況是,當(dāng)程序執(zhí)行到該語句時,首先檢測關(guān)鍵詞IF后的“條件表達(dá)式”的布爾值是否為真(TURE。如果為真,那么THEN將順序執(zhí)行“順序語句”中的各條語句,直到“END IF: ;如果為假CFALSE),則不執(zhí)行“順序語句”,直接到跳到“END IF ,結(jié)束IF語句的執(zhí)行。 【例2.3 】用IF語句描述一個簡單的D觸發(fā)器。 ENTITY dffl IS PORT(d,c1k:IN BIT; q:ouT BIT); END dffl; 上一頁下一頁 2.2 VHDL程序的順序語句第75頁,共734

60、頁。 ARCHITECTURE one OF dffl IS BEGIN PROCESS(clk) BEGIN IF (clkevent AND clk=1) THEN q=d; END IF; END PROCESS; END one;上一頁下一頁 2.2 VHDL程序的順序語句第76頁,共734頁。 2.兩分支結(jié)構(gòu) IF 條件表達(dá)式 THEN 順序語句; ELSE 順序語句; END IF; 兩分支結(jié)構(gòu)的執(zhí)行情況是,當(dāng)關(guān)鍵詞“IF”后的“條件表達(dá)式”為真時,則順序執(zhí)行其下面的“順序語句”中的各條語句,當(dāng)“順序語句”執(zhí)行完成后,直接跳到“END IF: ”,結(jié)束IF語句的執(zhí)行;當(dāng)“IF ”)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論