數(shù)字鐘實驗教案(-10)_第1頁
數(shù)字鐘實驗教案(-10)_第2頁
數(shù)字鐘實驗教案(-10)_第3頁
數(shù)字鐘實驗教案(-10)_第4頁
數(shù)字鐘實驗教案(-10)_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)字鐘的FPGA設計與實現(xiàn)

實驗教案電子工程學院馮健實驗目的1.掌握計數(shù)器的根本設計方法;2.對利用VHDL硬件描述語言設計相關模塊有一定的了解;3.ALTERAMAXPLUSII軟件的使用。用FPGA設計并實現(xiàn)數(shù)字鐘一、EDA技術根底知識二、數(shù)字鐘設計原理三、VHDL語言四、軟件開發(fā)環(huán)境MAXPLUSII五、實驗系統(tǒng)簡介具備根底:數(shù)字邏輯一、EDA技術的根底知識EDA——ElectronicDesignAutomation

以大規(guī)??删幊踢壿嬈骷樵O計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達方式,以計算機、大規(guī)??删幊唐骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設計工具,自動完成用軟件方式描述的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、布局布線、邏輯仿真,直至完成對于特定目標芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T多學科融合的新技術。

傳統(tǒng)方法與EDA方法比較傳統(tǒng)方法1.自下至上〔BottomUp)2.通用的邏輯元、器件3.系統(tǒng)硬件設計的后期進行仿真和調(diào)試4.主要設計文件是電原理圖5.手工實現(xiàn)EDA方法1.自上至下〔TopDown)2.PLD〔可編程邏輯器件〕3.系統(tǒng)設計的早期進行仿真和修改4.多種設計文件,開展趨勢以HDL描述文件為主5.自動實現(xiàn)

EDA技術極大地降低硬件電路設計難度,提高設計效率,是電子系統(tǒng)設計方法的質(zhì)的飛躍。1.EDA技術的主要內(nèi)容實現(xiàn)載體:大規(guī)??删幊踢壿嬈骷睵LD__ProgrammableLogicDevice〕描述方式:硬件描述語言〔HDL__HarddescripationLauguage)VHDL、VerlogHDL等設計工具:開發(fā)軟件、開發(fā)系統(tǒng)硬件驗證:實驗開發(fā)系統(tǒng)大規(guī)??删幊踢壿嬈骷?/p>

〔PLD__ProgrammableLogicDevice〕FPGA__FieldProgrammableGatesArray——現(xiàn)場可編程門陣列CPLD__ComplexProgrammableLogicDevice——復雜可編程邏輯器件主流公司:Xilinx、Altera、LatticeFPGA/CPLD顯著優(yōu)點:開發(fā)周期短、投資風險小、產(chǎn)品上市速度快、市場適應能力強、硬件修改升級方便。2.硬件描述語言VHDL

VHDL:

VHSIC(VeryHighSpeedIntegratedCircuit)

Hardware

Description

LanguageVHDL語言特點①VHDL具有強大的語言結構,系統(tǒng)硬件抽象描述能力強、設計效率高。②VHDL語言可讀性強,易于修改和發(fā)現(xiàn)錯誤。③VHDL具有豐富的仿真語句和庫函數(shù),可進行早期行為仿真,利于大系統(tǒng)的設計與驗證。④VHDL設計與硬件電路關系不大。⑤VHDL設計不依賴于器件,與工藝無關。⑥移植性好。⑦VHDL體系符合TOP-DOWN和CE設計思想。⑧VHDL設計效率高,產(chǎn)品上市時間快,本錢低。⑨易于ASIC實現(xiàn)。二、數(shù)字鐘設計原理要求:能夠自動計時,并下載到實驗箱中用七段數(shù)碼管顯示出時、分、秒時鐘的概念系統(tǒng)時鐘:幾乎所有數(shù)字系統(tǒng)都需要時鐘產(chǎn)生:晶體振蕩器,能夠產(chǎn)生較為精確的方波脈沖信號,可以到達10-7甚至更高。時鐘頻率:單位時間內(nèi)的方波脈沖信號的個數(shù)振蕩器的時鐘頻率有32.768kHz,2MHz,10MHz,40MHz等。周期:頻率的倒數(shù),即一個方波脈沖信號的持續(xù)時間一個周期數(shù)制的概念數(shù)制:二進制、十進制、十二進制、十六進制、六十進制等。如日常生活用十進制,秒到分為六十進制十進制數(shù)(整數(shù))與二進制數(shù)(整數(shù))的轉換十進制數(shù)除2取余倒序排,如〔23〕10=〔10111〕2(10101)2=124+023+122+021+120=(21)102223211余15212余1余1余0余1低位計數(shù)器原理計數(shù):對輸入方波脈沖信號進行數(shù)個數(shù)的過程計數(shù)的作用:產(chǎn)生周期更長(持續(xù)時間)的脈沖信號計數(shù)器的種類:二進制計數(shù)器、二十四進制計數(shù)器、六十進制計數(shù)器等BCD碼BCD碼:用二進制數(shù)對十進制數(shù)字符號進行編號后所對應的0、1序列編碼方法:十進制數(shù)有0~9共10個數(shù)字符號。而1個二進制位可以表示0、1兩種狀態(tài);2個二進制位可以表示為00、01、10、11四種狀態(tài);3個二進制可以表示八種狀態(tài)。因此要表示十個數(shù)字符號,就需要4個二進制位。但是4個二進制位共有16種狀態(tài)。規(guī)定使用前10種。十進制0123456789BCD碼0000000100100011010001010110011110001001二進制數(shù)與BCD碼的區(qū)別7的BCD碼是0111;但7的二進制是011116的BCD碼是00010110;但16的二進制數(shù)是10000因此數(shù)值大于等于10后,BCD碼與二進制數(shù)完全不相同!十進制數(shù)求BCD時,只需寫出每個十進制數(shù)的BCD碼就可以了,但求二進制數(shù)時要按照前面的方法求解。本設計中的時、分、秒用BCD碼表示七段數(shù)碼管結構七段顯示數(shù)碼管是由發(fā)光二極管按照一定的規(guī)那么排列而成的電路結構排列形狀abcfegd七段數(shù)碼管的顯示原理公共極接低電平(電壓)!非公共極接高電平(1)時,發(fā)光二極管點亮發(fā)光,顯示筆畫;非公共極也接低電平(0)時,發(fā)光二極管的電壓差不夠,不發(fā)光,筆畫不顯示。abcfegd時分秒的顯示BCD碼表示的時、分、秒需要用七段數(shù)碼管顯示出來如“39〞秒其BCD碼是00111001要求顯示的形狀是“〞因此要2個數(shù)碼管,且第1個數(shù)碼管的abcdg為高電平;第2個數(shù)碼管的abcfg為高電平。其他為低電平100001101000BCD碼-七段顯示碼譯碼器gfedcbaDCBA七段數(shù)碼輸出BCD碼輸入001111110000310011111100411001100010511011011010611111010110700001111110811111110001911011111001210110110100實現(xiàn)方案電路框圖系統(tǒng)時鐘秒計數(shù)器數(shù)據(jù)選擇器六十進制計數(shù)器六十進制計數(shù)器譯碼器顯示碼數(shù)碼管數(shù)碼管數(shù)碼管秒分時秒脈沖分脈沖時脈沖BCD碼BCD碼BCD碼掃描碼產(chǎn)生數(shù)字鐘電路圖秒計數(shù)器分計數(shù)器時計數(shù)器顯示譯碼器數(shù)據(jù)選擇器“秒計數(shù)〞硬件描述語言(VHDL)程序libraryieee;useieee.std_logic_1164.all;use;entitynewsecondisport(clk,reset:instd_logic;sec1,sec2:outstd_logic_vector(3downto0);carry:outstd_logic);endnewsecond;architecturet1ofnewsecondissignalsect1,sect2:std_logic_vector(3downto0);begin續(xù)process(reset,clk)beginifreset='1'thensect1<="0000";sect2<="0000";elsif(clk'eventandclk='1')thenifsect1="1001"thensect1<="0000";ifsect2="0101"thensect2<="0000";else sect2<=sect2+1;endif;else sect1<=sect1+1;endif;續(xù)if(sect1="1001"andsect2="0101")thencarry<='1';elsecarry<='0';endif; endif;endprocess;sec1<=sect1;sec2<=sect2;endt1;三、VHDL語言

VHDL:

VHSIC(VeryHighSpeedIntegratedCircuit)

Hardware

Description

LanguageVHDL是一種IEEE工業(yè)標準硬件描述語言,是用于仿真和綜合的高級別描述語言3.1VHDL程序結構VHDL程序包括實體〔Entity〕聲明結構體〔Architecture〕聲明庫〔Library〕、程序包〔Package〕聲明庫、程序包實體〔Entity〕結構體〔Architecture〕進程或其它并行結構配置〔Configuration〕VHDL程序結構3.1.1庫VHDL庫可分為5種:1、IEEE庫:定義了四個常用的程序包:?std_logic_1164(std_logictypes&relatedfunctions)?std_logic_arith(arithmeticfunctions)?std_logic_signed(signedarithmeticfunctions)?std_logic_unsigned(unsignedarithmeticfunctions)2、STD庫〔默認庫〕庫中程序包為:standard,定義的數(shù)據(jù)類型:Bit,bit_vector,Boolean,Integer,Real,andTime3、面向ASIC的庫4、WORK庫〔默認庫〕5、用戶定義庫庫的使用庫及程序包的使用語法:

library庫名;

use庫名.程序包名.All;例:時鐘秒的庫定義libraryieee;useieee.std_logic_1164.all;use;3.1.2實體聲明ENTITY<實體名>IS類屬聲明端口聲明END<entity_name>;(87版本)ENDENTITY<entity_name>;(93版本)端口聲明:確定輸入輸出端口的數(shù)目和類型。Port〔端口名稱{,端口名稱}:端口方式端口類型;…端口名稱{,端口名稱}:端口方式端口類型〕;端口方式與端口類型端口方式:

in輸入型,此端口為只讀型。

out輸出型,此端口只能在實體內(nèi)部對其賦值。

inout輸入輸出型,既可讀也可賦值。

buffer緩沖型,與out相似,但可讀。端口類型:預先定義好的數(shù)據(jù)類型。如:bit、integer、std_logic等例:時鐘秒的實體說明entitynewsecondisport(clk,reset:instd_logic;sec1,sec2:outstd_logic_vector(3downto0);carry:outstd_logic);endnewsecond;3.1.3結構體聲明architecture結構體名稱of實體名稱is[定義語句]內(nèi)部信號、常數(shù)、數(shù)據(jù)類型、進程、子程序〔函數(shù)、過程〕、組件等的聲明;begin[并行處理語句];end[結構體名稱];例:秒的結構體聲明architecturet1ofnewsecondissignalsect1,sect2:std_logic_vector(3downto0);Beginprocess(reset,clk) ……endt1;3.2VHDL中的數(shù)據(jù)數(shù)據(jù)對象:常量(Constant)、變量(Variable)、信號(Signal)格式:名稱:數(shù)據(jù)類型約束條件:=表達式;例:constantwidth:integer:=8;variablecount:integerrange0to255:=10;signalinit:integer:=-1;VHDL數(shù)據(jù)類型:布爾量(boolean)、位(bit)、位矢量(bit_vector)、字符(character)、整數(shù)(integer)、字符串(string)、std_logic類型、std_logic_vector類型例:signalsect1,sect2:std_logic_vector(3downto0);3.3VHDL中的描述語句順序(Sequential)描述語句賦值語句;if語句;case語句;loop語句;next語句;exit語句;子程序;return語句;wait語句;null語句。并發(fā)(Concurrent)描述語句進程〔process〕語句、塊〔block〕語句、順序描述語句的并行版本、組件例化語句、生成語句。3.3.1順序(Sequential)描述語句賦值語句變量:=表達式;信號<=表達式;例:sect1<="0000";sect2<="0000";

temp:=‘0’;2、IF語句if條件then

順序處理語句;elsif條件then

順序處理語句;else

順序處理語句;endif;例:ifreset='1'thensect1<="0000";sect2<="0000";elsif(clk'eventandclk='1')thenifsect1="1001"thensect1<="0000";ifsect2="0101"thensect2<="0000";else sect2<=sect2+1;endif;else sect1<=sect1+1;endif;3、CASE語句case表達式iswhen分支條件=>順序處理語句;

when分支條件=>順序處理語句;

when分支條件=>順序處理語句;

endcase;例:casecountiswhen"000"=>data<=in1;when"001"=>data<=in2;when"010"=>data<=in3;when"011"=>data<=in4;when"100"=>data<=in5;whenothers=>data<=in6;endcase;3.3.2并發(fā)(Concurrent)描述語句[標記:]process[(敏感信號表)] begin{順序語句}

endprocess[標記];敏感信號表:進程內(nèi)要讀取的所有敏感信號(包括端口)的列表。每個敏感信號的變化,都將啟動進程。1、同步進程的敏感信號表中只有時鐘信號。例:process(clk)2、異步進程敏感信號表中除時鐘信號外,還有其它信號。例:process(clk,reset)例process(reset,clk)beginifreset='1'thensect1<="0000";sect2<="0000";…… sec1<=sect1;sec2<=sect2; endif;endprocess;數(shù)字鐘電路圖秒計數(shù)器分計數(shù)器時計數(shù)器顯示譯碼器數(shù)據(jù)選擇器“分計數(shù)〞VHDL程序libraryieee;useieee.std_logic_1164.all;use;entityAAAAisport(clk,reset:instd_logic;xxxx,yyyy:outstd_logic_vector(3downto0);bl:outstd_logic);endAAAA;architecturet1ofAAAAissignalcccc,dddd:std_logic_vector(3downto0);begin

以下程序略“時計數(shù)〞VHDL程序略六選一數(shù)據(jù)選擇器VHDL程序libraryieee;useieee.std_logic_1164.all;use;entitym6_1scanisport(clkscan,reset:instd_logic;in1,in2,in3,in4,in5,in6:instd_logic_vector(3downto0);data:outstd_logic_vector(3downto0);sel:outstd_logic_vector(2downto0));endm6_1scan;architecturet1ofm6_1scanissignalcount:std_logic_vector(2downto0);begin顯示譯碼VHDL程序libraryieee;useieee.std_logic_1164.all;entityclk7is

port(data:instd_logic_vector(3downto0);doute:outstd_logic_vector(6downto0));endclk7;architecturebehaveofclk7isbegin四、軟件開發(fā)環(huán)境MAXPLUSII創(chuàng)立新目錄“E:\XX〞運行MAXPLUSII軟件建立VHDL新文件

翻開AlteraMAX+plus軟件后,首先選擇“File〞中的“New〞,建立一個新的VHDL文件;選擇待編輯的文件類型編輯VHDL源程序選擇“TextEditorfile〞輸入源程序?qū)⒃闯绦虼鏋閂HDL文件格式選擇“FileSaveAs…〞,出現(xiàn)右邊窗口點擊“Drivers:〞,選擇“E〞驅(qū)動器點擊“Directories:〞,選擇“XX〞目錄點擊“AutomaticExtension〞,選擇“.vhd〞在“FileName:〞后輸入文件名“second.vhd〞點擊“OK〞按扭,即可保存寫好的VHDL語言程序建立并輸入其他VHDL源文件按照上述方法,依次輸入并建立各個VHDL源程序,得到以下所示各個文件。設置VHDL文件為當前工程選擇“FileProjectSetProjecttoCurrentFile〞編譯VHDL源文件點擊“MAX+plusIICompilerStart〞進行編譯如果警告和錯誤不為0,要改正錯

溫馨提示

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

最新文檔

評論

0/150

提交評論