EDA理論復(fù)習整合版_第1頁
EDA理論復(fù)習整合版_第2頁
EDA理論復(fù)習整合版_第3頁
EDA理論復(fù)習整合版_第4頁
EDA理論復(fù)習整合版_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、什么叫EDA技術(shù):狹義的EDA技術(shù),就是指以大規(guī)??删幊踢壿嬈骷樵O(shè)計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達方式,以計算機、大規(guī)模可編程邏輯器件的開發(fā)軟件及實驗開發(fā)系統(tǒng)為設(shè)計工具,通過有關(guān)的開發(fā)軟件,自動完成將用軟件的方式設(shè)計的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真,直至對于特定目標芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù),或稱為IES/ASIC自動設(shè)計技術(shù)。廣義的EDA技術(shù),除了狹義的EDA技術(shù)外,還包括計算機輔助分析CAA技術(shù)(如PSPICE,EWB,MATLAB等),印刷電路板計算機輔

2、助設(shè)計PCB-CAD技術(shù)(如PROTEL,ORCAD等)。使用EDA技術(shù)進行電子系統(tǒng)設(shè)計的優(yōu)點:(1)用軟件的方式設(shè)計硬件;()用軟件方式設(shè)計的系統(tǒng)到硬件系統(tǒng)的轉(zhuǎn)換,由有關(guān)的開發(fā)軟件自動完成;()設(shè)計過程中可用有關(guān)軟件進行各種仿真;(4)系統(tǒng)可現(xiàn)場編程,在線升級;()整個系統(tǒng)可集成在一個芯片上,體積小、功耗低,可靠性高。EDA技術(shù)特點1.用軟件編寫的方法設(shè)計硬件2.用軟件方法設(shè)計的系統(tǒng)到硬件系統(tǒng)的轉(zhuǎn)換由軟件自動完成的3.設(shè)計過程中可用有關(guān)軟件進行各種仿真4.系統(tǒng)可現(xiàn)場編程,在線升級5.整個系統(tǒng)可集成在一個芯片上,體積小,功耗低,可靠性高6.從以前的“組合設(shè)計”轉(zhuǎn)向真正的“自由設(shè)計”7.設(shè)計的移

3、植性好,效率高8.非常適合分工設(shè)計,團隊合作應(yīng)該掌握的內(nèi)容大規(guī)??删幊踢壿嬈骷⒚枋稣Z言硬件、軟件開發(fā)工具、實驗開發(fā)系統(tǒng)程序輸入方法:1.原理圖輸入方法2.狀態(tài)圖輸入方法3.VHDL文本邏輯綜合:將電路的高級語言描述轉(zhuǎn)化成低級的,可與FPGA/CPLD或ASIC門陣列基本結(jié)構(gòu)相映射的網(wǎng)表文件。邏輯適配:將由綜合器產(chǎn)生的網(wǎng)表文件針對某一具體的目標器進行邏輯映射操作,(其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布線與操作等,)配置于指定的目標器件中,產(chǎn)生最終的下載文件(如JEDEC格式的文件)的過程邏輯配置,經(jīng)過用戶設(shè)計輸入并經(jīng)過開發(fā)系統(tǒng)編譯后產(chǎn)生的配置數(shù)據(jù)文件,將其裝入FPGA芯片內(nèi)部的可配置存

4、儲器的過程,簡稱FPGA的下載。設(shè)計過程中仿真有三種:行為仿真,功能仿真,時序仿真時序仿真: 將接線器/適配器所產(chǎn)生的VHDL網(wǎng)表文件送到VHDL仿真器中所進行的仿真。 行為仿真:將VHDL設(shè)計源程序直接送到VHDL仿真器中所進行的仿真。功能仿真:將綜合后的VHDL網(wǎng)表文件再送到VHDL仿真器中所進行的仿真。硬件仿真:就是在ASIC設(shè)計中,常利用FPGA對系統(tǒng)的設(shè)計進行功能檢測,通過后再將其VHDL設(shè)計以ASIC形式實現(xiàn)的過程。硬件測試:就是把FPGA或CPLD直接用于應(yīng)用系統(tǒng)的設(shè)計中,將下載文件下載到FPGA后,對系統(tǒng)設(shè)計進行功能檢測的過程。ISP-in system programmabl

5、e 在系統(tǒng)可編程可編程功能單元(Programmable Function Unit,簡稱PFU);無RAM的可編程功能單元(Programmable Function Unit without RAM,簡稱PFF)系統(tǒng)時鐘鎖相環(huán)(PLL)FPGA的配置流程一般包括芯片的初始化、配置和啟動等過程。Asic工程設(shè)計流程:1.系統(tǒng)規(guī)格說明2.系統(tǒng)劃分3.邏輯設(shè)計與綜合4.綜合后仿真5.版圖設(shè)計6.版圖驗證7.參數(shù)提取與后仿真8.制版、流片9.芯片測試數(shù)字系統(tǒng)設(shè)計方法:模塊設(shè)計法、自頂向下設(shè)計法、自底向上設(shè)計法數(shù)字系統(tǒng)設(shè)計步驟:1.系統(tǒng)任務(wù)分析2.確定邏輯算法3.建立系統(tǒng)及子系統(tǒng)模型4.系統(tǒng)邏輯描述

6、5.邏輯電路級設(shè)計及系統(tǒng)仿真6.系統(tǒng)的物理實現(xiàn)FPGA的英文全稱是Field Programmable Gate Array,現(xiàn)場可編程門陣列 CPLD的英文全稱是Complex Programmable Logic Devices,復(fù)雜可編程邏輯器件二者在保存邏輯信息方面的區(qū)別是FPGA掉電后將丟失原有的邏輯信息而CPLD卻能保持原有的邏輯信息。高集成度、高速度和高可靠性FPGA/CPLD最明顯的特點VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功

7、能和接口。VHDL程序設(shè)計中常用的庫:IEEE庫 STD庫 WORK庫VITAL庫。VHDL程序基本結(jié)構(gòu):庫、程序包使用說明、實體描述和實體對應(yīng)的結(jié)構(gòu)體描述VHDL程序設(shè)計中常用的庫:IEEE庫 STD庫 WORK庫VITAL庫。常用的預(yù)定義的程序包:STD_LOGIC_1164程序包,STD_LOGIC_ARITH程序包,STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED程序包,STANDARD和TEXTIO程序包。VHDL的基本標識符就是以英文字母開頭,不連續(xù)使用下劃線,不以下劃線“_”結(jié)尾的,由字母、數(shù)字以及下劃線“_”組成的字符串。VHDL的數(shù)據(jù)對象有 常量 、 變

8、量 和 信號 三種。VHDL中的數(shù)據(jù)類型按照數(shù)據(jù)類型的構(gòu)成可以分成四大類:標量型(SCALAR TYPE):屬單元素的最基本的數(shù)據(jù)類型,通常用于描述一個單值數(shù)據(jù)對象,它包括實數(shù)類型、整數(shù)類型、枚舉類型和時間類型。合類型(COMPOSITE TYPE):可以由細小的數(shù)據(jù)類型復(fù)合而成,如可由標量復(fù)合而成。復(fù)合類型主要有數(shù)組型(ARRAY)和記錄型(RECORD)。存取類型(ACCESS TYPE):為給定的數(shù)據(jù)類型的數(shù)據(jù)對象提供存取方式。文件類型(FILES TYPE):用于提供多值存取類型。VHDL中的枚舉數(shù)據(jù)類型是用文字符號來表示一組實際的二進制數(shù)的類型(若直接用數(shù)值來定義,則必須使用單引號)

9、VHDL的數(shù)據(jù)對象常量,變量和信號 三者的使用比較 (1) 從硬件電路系統(tǒng)來看,常量相當于電路中的恒定電平,如GND或VCC接口,而變量和信號則相當于組合電路系統(tǒng)中門與門間的連接及其連線上的信號值。 (2) 從行為仿真和VHDL語句功能上看,二者的區(qū)別主要表現(xiàn)在接受和保持信號的方式、信息保持與傳遞的區(qū)域大小上。例如信號可以設(shè)置延時量,而變量則不能;變量只能作為局部的信息載體,而信號則可作為模塊間的信息載體。變量的設(shè)置有時只是一種過渡,最后的信息傳輸和界面間的通信都靠信號來完成。(3) 從綜合后所對應(yīng)的硬件電路結(jié)構(gòu)來看,信號一般將對應(yīng)更多的硬件結(jié)構(gòu),但在許多情況下,信號和變量并沒有什么區(qū)別。例如

10、在滿足一定條件的進程中,綜合后它們都能引入寄存器。這時它們都具有能夠接受賦值這一重要的共性,而VHDL綜合器并不理會它們在接受賦值時存在的延時特性。(4) 雖然VHDL仿真器允許變量和信號設(shè)置初始值,但在實際應(yīng)用中,VHDL綜合器并不會把這些信息綜合進去。這是因為實際的FPGA/CPLD芯片在上電后,并不能確保其初始狀態(tài)的取向。因此,對于時序仿真來說,設(shè)置的初始值在綜合時是沒有實際意義的。四類操作符,即邏輯操作符(Logical Operator)、關(guān)系操作符(Relational Operator)、算術(shù)操作符(Arithmetic Operator)和符號操作符(Sign Operator

11、)重載操作符(Overloading Operator)為什么從本質(zhì)上講,VHDL所有語句都是并行語句?答:順序語句是相對于并行語句而言的,其特點是每一條順序語句的執(zhí)行(指仿真執(zhí)行)順序是與它們的書寫順序基本一致的 順序語句只能出現(xiàn)在進程(Process)和子程序中。在VHDL中,一個進程是由一系列順序語句構(gòu)成的,而進程本身屬并行語句,這就是說,在同一設(shè)計實體中,所有的進程是并行執(zhí)行的。然而任一給定的時刻內(nèi),在每一個進程內(nèi),只能執(zhí)行一條順序語句。一個進程與其設(shè)計實體的其他部分進行數(shù)據(jù)交換的方式只能通過信號或端口。如果要在進程中完成某些特定的算法和邏輯操作,也可以通過依次調(diào)用子程序來實現(xiàn),但子程

12、序本身并無順序和并行語句之分。利用順序語句可以描述邏輯系統(tǒng)中的組合邏輯、時序邏輯或它們的綜合體。VHDL有如下六類基本順序語句:賦值語句;轉(zhuǎn)向控制語句;等待語句;子程序調(diào)用語句;返回語句;空操作語句。VHDL是一種強數(shù)據(jù)類型語言,強數(shù)據(jù)類型的具體含義是:(1) 各數(shù)據(jù)對象必須具有確定的數(shù)據(jù)類型 (2)具有相同數(shù)據(jù)類型的數(shù)據(jù)對象才能進行相互操作 。VHDL的描述風格有三種,分別是行為描述、數(shù)據(jù)流描述和結(jié)構(gòu)描述。VHDL的元件例化語句用于建立端口之間映射關(guān)系的兩種常用方式是 名字關(guān)聯(lián)方式 和 位置關(guān)聯(lián)方式。狀態(tài)機的兩種基本操作分別是狀態(tài)機內(nèi)部狀態(tài)轉(zhuǎn)換和產(chǎn)生輸出信號序列IEEE_1076標準程序包中

13、定義的四種常用端口模式分別是IN模式、OUT模式、BUFFER模式和 INOUT 模式。EDA實驗開發(fā)系統(tǒng)的基本組成:1.信號發(fā)生模塊2.輸出信號顯示模塊3.監(jiān)控程序模塊4.目標芯片及其配適座.編程下載電路5.其他轉(zhuǎn)換電路系統(tǒng)及各種擴展接口使用通用EDA實驗開發(fā)系統(tǒng)的基本步驟如下:(1) 根據(jù)所設(shè)計的實體的輸入和輸出要求,從實驗電路結(jié)構(gòu)圖中選擇合適的實驗電路結(jié)構(gòu)圖,并記下對應(yīng)的實驗?zāi)J健?2) 根據(jù)所選的實驗電路結(jié)構(gòu)圖、擬采用的實驗或開發(fā)芯片的型號以及系統(tǒng)結(jié)構(gòu)圖信號名與芯片引腳對照表,確定各個輸入和輸出所對應(yīng)的芯片引腳號,并將有關(guān)信息填入芯片引腳的鎖定過程表格中,以供設(shè)計中的有關(guān)步驟使用。 (

14、3) 進入EDA設(shè)計中的編程下載步驟時,首先在EDA實驗開發(fā)系統(tǒng)斷電的情況下,將EDA實驗開發(fā)系統(tǒng)的編程下載接口,通過實驗開發(fā)系統(tǒng)提供的編程下載線(比如并行下載接口扁平電纜線、USB下載線)與計算機的有關(guān)接口(比如打印機并行接口、USB接口)連接好,并將有關(guān)選擇開關(guān)置于所要求的位置,然后接通EDA實驗開發(fā)系統(tǒng)的輸入電源,打開EDA實驗開發(fā)系統(tǒng)上的電源開關(guān),這時即可進行編程下載的有關(guān)操作。(4) 編程下載成功后,首先通過模式選擇鍵將實驗?zāi)J睫D(zhuǎn)換到前面選定的實驗?zāi)J健H糨斎牒洼敵錾婕皶r鐘、聲音、視頻等信號,還應(yīng)將相應(yīng)部分的短路帽或接口部分連接好。之后輸入設(shè)計實體所規(guī)定的各種輸入信號,即可進行相應(yīng)的

15、實驗。 對于目標器件為FPGA/CPLD的VHDL工程設(shè)計,其工作步驟如何?并簡要介紹各步的作用。答:(1)源程序的編輯和編譯:利用EDA工具的文本編輯器或圖形編輯器將設(shè)計用文本或圖形方式表達出來,進行排錯編譯,變成VHDL文件格式;(2)邏輯綜合和優(yōu)化:將電路的高級語言描述轉(zhuǎn)換成低級的,可與FPGA/CPLD或構(gòu)成ASIC的門陣列基本結(jié)構(gòu)相映射的網(wǎng)表文件,以便將VHDL的軟件設(shè)計與硬件的可實現(xiàn)性掛鉤;(3)目標器件的布線/適配:將由綜合器產(chǎn)生的網(wǎng)表文件針對某一具體的目標器進行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布線與操作等,配置于指定的目標器件中,產(chǎn)生最終的下載文件,如J

16、EDEC格式的文件;(4)目標器件的編程/下載:將由FPGA/CPLD布線/適配器產(chǎn)生的配置/下載文件通過編程器或下載電纜載入目標芯片F(xiàn)PGA或CPLD中;(5)設(shè)計過程中的有關(guān)仿真:設(shè)計過程中為了了解設(shè)計的結(jié)果,可通過仿真器進行有關(guān)仿真,包括行為仿真,功能仿真和時序仿真;(6)硬件仿真/硬件測試:在ASIC設(shè)計中,常利用FPGA對系統(tǒng)的設(shè)計進行功能檢測,通過后再將其VHDL設(shè)計以ASIC形式實現(xiàn),這個過程稱之為硬件仿真;針對FPGA或CPLD直接用于應(yīng)用系統(tǒng)的設(shè)計中,將下載文件下載到FPGA后,對系統(tǒng)的設(shè)計進行的功能檢測,這個過程稱之為硬件測試。從學(xué)習和使用的角度,你認為EDA技術(shù)主要包括哪

17、幾方面的內(nèi)容?這幾個方面在整個電子系統(tǒng)的設(shè)計中分別起什么作用?答: 大規(guī)??删幊踢壿嬈骷?;硬件描述語言; 軟件開發(fā)工具; 實驗開發(fā)系統(tǒng)。大規(guī)??删幊踢壿嬈骷抢肊DA技術(shù)進行電子系統(tǒng)設(shè)計的載體,硬件描述語言是利用EDA技術(shù)進行電子系統(tǒng)設(shè)計的主要表達手段,軟件開發(fā)工具是利用EDA技術(shù)進行電子系統(tǒng)設(shè)計的智能化的自動化設(shè)計工具,實驗開發(fā)系統(tǒng)則是利用EDA技術(shù)進行電子系統(tǒng)設(shè)計的下載工具及硬件驗證工具。闡述EDA實驗開發(fā)系統(tǒng)的主要作用及基本組成。EDA實驗開發(fā)系統(tǒng)的主要用于提供可編程邏輯器件的下載電路及EDA實驗開發(fā)的外圍資料,以供硬件驗證用。一般包括:A實驗或開發(fā)所需的各類基本信號發(fā)生模塊,包括時鐘

18、,脈沖,高低電平等;BFPGA/CPLD輸出信號顯示模塊,包括數(shù)碼顯示,發(fā)光器顯示,聲響指示等;C監(jiān)控程序模塊,提供“電路重構(gòu)軟配置” D目標芯片配座以及上面的FPGA/CPLD目標芯片和編程電路下載。E其他轉(zhuǎn)換電路系統(tǒng)及各種擴展接口。為什么從本質(zhì)上講,VHDL所有語句都是并行語句?答:順序語句是相對于并行語句而言的,其特點是每一條順序語句的執(zhí)行(指仿真執(zhí)行)順序是與它們的書寫順序基本一致的 順序語句只能出現(xiàn)在進程(Process)和子程序中。在VHDL中,一個進程是由一系列順序語句構(gòu)成的,而進程本身屬并行語句,這就是說,在同一設(shè)計實體中,所有的進程是并行執(zhí)行的。然而任一給定的時刻內(nèi),在每一個

19、進程內(nèi),只能執(zhí)行一條順序語句。一個進程與其設(shè)計實體的其他部分進行數(shù)據(jù)交換的方式只能通過信號或端口。如果要在進程中完成某些特定的算法和邏輯操作,也可以通過依次調(diào)用子程序來實現(xiàn),但子程序本身并無順序和并行語句之分。利用順序語句可以描述邏輯系統(tǒng)中的組合邏輯、時序邏輯或它們的綜合體。闡述EDA實驗開發(fā)系統(tǒng)的基本組成一般包括:A實驗或開發(fā)所需的各類基本信號發(fā)生模塊,包括時鐘,脈沖,高低電平等;BFPGA/CPLD輸出信號顯示模塊,包括數(shù)碼顯示,發(fā)光器顯示,聲響指示等;C監(jiān)控程序模塊,提供“電路重構(gòu)軟配置” D目標芯片配座以及上面的FPGA/CPLD目標芯片和編程電路下載。E其他轉(zhuǎn)換電路系統(tǒng)及各種擴展接口

20、。EDA技術(shù)的應(yīng)用展望EDA技術(shù)將廣泛應(yīng)用與高校電類專業(yè)的時間教學(xué)中;將廣泛應(yīng)用于科研工作和新產(chǎn)品的開發(fā)中;將廣泛應(yīng)用于集成電路的開發(fā)中;將廣泛應(yīng)用到傳統(tǒng)機電設(shè)備的升級換代和技術(shù)改造中一個完整的VHDL源程序包括:其中的第一部分是庫和程序包(用于打開(調(diào)用)本設(shè)計實例將要用到的庫和程序包),是用VHDL編寫的共享文件,定義結(jié)構(gòu)體和實體中要用到的數(shù)據(jù)類型、元件、子程序等,放在名為IEEE的庫中。第二部分是實體說明(用于描述該設(shè)計實體與外界的接口信號說明),相當于定義電路單元的管腳信息。實體名是自己任意取的,但要注意要與項目名和文件名相同,并符合標識符規(guī)則。實體以ENTITY開頭,以END結(jié)束。第

21、三部分是結(jié)構(gòu)體(用于描述該設(shè)計實體內(nèi)部的組成及內(nèi)部工作的邏輯關(guān)系),用來描述電路的內(nèi)部結(jié)構(gòu)和邏輯功能。利用EDA技術(shù)進行電子系統(tǒng)設(shè)計仿真的基本步驟及要求如下:(1)分析系統(tǒng)設(shè)計要求和設(shè)計思想,弄懂系統(tǒng)的工作原理/工作流程;(2)了解各種輸入信號及要求,設(shè)置各種輸入激勵信號:各輸入信號本身的要求,相互之間的要求(如輸入的先后,時間間隔的大小等);各種輸入信號的設(shè)置有兩種:仿真波形直接設(shè)置,測試程序文本設(shè)置;測試用例應(yīng)盡可能覆蓋整個系統(tǒng)的各種可能情況。(3)估計各種輸出的期望值:對應(yīng)各種可能的輸入,估計其輸出期望值;(4)進行實際仿真及結(jié)果分析:執(zhí)行仿真操作進行實際仿真,并將仿真結(jié)果與期望值進行比

22、較與分析;(5)仿真改進與完善:若仿真結(jié)果與期望值不一致,則查找原因,進行程序和仿真設(shè)置值修改,直到完全達到要求為止。1)用VHDL程序設(shè)計一個帶有計數(shù)使能(ENA)和清零(CLR)功能的16進制計數(shù)器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT16 IS PORT(  CLK: IN STD_LOGIC;          CLR: IN STD_LOGIC;  

23、0;       ENA: IN STD_LOGIC;          CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);          CARRY_OUT: OUT STD_LOGIC );END CNT16;ARCHITECTURE ART OF CNT16 ISSIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,CLR,ENA)BEGIN&

24、#160; IF CLR='1'THEN CQI<="0000"  ELSIF CLK'EVENT AND CLK ='1' THEN    IF ENA = '1'THENIF CQI = "1001" THEN      CQI<="0000" CARRY_OUT<='1'      ELSE    &#

25、160;      CQI <= CQI+'1'          CARRY_OUT<='0'        END IF;  END IF;END PROCESS;  CQ<=CQI;END ART;2)用VHDL設(shè)計一個分頻電路,要求將1MHZ的方波信號變?yōu)?0KHZ的方波信號。答:LIBRARY IEEE;USE IEEE.STD_LOGIC_116

26、4.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JYFP IS PORT( CLK:IN STD_LOGIC; Q:OUT STD_LOGIC );END ENTITY JYFP; ARCHITECTURE ART OF JYFP ISBEGINPROCESS(CLK)VARIABLE TEMP:NATURAL RANGE 0 TO 50; BEGIN IF RISING_EDGE(CLK) THEN IF (TEMP>=50) THEN TEMP:=0; ELSE TEMP:=TEMP+1; END IF; IF(TEMP<=24) T

27、HEN Q<=1; ELSE Q<=0; END IF; END IF; END PROCESS CLK;END ARCHITECTURE ART;3)用VHDL設(shè)計一個將6位BCD碼數(shù)據(jù)DIN23.0用6個共陰數(shù)碼管進行動態(tài)掃描顯示的電路。答:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DISPLAY IS PORT(CLK:IN STD_LOGIC; -動態(tài)掃描顯示時鐘,60Hz以上 DIN: IN STD_LOGIC_VECTOR(23 DOWNTO 0);

28、-6位BCD碼輸入數(shù)據(jù) COM:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);-數(shù)碼管COM端的選擇輸出端 SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -數(shù)碼管8段顯示驅(qū)動輸出端END ENTITY DISPLAY; (4分)ARCHITECTURE ART OF DISPLAY IS SIGNAL CNT:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL BCD:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK) -產(chǎn)生動態(tài)掃描顯示的控制信號 BEGIN IF CLK&

29、#39;EVENT AND CLK='1' THEN IF CNT="101" THEN CNT<="000"ELSE CNT<=CNT+'1' END IF ; END IF; END PROCESS; PROCESS(CNT) IS BEGIN CASE CNT IS -顯示數(shù)據(jù)的選擇,對應(yīng)顯示數(shù)碼管公共端的選通,低電平有效 WHEN "000" =>BCD<=DIN(3 DOWNTO 0); COM<="111110" WHEN "001

30、" =>BCD<=DIN(7 DOWNTO 4); COM<="111101" WHEN "010" =>BCD<=DIN(11 DOWNTO 8); COM<="111011" WHEN "011" =>BCD<=DIN(15 DOWNTO 12); COM<="110111" WHEN "100" =>BCD<=DIN(19 DOWNTO 16); COM<="101111&quo

31、t; WHEN "101" =>BCD<=DIN(23 DOWNTO 20); COM<="011111" WHEN OTHERS=>BCD<="0000" COM<="111111" END CASE;CASE BCD IS -將BCD碼轉(zhuǎn)換成數(shù)碼管的8段驅(qū)動信息,高電平有效 WHEN "0000" => SEG<="00111111"- =>dp/g/f/e/d/c/b/a WHEN "0001"

32、=> SEG<="00000110" WHEN "0010" => SEG<="01011011" WHEN "0011" => SEG<="01001111" WHEN "0100" => SEG<="01100110" WHEN "0101" => SEG<="01101101"WHEN "0110" => SEG<=&q

33、uot;01111101"WHEN "0111" => SEG<="00000111"WHEN "1000" => SEG<="01111111"WHEN "1001" => SEG<="01101111"WHEN "1010" => SEG<="01110111" WHEN "1011" => SEG<="01111100"

34、WHEN "1100" => SEG<="00111001" WHEN "1101" => SEG<="01011110" WHEN "1110" => SEG<="01111001" WHEN "1111" => SEG<="01110001" WHEN OTHERS => SEG<="00000000" END CASE ; END PROCESS;EN

35、D ARCHITECTURE ART;4)具有左移或右移一位、并行輸入和同步復(fù)位功能的8位移位寄存器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SFTREG IS PORT(CLK, RESET: IN STD_LOGIC; LSFT, RSFT: IN STD_LOGIC; -左移和右移使能 DATA: IN STD_LOGIC_VECTOR(7 DOWNTO 0); MODE: IN STD_LOGIC_VECTOR(1 DOWNTO 0); -模式控制 QOUT: BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0)

36、;END ENTITY SFTREG;ARCHITECTURE ART OF SFTREG IS BEGIN PROCESS IS BEGIN WAIT UNTIL(RISING_EDGE(CLK); IF(RESET='1')THENQOUT<="00000000" ELSE -同步復(fù)位功能的實現(xiàn) CASE MODE IS WHEN "01"=>QOUT<=RSFT&QOUT(7 DOWNTO 1);-右移一位 WHEN "10"=>QOUT<=QOUT(6 DOWNTO 0)&

37、amp;LSFT; -左移一位 WHEN "11"=>QOUT<=DATA; -并行輸入 WHEN OTHERS=>NULL; END CASE; END IF; END PROCESS;END ARCHITECTURE ART; 5)十進制加法計數(shù)器之一LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;-打開重載程序包ENTITY CNT10A IS PORT(CLR:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(3 DOWNTO

38、 0); CNT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY CNT10A; ARCHITECTURE ART OF CNT10A IS BEGIN PROCESS(DIN,CLR) IS BEGIN IF (CLR= '1' OR DIN= "1001") THEN CNT<="0000" -有清零信號,或計數(shù)已達9, CNT輸出0, ELSE -否則作加1操作 CNT<=DIN+1; -使用了重載運算符"+" END IF; END PROCESS;END A

39、RCHITECTURE ART; 3線-8線譯碼器(高電平有效)。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DECODER IS PORT(A, B, C:IN STD_LOGIC; Y: OUT BIT_VECTOR (7 DOWNTO 0);END ENTITY DECODER; -使用SLL邏輯運算符ARCHITECTURE ART1 OF DECODER IS SIGNAL SR: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN SR<=C

40、&B&A; Y<= "00000001" SLL (CONV_INTEGER(SR);END ARCHITECTURE ART1;-使用PROCESS語句ARCHITECTURE ART2 OF DECODER IS SIGNAL SR: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN SR<=C&B&A; PROCESS(SR) IS BEGIN Y<=(OTHERS=>'1') ; Y(CONV_INTEGER(SR)<='1' END PROCESS;

41、END ARCHITECTURE ART2;-使用WHEN - ELSE 語句 ARCHITECTURE ART3 OF DECODER IS SIGNAL SR: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN SR<=C&B&A; Y(0)<='1' WHEN SR="000" ELSE '0' Y(1)<='1' WHEN SR="001" ELSE '0' Y(2)<='1' WHEN SR="

42、010" ELSE '0' Y(3)<='1' WHEN SR="011" ELSE '0' Y(4)<='1' WHEN SR="100" ELSE '0' Y(5)<='1' WHEN SR="101" ELSE '0' Y(6)<='1' WHEN SR="110" ELSE '0' Y(7)<='1' WHEN

43、 SR="111" ELSE '0'END ARCHITECTURE ART3;-使用CASE-WHEN 語句ARCHITECTURE ART4 OF DECODER IS SIGNAL SR: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN SR<=C&B&A; PROCESS(SR)IS BEGIN CASE SR IS WHEN "000"=>Y<= "00000001" WHEN "001"=>Y<= "0000

44、0010" WHEN "010"=>Y<= "00000100" WHEN "011"=>Y<= "00001000" WHEN "100"=>Y<= "00010000" WHEN "101"=>Y<= "00100000" WHEN "110"=>Y<= "01000000" WHEN "111"=>

45、;Y<= "10000000" WHEN OTHERS=>Y<= "00000000" END CASE; END PROCESS;END ARCHITECTURE ART4; 6)帶時鐘使能的十進制同步計數(shù)器。-有時鐘使能的十進制同步計數(shù)器CNT10.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT10 IS PORT(CLK: IN STD_LOGIC; -計數(shù)時鐘信號 CLR: IN STD_LOGIC; -清零信號 ENA: IN STD_LOGIC; -計數(shù)使能信號

46、 CQ: OUT INTEGER RANGE 0 TO 15; -4位計數(shù)結(jié)果輸出 CO: OUT STD_LOGIC); -計數(shù)進位 END ENTITY CNT10;ARCHITECTURE ART OF CNT10 IS SIGNAL CQI: INTEGER RANGE 0 TO 15; BEGIN PROCESS(CLK, CLR, ENA) IS -計數(shù)進程 BEGIN IF CLR= '1' THEN CQI<= 0; -計數(shù)器異步清零 ELSIF CLK'EVENT AND CLK= '1' THEN IF ENA= '1&

47、#39; THEN IF CQI=9 THEN CQI<=0; -等于9, 則計數(shù)器清零 ELSE CQI<=CQI+1; END IF; END IF; END IF; END PROCESS; PROCESS (CLK, CQI) IS -控制進位輸出并去毛刺 BEGIN IF CLK'EVENT AND CLK='1' THEN IF CQI=9 THEN CO<= '1' -進位輸出 ELSE CO<= '0'END IF; END IF; END PROCESS; CQ<=CQI;END ARCHI

48、TECTURE ART; 7)4選1信號選擇器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX41 IS PORT(X: IN STD_LOGIC_VECTOR(3 DOWNTO 0); A,B: IN STD_LOGIC; Y: OUT STD_LOGIC);END ENTITY MUX41;ARCHITECTURE ART OF MUX41 IS SIGNAL SEL :STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN SEL<=B&A; PROCESS(X,SEL) IS BEGIN IF(SEL

49、="00")THEN Y<=X(0); ELSIF (SEL="01")THEN Y<=X(1); ELSIF (SEL="11")THEN Y<=X(2); ELSE Y<=X(3); END IF; END PROCESS;END ARCHITECTURE ART; 8)4選1數(shù)據(jù)選擇器。-MUXB41.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUXB41 IS PORT(DATA0, DATA1: IN STD_LOGIC_VECTOR(3 D

50、OWNTO 0); DATA2, DATA3: IN STD_LOGIC_VECTOR(3 DOWNTO 0); A, B: IN STD_LOGIC; Y: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY MUXB41;ARCHITECTURE ART OF MUXB41 IS SIGNAL SEL: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN SEL<=B&A; PROCESS(SEL) BEGIN CASE SEL IS WHEN "00"=>Y<=DATA0; WHEN &

51、quot;01"=>Y<=DATA1; WHEN "10"=>Y<=DATA2; WHEN "11"=>Y<=DATA3; WHEN OTHERS =>Y<=NULL; END CASE; END PROCESS;END ARCHITECTURE ART; 9)D觸發(fā)器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DCFQ IS PORT(D, CLK: IN STD_LOGIC; Q: OUT STD_LOGIC);END ENTITY DCF

52、Q;ARCHITECTURE ART OF DCFQ IS BEGIN PROCESS(CLK) IS BEGIN IF (CLK'EVENT AND CLK='1')THEN - 時鐘上升沿觸發(fā) Q<=D; END IF; END PROCESS;END ARCHITECTURE ART;10)非同步復(fù)位/置位的D觸發(fā)器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ASYNDCFQ IS PORT(CLK, D, PRESET, CLR: IN STD_LOGIC; Q: OUT STD_LOGIC);END

53、ENTITY ASYNDCFQ;ARCHITECTURE ART OF ASYNDCFQ IS BEGIN PROCESS(CLK, PRESET, CLR) IS BEGIN IF(PRESET='1')THEN-置位信號為1,則觸發(fā)器被置位 Q<='1' ELSIF(CLR='1')THEN-復(fù)位信號為1,則觸發(fā)器被復(fù)位 Q<='0' ELSIF(CLK'EVENT AND CLK='1')THEN Q<=D; END IF; END PROCESS;END ARCHITECTURE

54、ART; 11)同步復(fù)位的D觸發(fā)器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SYNDCFQ IS PORT(D, CLK, RESET: IN STD_LOGIC; Q: OUT STD_LOGIC);END ENTITY SYNDCFQ;ARCHITECTURE ART OF SYNDCFQ IS BEGIN PROCESS(CLK) IS BEGIN IF(CLK'EVENT AND CLK='1')THEN IF(RESET='0')THEN Q<='0'-時鐘邊沿到來且

55、有復(fù)位信號,觸發(fā)器被復(fù)位 ELSE Q<=D; END IF; END IF; END PROCESS;END ARCHITECTURE ART; 19)JK觸發(fā)器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY JKCFQ IS PORT(J, K, CLK: IN STD_LOGIC; Q, QB: BUFFER STD_LOGIC);END ENTITY JKCFQ;ARCHITECTURE ART OF JKCFQ IS SIGNAL Q_S, QB_S: STD_LOGIC; BEGIN PROCESS(CLK, J, K) IS

56、 BEGIN IF (CLK'EVENT AND CLK='1')THEN IF(J='0' AND K='1') THEN Q_S<='0' QB_S<='1' ELSIF (J='1' AND K='0') THEN Q_S<='1' QB_S<='0' ELSIF (J='1' AND K='1') THEN Q_S<=NOT Q_S; QB_S<=NOT QB_S; END IF; END IF ; Q<=Q_S; QB<=QB_S; END PROCESS;END ARCHITECTURE ART; 16) 有時鐘使能的十進制計數(shù)器的源程序CNT10.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT10 IS PORT(CLK: IN STD_LOGIC; -計數(shù)時鐘信號 CLR: IN STD_LOGIC; -清零信號 ENA: IN STD_LOGIC; -計數(shù)使能信號 CQ: OUT INTEGER RANGE 0 TO 15; -4位計數(shù)結(jié)果輸出 CO

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論