



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于 FPGA的計(jì)數(shù)器的程序設(shè)計(jì)方案1.1FPGA簡(jiǎn)介FPGA(Field Progrmable Gate Array),即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。自1985 年Xilinx 公司推出第一片中大規(guī)模現(xiàn)場(chǎng)可編程邏輯器件 (FP2GA) 至今,FPGA 已經(jīng)歷了十幾年的歷。在這十幾年的過(guò)程中 , 可編程器件有了驚人的發(fā)展 : 從最初的 1200 個(gè)可利用門 , 到今天的 25 萬(wàn)可利用門 , 規(guī)模增大了 20
2、0 多倍 ; FPGA 供應(yīng)商也從 Xilinx 的一枝獨(dú)秀 , 到今天近 20 個(gè)廠商的分庭抗?fàn)?;FPGA 從單一的基于SRAM結(jié)構(gòu)到今天各種結(jié)構(gòu)類型的出現(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ó)內(nèi)眾多的科研單位來(lái)說(shuō), 小批量、多品種的產(chǎn)品需求, 使得 FPGA成為首選。1.2硬件描述語(yǔ)言VHDL特點(diǎn)功能強(qiáng)大、設(shè)計(jì)靈活。VHDL具有
3、功能強(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編寫的源代碼,因?yàn)閂HDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計(jì)。強(qiáng)
4、大的系統(tǒng)硬件描述能力。VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級(jí)電路,又可以描述門級(jí)電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來(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è)
5、計(jì)描述可以被不同的工具所支持,使得設(shè)計(jì)描述的移植成為可能。1.3軟件開(kāi)發(fā)工具Quartus II簡(jiǎn)介Altera 的Quartus II設(shè)計(jì)軟件提供了完整的多平臺(tái)設(shè)計(jì)環(huán)境,它可以輕易滿足各種特定設(shè)計(jì)的需要,也是單芯片可編程系統(tǒng)(SOPC) 設(shè)計(jì)的綜合性環(huán)境和 SOPC開(kāi)發(fā)的基本設(shè)計(jì)工具,并為Altera DSP 開(kāi)發(fā)包進(jìn)行系統(tǒng)模型設(shè)計(jì)提供了集成綜合環(huán)境。Quartus II設(shè)計(jì)工具完全支持 VHDL、 Verilog 的設(shè)計(jì)流程,其內(nèi)部嵌有VHDL、Verilog 邏輯綜合器。Quartus II包括模塊化的編譯器。編譯器包括的功能模塊有分析/ 綜合器( Analysis Synthesis
6、)、適配器( Fitter )、裝配器 (Assembler) 、時(shí)序分析器(Timing Analyzer)、設(shè)計(jì)輔助模塊 (Design Assistant)等??梢酝ㄟ^(guò)選擇StartCompilation(Processing菜單)來(lái)運(yùn)行所有的編譯器模塊。若要單獨(dú)運(yùn)行各個(gè)模塊,可以通過(guò)選擇Start(Processing菜單),然后從Start子菜單中為模塊選擇相應(yīng)的指令。此外,還可以通過(guò)選擇Compiler Tool(Tools菜單)并在Compiler Tool 窗口中運(yùn)行該模塊來(lái)啟動(dòng)編譯器模塊。在Compiler Tool窗口中,可以打開(kāi)該模塊的設(shè)置文件或報(bào)告文件,還可以打開(kāi)其它相
7、關(guān)窗口。Quartus II支持層次化的設(shè)計(jì),可以在一個(gè)新的編輯輸入環(huán)境中對(duì)使用不同輸入設(shè)計(jì)方式完成的模塊進(jìn)行調(diào)試,從而解決原理圖與 HDL混合輸入設(shè)計(jì)的問(wèn)題。在設(shè)計(jì)輸入之后, Quartus II 的編譯器將給出設(shè)計(jì)輸入的錯(cuò)誤報(bào)告??梢允褂?Quartus II 帶有的 RTL Viewer 觀察綜合后的 RTL圖。 Quartus II 自動(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ù)
8、器級(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ù)碼顯示管上。分頻計(jì)計(jì)鎖顯示電clk11數(shù)存路ena0器器rest0clk2圖 1設(shè)計(jì)
9、方案3 各個(gè)模塊的設(shè)計(jì)和功能的具體分析3.1分頻器設(shè)計(jì)3.1.1設(shè)計(jì)原理分頻器是指使輸出信號(hào)頻率為輸入信號(hào)頻率整數(shù)分之一的電子電路。在許多電子設(shè)備中如電子鐘、頻率合成器等,需要各種不同頻率的信號(hào)協(xié)同工作,常用的方法是以穩(wěn)定度高的晶體振蕩器為主振源,通過(guò)變換得到所需要的各種頻率成分,分頻器是一種主要變換手段。早期的分頻器多為正弦分頻器,隨著數(shù)字集成電路的發(fā)展,脈沖分頻器(又稱數(shù)字分頻器)逐漸取代了正弦分頻器,即使在輸入輸出信號(hào)均為正弦波時(shí)也往往采用模數(shù)轉(zhuǎn)換數(shù)字分頻數(shù)模轉(zhuǎn)換的方法來(lái)實(shí)現(xiàn)分頻。正弦分頻器除在輸入信噪比低和頻率極高的場(chǎng)合已很少使用。數(shù)控分頻器的功能是在輸入端給定不同數(shù)據(jù)時(shí),將對(duì)輸入的時(shí)
10、鐘信號(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)楦唠娖?,再?full 為敏感信號(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ì)完成的。3.1.2源程序及其仿真波形LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.
11、ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF ISPORT (CLK : IN STD_LOGIC;DD : IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT : OUT STD_LOGIC );END;ARCHITECTURE one OF DVF ISSIGNALFULL : STD_LOGIC;BEGINP_REG: PROCESS(CLK)VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF CLKEVENT AND CLK = 1 THENIF CNT8 =
12、11111111 THENCNT8 := DD; - 當(dāng) CNT8計(jì)數(shù)計(jì)滿時(shí),輸入數(shù)據(jù) D被同步預(yù)置給計(jì)數(shù)器 CNT8 FULL = 1; - 同時(shí)使溢出標(biāo)志信號(hào) FULL輸出為高電平 ELSE CNT8 := CNT8 + 1; - 否則繼續(xù)作加 1 計(jì)數(shù)FULL = 0; -且輸出溢出標(biāo)志信號(hào)FULL為低電平END IF;END IF;END PROCESS P_REG ;P_DIV: PROCESS(FULL)VARIABLE CNT2 : STD_LOGIC;BEGINIF FULLEVENT AND FULL = 1 THENCNT2 := NOT CNT2; - 如果溢出標(biāo)志信號(hào)
13、FULL為高電平, D 觸發(fā)器輸出取反 IF CNT2 = 1 THEN FOUT = 1; ELSE FOUT 0);elsif clkevent and clk=1 thenif ena =1 thenif cqi 9 then cqi:=cqi+1;cout0);cout0);end if;end if;outy clkk,rst=rst,ena=ena,cout=e(0),outy=d(3 downto 0);u2:cnt10 port map(clk=e(0),rst=rst,ena=ena,cout=e(1),outy=d(7 downto 4);u3:cnt10 port map
14、(clk=e(1),rst=rst,ena=ena,cout=e(2),outy=d(11 downto 8);u4:cnt10 port map(clk=e(2),rst=rst,ena=ena,cout=e(3),outy=d(15 downto 12);end architecture one;3.3鎖存器設(shè)計(jì)3.3.1鎖存器及其應(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ù)的快速的刷新。尤其是在四段八
15、位數(shù)碼管等這些要選通的顯示設(shè)備上。在人類能夠接受的刷新頻率之內(nèi),大概每三十毫秒就要刷新一次。這就大大占用了處理器的處理時(shí)間,消耗了處理器的處理能力,還浪費(fèi)了處理器的功耗。鎖存器的使用可以大大的緩解處理器在這方面的壓力。當(dāng)處理器把數(shù)據(jù)傳輸?shù)芥i存器并將其鎖存后,鎖存器的輸出引腳便會(huì)一直保持?jǐn)?shù)據(jù)狀態(tài)直到下一次鎖存新的數(shù)據(jù)為止。這樣在數(shù)碼管的顯示內(nèi)容不變之前,處理器的處理時(shí)間和 IO 引腳便可以釋放??梢钥闯?,處理器處理的時(shí)間僅限于顯示內(nèi)容發(fā)生變化的時(shí)候,這在整個(gè)顯示時(shí)間上只是非常少的一個(gè)部分。而處理器在處理完后可以有更多的時(shí)間來(lái)執(zhí)行其他的任務(wù)。這就是鎖存器在LED和數(shù)碼管顯示方面的作用: 節(jié)省了寶貴
16、的 MCU時(shí)間。3.3.216位鎖存器源程序及其仿真波形library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity reg16b isport (load: in std_logic;din: in std_logic_vector(15 downto 0);dout: out std_logic_vector(15 downto 0);end reg16b;architecture art of reg16b isbeginprocess(load,din)beginif loadevent
17、and load=1thendout a a a a a a a a a a a a a a a a null;end case;end process;end;圖 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)表文件, 輸出給廠商的布局布線器進(jìn)行布局布線。布局布線結(jié)果還可反標(biāo)回同一仿真器, 進(jìn)行包括功能和時(shí)序的后驗(yàn)證 , 以保證布局
18、布線所帶來(lái)的門延時(shí)和線延時(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ù)雜的功能 , 而不需要手工繪
19、圖。第四,芯片選擇更加靈活。設(shè)計(jì)師可在較短的時(shí)間內(nèi)采用各種結(jié)構(gòu)芯片來(lái)完成同一功能描述 , 從而在設(shè)計(jì)規(guī)模、速度、芯片價(jià)格及系統(tǒng)性能要求等方面進(jìn)行平衡 , 選擇最佳結(jié)果。4.1.2 頂層設(shè)計(jì)源文件及其仿真波形library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith;use ieee.std_logic_signed;entity ccnntt isport(ena0,rst0:in std_logic;clk1,clk2:in std_logic;ledout
20、:out std_logic_vector(27 downto 0);din: in std_logic_vector(7 downto 0);end entity;architecture one of ccnntt iscomponent DVFport (clk:in std_logic;DD : in std_logic_vector(7 downto 0);fout: out std_logic;component cnt10_4port(clkk,rst,ena:in std_logic;d:out std_logic_vector(15 downto 0);end compone
21、nt;component reg16bport(load: in std_logic;din : in std_logic_vector(15 downto 0);dout: out std_logic_vector(15 downto 0);end component;component led_controllerport(d:in std_logic_vector(3 downto 0);a:out std_logic_vector(6 downto 0);end component;signal y:std_logic;signal b,h:std_logic_vector(15 do
22、wnto 0);signal leds:std_logic_vector(27 downto 0);beginu1: DVF port map(clk=clk1,DD=din,fout=y);u2: cnt10_4 port map(clkk=y,rst=rst0, ena=ena0, d=b);u3: reg16b port map(load=clk2,din=b(15 downto 0),dout=h(15 downto 0);u4:led_controller port map(d=h(3 downto 0),a=leds(6 downto 0);u5: led_controller port map(d=h(7 downto 4),a=leds(13 downto 7);u6: led_controller port map(d=h(11 downto 8),a=leds(20 downto 14);u7: led_controller port map(d=h(15 downto 12),a=leds(27 downto 21);ledout=leds;end;圖 8總程序仿真波形
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 美術(shù)課件兒童牙膏
- 美術(shù)大象介紹課件
- 家政行業(yè)知識(shí)培訓(xùn)課件
- 露天停車場(chǎng)消防安全知識(shí)
- 生產(chǎn)安全培訓(xùn)課程
- 安全生產(chǎn)中的三違
- 2025年模糊控制變頻空調(diào)器項(xiàng)目申請(qǐng)報(bào)告模板
- 2025年遠(yuǎn)傳燃?xì)獗眄?xiàng)目提案報(bào)告模范
- 網(wǎng)頁(yè)課件比賽獎(jiǎng)品小學(xué)生
- 2025至2030中國(guó)導(dǎo)電碳紙市場(chǎng)風(fēng)險(xiǎn)評(píng)估與未來(lái)前景展望報(bào)告
- 杭州市高級(jí)中學(xué)2022年高一新生素質(zhì)測(cè)試(分班考)模擬試卷
- IPC-A-610國(guó)際標(biāo)準(zhǔn)中英文對(duì)照(doc 17)
- JJF(建材)110-2019水泥雷氏夾膨脹測(cè)定儀校準(zhǔn)規(guī)范-(高清現(xiàn)行)
- 《納尼亞傳奇》閱讀交流(課堂PPT)
- 某航空公司教學(xué)材料之十八案例
- 縣級(jí)課題研究過(guò)程記錄
- 預(yù)制場(chǎng)(梁場(chǎng))建設(shè)方案
- 專業(yè)課程融入思政工作的教學(xué)設(shè)計(jì)理念與方法(課堂PPT)
- 安川CDBR系列 制動(dòng)單元 用戶手冊(cè)_圖文
- 長(zhǎng)沙不動(dòng)產(chǎn)登記申請(qǐng)書
- 鍋爐拆除施工方案(最新)
評(píng)論
0/150
提交評(píng)論