版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于FPGA的計(jì)數(shù)器的程序設(shè)計(jì)方案FPGA簡(jiǎn)介FPGA(Field—ProgrmableGateArray),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。自1985年Xilinx公司推出第一片規(guī)模現(xiàn)場(chǎng)可編程邏輯器件(FP2GA)至今,FPGA已經(jīng)歷了十幾年的歷。在這十幾年的過(guò)程中,可編程器件有了驚人的發(fā)展:從最初的1200個(gè)可利用門(mén),到今天的25萬(wàn)可利用門(mén),規(guī)模增大了200多倍;FPGA供應(yīng)商也從Xilinx的一枝獨(dú)秀,到今天近20個(gè)廠商的分庭抗?fàn)?FPGA從單一的基于SRAM結(jié)構(gòu)到今天各種結(jié)構(gòu)類(lèi)型的出現(xiàn),都充分體現(xiàn)了可編程器件這一巨大市場(chǎng)的吸引力。FPGA不僅可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問(wèn)題,而且其開(kāi)發(fā)周期短開(kāi)發(fā)軟件投入少、芯片價(jià)格不斷降低。由于目前電子產(chǎn)品生命周期相對(duì)縮短,相近功能產(chǎn)品的派生設(shè)計(jì)增多等特點(diǎn),促使FPGA越來(lái)越多地取代了ASIC的市場(chǎng),特別是對(duì)國(guó)眾多的科研單位來(lái)說(shuō),小批量、多品種的產(chǎn)品需求,使得FPGA成為首選。1.2硬件描述語(yǔ)言VHDL特點(diǎn)功能強(qiáng)大、設(shè)計(jì)靈活。VHDL具有功能強(qiáng)大的語(yǔ)言結(jié)構(gòu),可以用簡(jiǎn)潔明確的源代碼來(lái)描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級(jí)描述。VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言所不能比擬的。VHDL還支持各種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。支持廣泛、易于修改。由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)的硬件描述語(yǔ)言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計(jì)過(guò)程中,主要的設(shè)計(jì)文件是用VHDL編寫(xiě)的源代碼,因?yàn)閂HDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計(jì)。強(qiáng)大的系統(tǒng)硬件描述能力。VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級(jí)電路,又可以描述門(mén)級(jí)電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類(lèi)型,給硬件描述帶來(lái)較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。獨(dú)立于器件的設(shè)計(jì)、與工藝無(wú)關(guān)。設(shè)計(jì)人員用VHDL進(jìn)行設(shè)計(jì)時(shí),不需要首先考慮選擇完成設(shè)計(jì)的器件,就可以集中精力進(jìn)行設(shè)計(jì)的優(yōu)化。當(dāng)設(shè)計(jì)描述完成后,可以用多種不同的器件結(jié)構(gòu)來(lái)實(shí)現(xiàn)其功能。很強(qiáng)的移植能力。VHDL是一種標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,同一個(gè)設(shè)計(jì)描述可以被不同的工具所支持,使得設(shè)計(jì)描述的移植成為可能。1.3軟件開(kāi)發(fā)工具QuartusII簡(jiǎn)介Altera的QuartusII設(shè)計(jì)軟件提供了完整的多平臺(tái)設(shè)計(jì)環(huán)境,它可以輕易滿(mǎn)足各種特定設(shè)計(jì)的需要,也是單芯片可編程系統(tǒng)(SOPC)設(shè)計(jì)的綜合性環(huán)境和SOPC開(kāi)發(fā)的基本設(shè)計(jì)工具,并為AlteraDSP開(kāi)發(fā)包進(jìn)行系統(tǒng)模型設(shè)計(jì)提供了集成綜合環(huán)境。QuartusII設(shè)計(jì)工具完全支持VHDL、Verilog的設(shè)計(jì)流程,其部嵌有VHDL、Verilog邏輯綜合器。QuartusII包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器(Analysis&Synthesis)、適配器(Fitter)、裝配器(Assembler)、時(shí)序分析器(TimingAnalyzer)、設(shè)計(jì)輔助模塊(DesignAssistant)等??梢酝ㄟ^(guò)選擇StartCompilation(Processing菜單)來(lái)運(yùn)行所有的編譯器模塊。若要單獨(dú)運(yùn)行各個(gè)模塊,可以通過(guò)選擇Start(Processing菜單),然后從Start子菜單中為模塊選擇相應(yīng)的指令。此外,還可以通過(guò)選擇CompilerTool(Tools菜單)并在CompilerTool窗口中運(yùn)行該模塊來(lái)啟動(dòng)編譯器模塊。在CompilerTool窗口中,可以打開(kāi)該模塊的設(shè)置文件或報(bào)告文件,還可以打開(kāi)其它相關(guān)窗口。QuartusII支持層次化的設(shè)計(jì),可以在一個(gè)新的編輯輸入環(huán)境中對(duì)使用不同輸入設(shè)計(jì)方式完成的模塊進(jìn)行調(diào)試,從而解決原理圖與HDL混合輸入設(shè)計(jì)的問(wèn)題。在設(shè)計(jì)輸入之后,QuartusII的編譯器將給出設(shè)計(jì)輸入的錯(cuò)誤報(bào)告。可以使用QuartusII帶有的RTLViewer觀察綜合后的RTL圖。QuartusII自動(dòng)設(shè)計(jì)的各主要處理環(huán)節(jié)和設(shè)計(jì)流程,包括設(shè)計(jì)輸入編輯、設(shè)計(jì)分析與綜合、適配、編譯文件匯編(裝配)、時(shí)序參數(shù)提取以及編程下載幾個(gè)步驟。2整體設(shè)計(jì)方案設(shè)計(jì)基于FPGA的計(jì)數(shù)器,要求顯示1個(gè)0-9999的四位計(jì)數(shù)器,可以由4個(gè)模為10的十進(jìn)制計(jì)數(shù)器級(jí)聯(lián)而成,所以可以顯示的頻率圍是1-9999HZ。因此,頻率計(jì)的功能分割成四個(gè)模塊:分頻計(jì),計(jì)數(shù)器,輸出鎖存器和譯碼顯示電路。各個(gè)模塊均用VHDL語(yǔ)言描述并用quartus2進(jìn)行仿真。本設(shè)計(jì)采用數(shù)控分頻計(jì),可以對(duì)信號(hào)實(shí)現(xiàn)不同分頻比,輸出信號(hào)作為計(jì)數(shù)器輸入。鎖存器由一個(gè)外部脈沖控制可以控制顯示部分顯示周期。當(dāng)系統(tǒng)正常工作時(shí),輸入信號(hào)標(biāo)提供頻率,經(jīng)過(guò)分頻器分頻產(chǎn)生計(jì)數(shù)信號(hào)送入計(jì)數(shù)器模塊,計(jì)數(shù)模塊對(duì)輸入的脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù)數(shù)結(jié)束后,將計(jì)數(shù)結(jié)果送入鎖存器中,保證系統(tǒng)可以穩(wěn)定顯示數(shù)據(jù),計(jì)數(shù)結(jié)果能夠顯示在七段數(shù)碼顯示管上。圖1設(shè)計(jì)方案3各個(gè)模塊的設(shè)計(jì)和功能的具體分析分頻器設(shè)計(jì)設(shè)計(jì)原理分頻器是指使輸出信號(hào)頻率為輸入信號(hào)頻率整數(shù)分之一的電子電路。在許多電子設(shè)備中如電子鐘、頻率合成器等,需要各種不同頻率的信號(hào)協(xié)同工作,常用的方法是以穩(wěn)定度高的晶體振蕩器為主振源,通過(guò)變換得到所需要的各種頻率成分,分頻器是一種主要變換手段。早期的分頻器多為正弦分頻器,隨著數(shù)字集成電路的發(fā)展,脈沖分頻器(又稱(chēng)數(shù)字分頻器)逐漸取代了正弦分頻器,即使在輸入輸出信號(hào)均為正弦波時(shí)也往往采用模數(shù)轉(zhuǎn)換-數(shù)字分頻-數(shù)模轉(zhuǎn)換的方法來(lái)實(shí)現(xiàn)分頻。正弦分頻器除在輸入信噪比低和頻率極高的場(chǎng)合已很少使用。數(shù)控分頻器的功能是在輸入端給定不同數(shù)據(jù)時(shí),將對(duì)輸入的時(shí)鐘信號(hào)有不同的分頻比,對(duì)于一個(gè)N分頻器,分頻出的時(shí)鐘周期是原時(shí)鐘周期的N倍,頻率變?yōu)樵瓉?lái)的1/N。對(duì)于一個(gè)8位計(jì)數(shù)器,如果輸入數(shù)DD,然后啟動(dòng)計(jì)數(shù)器工作,則經(jīng)過(guò)D倍的時(shí)鐘周期計(jì)數(shù)器溢出時(shí),輸出full變?yōu)楦唠娖剑僖詅ull為敏感信號(hào),對(duì)fout進(jìn)行取反操作,如此N=2D。計(jì)數(shù)一次后,再重新計(jì)數(shù),反復(fù)進(jìn)行直至輸入被賦予新值。對(duì)于數(shù)控分頻數(shù)器,裝載不同的計(jì)數(shù)初始值時(shí),會(huì)有不同頻率的溢出信號(hào),從而得到不同的輸出。數(shù)控分頻器是利用計(jì)數(shù)值可并行預(yù)置的加法計(jì)數(shù)器設(shè)計(jì)完成的。源程序及其仿真波形LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDVFISPORT(CLK:INSTD_LOGIC;DD:INSTD_LOGIC_VECTOR(7DOWNTO0);FOUT:OUTSTD_LOGIC);END;ARCHITECTUREoneOFDVFISSIGNALFULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLECNT8:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFCLK'EVENTANDCLK='1'THENIFCNT8="11111111"THENCNT8:二DD;—當(dāng)CNT8計(jì)數(shù)計(jì)滿(mǎn)時(shí),輸入數(shù)據(jù)D被同步預(yù)置給計(jì)數(shù)器CNT8FULL〈二'1';—同時(shí)使溢出標(biāo)志信號(hào)FULL輸出為高電平ELSECNT8:=CNT8+1;--否則繼續(xù)作加1計(jì)數(shù)FULL〈二'0';—且輸出溢出標(biāo)志信號(hào)FULL為低電平ENDIF;ENDIF;ENDPROCESSP_REG;P_DIV:PROCESS(FULL)VARIABLECNT2:STD_LOGIC;BEGINIFFULL'EVENTANDFULL='1'THENCNT2:=NOTCNT2;—如果溢出標(biāo)志信號(hào)FULL為高電平,D觸發(fā)器輸出取反IFCNT2='1'THENFOUT<='1';ELSEFOUT<='0';ENDIF;ENDIF;ENDPROCESSP_DIV;
圖2分頻器仿真波形RTL電路圖圖3分頻器RTL電路圖3.2計(jì)數(shù)器設(shè)計(jì)3.2.1計(jì)數(shù)器及其應(yīng)用計(jì)數(shù)是一種最簡(jiǎn)單基本的運(yùn)算,計(jì)數(shù)器就是實(shí)現(xiàn)這種運(yùn)算的邏輯電路,計(jì)數(shù)器在數(shù)字系統(tǒng)中主要是對(duì)脈沖的個(gè)數(shù)進(jìn)行計(jì)數(shù),以實(shí)現(xiàn)測(cè)量、計(jì)數(shù)和控制的功能,同時(shí)兼有分頻功能,計(jì)數(shù)器是由基本的計(jì)數(shù)單元和一些控制門(mén)所組成,計(jì)數(shù)單元?jiǎng)t由一系列具有存儲(chǔ)信息功能的各類(lèi)觸發(fā)器構(gòu)成,這些觸發(fā)器有RS觸發(fā)器、T觸發(fā)器、D觸發(fā)器及JK觸發(fā)器等。計(jì)數(shù)器在數(shù)字系統(tǒng)中應(yīng)用廣泛,如在電子計(jì)算機(jī)的控制器中對(duì)指令地址進(jìn)行計(jì)數(shù),以便順序取出下一條指令,在運(yùn)算器中作乘法、除法運(yùn)算時(shí)記下加法、減法次數(shù),又如在數(shù)字儀器中對(duì)脈沖的計(jì)數(shù)等等。計(jì)數(shù)器可以用來(lái)顯示產(chǎn)品的工作狀態(tài),一般來(lái)說(shuō)主要是用來(lái)表示產(chǎn)品已經(jīng)完成了多少份的折頁(yè)配頁(yè)工作。它主要的指標(biāo)在于計(jì)數(shù)器的位數(shù),常見(jiàn)的有3位和4位的。很顯然,3位數(shù)的計(jì)數(shù)器最大可以顯示到999,4位數(shù)的最大可以顯示到9999。在數(shù)字電子技術(shù)中應(yīng)用的最多的時(shí)序邏輯電路。計(jì)數(shù)器不僅能用于對(duì)時(shí)鐘脈沖計(jì)數(shù),還可以用于分頻、定時(shí)、產(chǎn)生節(jié)拍脈沖和脈沖序列以及進(jìn)行數(shù)字運(yùn)算等。但是并無(wú)法顯示計(jì)算結(jié)果,一般都是要通過(guò)外接LCD或LED屏才能顯示。3.2.2計(jì)數(shù)器源程序及其仿真(1)十進(jìn)制計(jì)數(shù)器加數(shù)的合法設(shè)計(jì)圍為0到9,故當(dāng)輸入的加數(shù)大于9的時(shí)候要將其統(tǒng)一變換成0本實(shí)驗(yàn)采用一個(gè)帶有異步復(fù)位和同步時(shí)鐘使能的十進(jìn)制加法計(jì)數(shù)器,這種計(jì)數(shù)器有許多實(shí)際的用處。如果rst為“1”,將對(duì)時(shí)鐘清零;如果為1,且有elk信號(hào),則允許計(jì)數(shù)器就數(shù),若計(jì)數(shù)器小于9,計(jì)數(shù)器加1,否則清零。第二個(gè)if語(yǔ)句功能是當(dāng)計(jì)數(shù)器eqi的只達(dá)到9時(shí)產(chǎn)生進(jìn)位溢出信號(hào)。libraryieee;useieee.std_logie_1164.all;useieee.std_logie_unsigned.all;entityt10isport(rst,elk,ena:instd_logie;eout:outstd_logie;outy:outstd_logie_veetor(3downto0));endt10;arehiteeturebehvoft10isbeginproeess(rst,ena,elk)variableeqi:std_logie_veetor(3downto0);beginifrst='1'theneqi:=(others=>'0');elsifelk'eventandelk='1'thenifena='1'thenifcqi<9thencqi:=cqi+1;cout<='0';elsifcqi=9thencqi:=(others=>'0');cout<='1';endif;elsifena='0'thencqi:=(others=>'0');endif;endif;outy<=cqi;endprocess;endbehv;31I51I5;-:J:>JDB0B0DP3z:<35kT馬畑5tB^OO.pT13SO.O2endbehv;31I51I5;-:J:>JDB0B0DP3z:<35kT馬畑5tB^OO.pT13SO.O2Ns4fF6VaJuaoP4H.4.二-Lm-LrLr_r_rLnr_-Lrm_nr_r_rw_rvm_m!!!!!!!!!!!!I1!丨丨?。。。。。?!E!!!!!!!1GO.Q“240.(an=3£0.(02圖4十進(jìn)制計(jì)數(shù)器仿真波形2)四位計(jì)數(shù)器下面是一含計(jì)數(shù)使能、異步復(fù)位功能的4位計(jì)數(shù)器,rst是異步清信號(hào),高電平有效。libraryieee;useieee.std_logic_1164.all;entityt10_4isport(clkk,rst,ena:instd_logic;d:outstd_logic_vector(15downto0));endentity;architectureoneoft10_4iscomponentt10port(rst,clk,ena:instd_logic;cout:outstd_logic;outy:outstd_logic_vector(3downto0));endcomponent;signale:std_logic_vector(3downto0);beginu1:cnt10portmap(clk=>clkk,rst=>rst,ena=>ena,cout=>e(0),outy=>d(3downto0));u2:cnt10portmap(clk=>e(0),rst=>rst,ena=>ena,cout=>e(1),outy=>d(7downto4));u3:cnt10portmap(clk=>e(1),rst=>rst,ena=>ena,cout=>e(2),outy=>d(11downto8));u4:cnt10portmap(clk=>e(2),rst=>rst,ena=>ena,cout=>e(3),outy=>d(15downto12));endarchitectureone;3.3鎖存器設(shè)計(jì)鎖存器及其應(yīng)用所謂鎖存器,就是輸出端的狀態(tài)不會(huì)隨輸入端的狀態(tài)變化而變化,僅在有鎖存信號(hào)時(shí)輸入的狀態(tài)被保存到輸出,直到下一個(gè)鎖存信號(hào)到來(lái)時(shí)才改變。典型的鎖存器邏輯電路是D觸發(fā)器電路。在LED和數(shù)碼管顯示方面,要維持一個(gè)數(shù)據(jù)的顯示,往往要持續(xù)的快速的刷新。尤其是在四段八位數(shù)碼管等這些要選通的顯示設(shè)備上。在人類(lèi)能夠接受的刷新頻率之,大概每三十毫秒就要刷新一次。這就大大占用了處理器的處理時(shí)間,消耗了處理器的處理能力,還浪費(fèi)了處理器的功耗。鎖存器的使用可以大大的緩解處理器在這方面的壓力。當(dāng)處理器把數(shù)據(jù)傳輸?shù)芥i存器并將其鎖存后,鎖存器的輸出引腳便會(huì)一直保持?jǐn)?shù)據(jù)狀態(tài)直到下一次鎖存新的數(shù)據(jù)為止。這樣在數(shù)碼管的顯示容不變之前,處理器的處理時(shí)間和10引腳便可以釋放??梢钥闯?處理器處理的時(shí)間僅限于顯示容發(fā)生變化的時(shí)候,這在整個(gè)顯示時(shí)間上只是非常少的一個(gè)部分。而處理器在處理完后可以有更多的時(shí)間來(lái)執(zhí)行其他的任務(wù)。這就是鎖存器在LED和數(shù)碼管顯示方面的作用:節(jié)省了寶貴的MCU時(shí)間。3.3.23.3.216位鎖存器源程序及其仿真波形libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityreg16bisport(load:instd_logic;din:instd_logic_vector(15downto0);dout:outstd_logic_vector(15downto0));endreg16b;architectureartofreg16bisbeginprocess(load,din)beginifload'eventandload二ithendout<二din;endif;endprocess;A館[1XT■Ctqrweai]BE£lIELCC5L2£l.1BE:噸卩nrI^LIncf?tea*0L?S1———————————rmdu:0:3:X£K3K:C5I65:,TIBI3K10)il):12I13>:L+X35X16:]:佇)L罔一I說(shuō)訕I(yè)dEJScatOWMJLcar-wenCOT二「wccXOWFWIIJLTOK-...5]:□-1]—b?誥呻."...U皿細(xì)-A.HKnlendarchitectureart;圖5鎖存器波形3.4顯示部分設(shè)計(jì)3.4.1七段數(shù)碼管顯示原理對(duì)于人機(jī)交互式單片機(jī)系統(tǒng)來(lái)說(shuō),不僅需要響應(yīng)用戶(hù)輸入,同時(shí)也需要將一些測(cè)控信息輸出顯示。這些顯示信息可以提供實(shí)時(shí)的數(shù)據(jù)或圖形結(jié)果,以便于掌握系統(tǒng)的狀態(tài)并進(jìn)行分析處理。目前,最常用的是LED數(shù)碼管顯示。其成本低廉、使用簡(jiǎn)便,可以顯示數(shù)字或幾個(gè)特定的字符。數(shù)碼管數(shù)碼管的一種是半導(dǎo)體發(fā)光器件,數(shù)碼管可分為七段數(shù)碼管和八段數(shù)碼管,區(qū)別在于八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元,其基本單元是發(fā)光二極管。數(shù)碼管通過(guò)對(duì)其不同的管腳輸入相對(duì)i,?:匚I;DPDPvcc?:匚I;DPDPvcc10圖6七段數(shù)碼管原理的電流,使其發(fā)亮,從而顯示出數(shù)字能夠顯示時(shí)間、日期、溫度等所有可用數(shù)字表示的參數(shù)的器件。在電器特別是家電領(lǐng)域應(yīng)用極為廣泛,如顯示屏、空調(diào)、熱水器、冰箱等等。絕大多數(shù)熱水器用的都是數(shù)碼管,其他家電也用液晶屏與熒光屏。7段共陽(yáng)極LED數(shù)碼管是由7個(gè)條形發(fā)光二極管和一個(gè)小數(shù)點(diǎn)位構(gòu)成,其引腳配置,如圖所示,其部結(jié)構(gòu),如圖所示。從圖中可以看出,其中7個(gè)發(fā)光二極管構(gòu)成字形“8”,可以用來(lái)顯示數(shù)字,另一個(gè)發(fā)光二極管構(gòu)成小數(shù)點(diǎn)。因此,這種數(shù)碼管有時(shí)也被稱(chēng)為8段LED數(shù)碼管顯示器。LED數(shù)碼管及引腳圖資料LED數(shù)碼管實(shí)際上是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上。這些段分別由字母a,b,c,d,e,f,g來(lái)表示。當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以形成我們眼睛看到的2個(gè)8數(shù)碼管字樣了。如:顯示一個(gè)“2”字,那么應(yīng)當(dāng)是a亮b亮g亮e亮d亮f不亮c不亮。表1七段LED段碼表字符共陰極共陽(yáng)極字符共陰極共陽(yáng)極03FHC0HA77H88H106HF9HB7CH83H25BHA4HC39HC6H34FHB0HD5EHA1H466H99HE79H86H56DH92HF71H8EH67DH82HH76H09H707HF8HP73H8CH87FH80HU3EHC1H96FH90H滅00HFFH在實(shí)際的應(yīng)用中,使用單個(gè)LED數(shù)碼管的情況比較少,經(jīng)常需要同時(shí)使用多個(gè)LED數(shù)碼管來(lái)顯示大于1位的數(shù)據(jù)或字符串。以4個(gè)LED數(shù)碼管并列使用的情況為例。這4個(gè)數(shù)碼管可以顯示-999~9999之間的任何數(shù)字,也可以同時(shí)顯示4個(gè)字符構(gòu)成的字符串??梢?jiàn)使用多個(gè)LED數(shù)碼管可以大大擴(kuò)展顯示的信息量。七段數(shù)碼管源程序及其仿真libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityled_controllerisport(d:instd_logic_vector(3downto0);a:outstd_logic_vector(6downto0));endled_controller;architectureoneofled_controllerisbeginprocess(d)begincasediswhen"0000"=>a<="0111111";when"0001"=>a<="0000110";when"0010"=>a〈二"1011011";when"0011"=>a〈二"1001111";when"0100"=>a〈二"1100110";when"0101"=>a〈二"1101101";when"0110"=>a〈二"1111101";when"0111"=>a〈二"0000111";when"1000"=>a〈二"1111111";when"1001"=>a〈二"1101111";when"1010"=>a<="1110111";when"1011"=>a<="1111100";when"1100"=>a<="0111001";when"1101"=>a<="1011110";when"1110"=>a<="1111001";when"1111"=>a<="1110001";whenothers=>null;endcase;endprocess;end;i嚴(yán)皿320Ons118401B80Ona900Ona1920Ons1940Ons1960OnsOn?860Ohs110D0JC血(1010X1011X110aI1仙JC你JL1111JLD阡n:GFar門(mén):!-X壬I圖7七段數(shù)碼管仿真波形4計(jì)數(shù)器頂層設(shè)計(jì)4.1.1基于VHDL的自頂向下的設(shè)計(jì)方法所謂自頂向下設(shè)計(jì)方法,就是采用可完全獨(dú)立于芯片廠商及其產(chǎn)品結(jié)構(gòu)的描述語(yǔ),在功能級(jí)對(duì)設(shè)計(jì)產(chǎn)品進(jìn)行定義,并結(jié)合功能仿真技術(shù),以確保設(shè)計(jì)的正確性,能定義完成后,利用邏輯綜合技術(shù),把功能描述轉(zhuǎn)換成某一具體結(jié)構(gòu)芯片的網(wǎng)表文件,輸出給廠商的布局布線(xiàn)器進(jìn)行布局布線(xiàn)。布局布線(xiàn)結(jié)果還可反標(biāo)回同一仿真器,進(jìn)行包括功能和時(shí)序的后驗(yàn)證,以保證布局布線(xiàn)所帶來(lái)的門(mén)延時(shí)和線(xiàn)延時(shí)不會(huì)影響設(shè)計(jì)的性能。自頂向下設(shè)計(jì)方法的優(yōu)越性是顯而易見(jiàn)的。首先,由于功能描述可完全獨(dú)立于芯片結(jié)構(gòu),在設(shè)計(jì)的最初階段,設(shè)計(jì)師可不受芯片結(jié)構(gòu)的約束,集中精力進(jìn)行產(chǎn)品設(shè)計(jì),避免了傳統(tǒng)設(shè)計(jì)方法所帶來(lái)的重新再設(shè)計(jì)風(fēng)險(xiǎn),大大縮短了設(shè)計(jì)周期。其次,設(shè)計(jì)的再利用得到保證。目前的電子產(chǎn)品正向模塊化發(fā)展,所謂模塊化就是對(duì)以往設(shè)計(jì)成果進(jìn)行修改,組合和再利用,產(chǎn)生全新的或派生設(shè)計(jì),而自頂向下設(shè)計(jì)方法的功能描述可與芯片結(jié)構(gòu)無(wú)關(guān)。因此可以以一種IP的方式進(jìn)行存檔,以便將來(lái)的重新利用。第三,設(shè)計(jì)規(guī)模大大提高。簡(jiǎn)單的語(yǔ)言描述即可完成復(fù)雜的功能,而不需要手工繪圖。第四,芯片選擇更加靈活。設(shè)計(jì)師可在較短的時(shí)間采用各種結(jié)構(gòu)芯片來(lái)完成同一功能描述,從而在設(shè)計(jì)規(guī)模、速度、芯片價(jià)格及系統(tǒng)性能要求等方面進(jìn)行平衡,選擇最佳結(jié)果。4.1.2頂層設(shè)計(jì)源文件及其仿真波形libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith;useieee.std_logic_signed;entityccnnttisport(ena0,rst0:instd_logic;clk1,clk2:instd_logic;ledout:outstd_logic_vector(27downto0);din:instd_logic_vector(7downto0);endentity;architectureoneofccnnttiscomponentDVFport(clk:instd_logic;DD:instd_logic_vector(7downto0);fout:outstd_logic;componentt10_4port(clkk,rst,ena:instd_logic;d:outstd_logic_vector(15downto0));endcomponent;componentreg16bport(load:instd_logic;din:instd_logic_vector(15downto0);dout:outstd_logic_vector(15downto0));endcomponent;componentled_controllerport(d:instd_logic_vector(3downto0);a:outstd_logic_vector(6downto0));endcomponent;signaly:std_logic;signalb,h:std_logic_vector(15downto0);signalleds:std_logic_vector(27downto0);beginu1:DVFportmap(clk=>clk1,DD=>din,fout=>y);u2:t10_4portmap(clkk=>y,rst=>rst0,ena=>ena0,d=>b);u3:reg16bportmap(load=>clk2,din=>b(15downto0),dout=>h(15downto0));u4:led_controllerportmap(d=>h(3downto0),a=>leds(6downto0));u5:led_controllerportmap(d=>h(7downto4),a=>leds(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)銷(xiāo)售積極心態(tài)培訓(xùn)
- 建材單店開(kāi)業(yè)活動(dòng)策劃
- 模擬企業(yè)內(nèi)部培訓(xùn)
- 廣東省廣州市天河區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期語(yǔ)文期中測(cè)試卷(含解析)
- T-ZFDSA 04-2024 羊肉草果粥制作標(biāo)準(zhǔn)
- 甘肅省酒泉市金塔縣等四地2024-2025學(xué)年高二上學(xué)期11月期中物理試題
- 信息技術(shù)(第2版)(拓展模塊)拓展模塊7 教案修改
- 2024年湖北省武漢市中考英語(yǔ)試題含解析
- 幼兒園幼兒安全教育教案9篇
- 婚禮攝影技巧與創(chuàng)意-婚禮攝影師工作坊
- HG∕T 2469-2011 立式砂磨機(jī) 標(biāo)準(zhǔn)
- 化工企業(yè)重大事故隱患判定標(biāo)準(zhǔn)培訓(xùn)考試卷(后附答案)
- 河南省南陽(yáng)市2023-2024學(xué)年高一上學(xué)期期中考試英語(yǔ)試題
- 上海市信息科技學(xué)科初中學(xué)業(yè)考試試卷及評(píng)分標(biāo)準(zhǔn)
- 2024考研英語(yǔ)二試題及答案解析
- 2023遼寧公務(wù)員考試《行測(cè)》真題(含答案及解析)
- 《咖啡知識(shí)》課件
- 冀教版數(shù)學(xué)七年級(jí)上下冊(cè)知識(shí)點(diǎn)總結(jié)
- 2024年貴州退役軍人事務(wù)廳事業(yè)單位筆試真題
- 高中英語(yǔ)校本教材《高中英語(yǔ)寫(xiě)作指導(dǎo)》校本課程綱要
- 2024年九年級(jí)化學(xué)上冊(cè) 實(shí)驗(yàn)3《燃燒的條件》教學(xué)設(shè)計(jì) (新版)湘教版
評(píng)論
0/150
提交評(píng)論