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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

VHDL:

VHSIC(VeryHighSpeedIntegratedCircuit)

Hardware

Description

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

VHDL:

VHSIC(VeryHighSpeedIntegratedCircuit)

Hardware

Description

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

library庫(kù)名;

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

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

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

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

buffer緩沖型,與out相似,但可讀。端口類型:預(yù)先定義好的數(shù)據(jù)類型。如:bit、integer、std_logic等例:時(shí)鐘秒的實(shí)體說(shuō)明entitynewsecondisport(clk,reset:instd_logic;sec1,sec2:outstd_logic_vector(3downto0);carry:outstd_logic);endnewsecond;3.1.3結(jié)構(gòu)體聲明architecture結(jié)構(gòu)體名稱of實(shí)體名稱is[定義語(yǔ)句]內(nèi)部信號(hào)、常數(shù)、數(shù)據(jù)類型、進(jìn)程、子程序〔函數(shù)、過(guò)程〕、組件等的聲明;begin[并行處理語(yǔ)句];end[結(jié)構(gòu)體名稱];例:秒的結(jié)構(gòu)體聲明architecturet1ofnewsecondissignalsect1,sect2:std_logic_vector(3downto0);Beginprocess(reset,clk) ……endt1;3.2VHDL中的數(shù)據(jù)數(shù)據(jù)對(duì)象:常量(Constant)、變量(Variable)、信號(hào)(Signal)格式:名稱:數(shù)據(jù)類型約束條件:=表達(dá)式;例: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中的描述語(yǔ)句順序(Sequential)描述語(yǔ)句賦值語(yǔ)句;if語(yǔ)句;case語(yǔ)句;loop語(yǔ)句;next語(yǔ)句;exit語(yǔ)句;子程序;return語(yǔ)句;wait語(yǔ)句;null語(yǔ)句。并發(fā)(Concurrent)描述語(yǔ)句進(jìn)程〔process〕語(yǔ)句、塊〔block〕語(yǔ)句、順序描述語(yǔ)句的并行版本、組件例化語(yǔ)句、生成語(yǔ)句。3.3.1順序(Sequential)描述語(yǔ)句賦值語(yǔ)句變量:=表達(dá)式;信號(hào)<=表達(dá)式;例:sect1<="0000";sect2<="0000";

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

順序處理語(yǔ)句;elsif條件then

順序處理語(yǔ)句;else

順序處理語(yǔ)句;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語(yǔ)句case表達(dá)式iswhen分支條件=>順序處理語(yǔ)句;

when分支條件=>順序處理語(yǔ)句;

when分支條件=>順序處理語(yǔ)句;

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)描述語(yǔ)句[標(biāo)記:]process[(敏感信號(hào)表)] begin{順序語(yǔ)句}

endprocess[標(biāo)記](méi);敏感信號(hào)表:進(jìn)程內(nèi)要讀取的所有敏感信號(hào)(包括端口)的列表。每個(gè)敏感信號(hào)的變化,都將啟動(dòng)進(jìn)程。1、同步進(jìn)程的敏感信號(hào)表中只有時(shí)鐘信號(hào)。例:process(clk)2、異步進(jìn)程敏感信號(hào)表中除時(shí)鐘信號(hào)外,還有其它信號(hào)。例:process(clk,reset)例process(reset,clk)beginifreset='1'thensect1<="0000";sect2<="0000";…… sec1<=sect1;sec2<=sect2; endif;endprocess;數(shù)字鐘電路圖秒計(jì)數(shù)器分計(jì)數(shù)器時(shí)計(jì)數(shù)器顯示譯碼器數(shù)據(jù)選擇器“分計(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í)計(jì)數(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四、軟件開(kāi)發(fā)環(huán)境MAXPLUSII創(chuàng)立新目錄“E:\XX〞運(yùn)行MAXPLUSII軟件建立VHDL新文件

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論