版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于 FPGA的計數(shù)器的程序設(shè)計方案1.1FPGA簡介FPGA(Field Progrmable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。自1985 年Xilinx 公司推出第一片中大規(guī)?,F(xiàn)場可編程邏輯器件 (FP2GA) 至今,FPGA 已經(jīng)歷了十幾年的歷。在這十幾年的過程中 , 可編程器件有了驚人的發(fā)展 : 從最初的 1200 個可利用門 , 到今天的 25 萬可利用門 , 規(guī)模增大了 20
2、0 多倍 ; FPGA 供應(yīng)商也從 Xilinx 的一枝獨秀 , 到今天近 20 個廠商的分庭抗?fàn)?;FPGA 從單一的基于SRAM結(jié)構(gòu)到今天各種結(jié)構(gòu)類型的出現(xiàn) , 都充分體現(xiàn)了可編程器件這一巨大市場的吸引力。FPGA不僅可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問題, 而且其開發(fā)周期短、開發(fā)軟件投入少、芯片價格不斷降低。由于目前電子產(chǎn)品生命周期相對縮短, 相近功能產(chǎn)品的派生設(shè)計增多等特點 , 促使 FPGA越來越多地取代了 ASIC 的市場 , 特別是對國內(nèi)眾多的科研單位來說, 小批量、多品種的產(chǎn)品需求, 使得 FPGA成為首選。1.2硬件描述語言VHDL特點功能強(qiáng)大、設(shè)計靈活。VHDL具有
3、功能強(qiáng)大的語言結(jié)構(gòu),可以用簡潔明確的源代碼來描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計描述功能,層層細(xì)化,最后可直接生成電路級描述。 VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計,這是其他硬件描述語言所不能比擬的。VHDL還支持各種設(shè)計方法,既支持自底向上的設(shè)計,又支持自頂向下的設(shè)計;既支持模塊化設(shè)計,又支持層次化設(shè)計。支持廣泛、易于修改。由于 VHDL已經(jīng)成為 IEEE 標(biāo)準(zhǔn)所規(guī)范的硬件描述語言,目前大多數(shù)EDA工具幾乎都支持 VHDL,這為 VHDL 的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計過程中,主要的設(shè)計文件是用VHDL編寫的源代碼,因為VHDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計。強(qiáng)
4、大的系統(tǒng)硬件描述能力。VHDL具有多層次的設(shè)計描述功能,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設(shè)計人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。獨立于器件的設(shè)計、與工藝無關(guān)。設(shè)計人員用VHDL進(jìn)行設(shè)計時,不需要首先考慮選擇完成設(shè)計的器件,就可以集中精力進(jìn)行設(shè)計的優(yōu)化。當(dāng)設(shè)計描述完成后,可以用多種不同的器件結(jié)構(gòu)來實現(xiàn)其功能。很強(qiáng)的移植能力。VHDL是一種標(biāo)準(zhǔn)化的硬件描述語言,同一個設(shè)
5、計描述可以被不同的工具所支持,使得設(shè)計描述的移植成為可能。1.3軟件開發(fā)工具Quartus II簡介Altera 的Quartus II設(shè)計軟件提供了完整的多平臺設(shè)計環(huán)境,它可以輕易滿足各種特定設(shè)計的需要,也是單芯片可編程系統(tǒng)(SOPC) 設(shè)計的綜合性環(huán)境和 SOPC開發(fā)的基本設(shè)計工具,并為Altera DSP 開發(fā)包進(jìn)行系統(tǒng)模型設(shè)計提供了集成綜合環(huán)境。Quartus II設(shè)計工具完全支持 VHDL、 Verilog 的設(shè)計流程,其內(nèi)部嵌有VHDL、Verilog 邏輯綜合器。Quartus II包括模塊化的編譯器。編譯器包括的功能模塊有分析/ 綜合器( Analysis Synthesis
6、)、適配器( Fitter )、裝配器 (Assembler) 、時序分析器(Timing Analyzer)、設(shè)計輔助模塊 (Design Assistant)等。可以通過選擇StartCompilation(Processing菜單)來運行所有的編譯器模塊。若要單獨運行各個模塊,可以通過選擇Start(Processing菜單),然后從Start子菜單中為模塊選擇相應(yīng)的指令。此外,還可以通過選擇Compiler Tool(Tools菜單)并在Compiler Tool 窗口中運行該模塊來啟動編譯器模塊。在Compiler Tool窗口中,可以打開該模塊的設(shè)置文件或報告文件,還可以打開其它相
7、關(guān)窗口。Quartus II支持層次化的設(shè)計,可以在一個新的編輯輸入環(huán)境中對使用不同輸入設(shè)計方式完成的模塊進(jìn)行調(diào)試,從而解決原理圖與 HDL混合輸入設(shè)計的問題。在設(shè)計輸入之后, Quartus II 的編譯器將給出設(shè)計輸入的錯誤報告??梢允褂?Quartus II 帶有的 RTL Viewer 觀察綜合后的 RTL圖。 Quartus II 自動設(shè)計的各主要處理環(huán)節(jié)和設(shè)計流程,包括設(shè)計輸入編輯、設(shè)計分析與綜合、適配、編譯文件匯編(裝配)、時序參數(shù)提取以及編程下載幾個步驟。2 整體設(shè)計方案設(shè)計基于 FPGA的計數(shù)器,要求顯示1 個 0-9999 的四位計數(shù)器,可以由4 個模為 10 的十進(jìn)制計數(shù)
8、器級聯(lián)而成,所以可以顯示的頻率范圍是 1-9999HZ。因此,頻率計的功能分割成四個模塊:分頻計,計數(shù)器,輸出鎖存器和譯碼顯示電路。各個模塊均用 VHDL語言描述并用 quartus2 進(jìn)行仿真。本設(shè)計采用數(shù)控分頻計,可以對信號實現(xiàn)不同分頻比,輸出信號作為計數(shù)器輸入。鎖存器由一個外部脈沖控制可以控制顯示部分顯示周期。當(dāng)系統(tǒng)正常工作時,輸入信號標(biāo)提供頻率,經(jīng)過分頻器分頻,產(chǎn)生計數(shù)信號送入計數(shù)器模塊,計數(shù)模塊對輸入的脈沖個數(shù)進(jìn)行計數(shù)數(shù)結(jié)束后,將計數(shù)結(jié)果送入鎖存器中,保證系統(tǒng)可以穩(wěn)定顯示數(shù)據(jù),計數(shù)結(jié)果能夠顯示在七段數(shù)碼顯示管上。分頻計計鎖顯示電clk11數(shù)存路ena0器器rest0clk2圖 1設(shè)計
9、方案3 各個模塊的設(shè)計和功能的具體分析3.1分頻器設(shè)計3.1.1設(shè)計原理分頻器是指使輸出信號頻率為輸入信號頻率整數(shù)分之一的電子電路。在許多電子設(shè)備中如電子鐘、頻率合成器等,需要各種不同頻率的信號協(xié)同工作,常用的方法是以穩(wěn)定度高的晶體振蕩器為主振源,通過變換得到所需要的各種頻率成分,分頻器是一種主要變換手段。早期的分頻器多為正弦分頻器,隨著數(shù)字集成電路的發(fā)展,脈沖分頻器(又稱數(shù)字分頻器)逐漸取代了正弦分頻器,即使在輸入輸出信號均為正弦波時也往往采用模數(shù)轉(zhuǎn)換數(shù)字分頻數(shù)模轉(zhuǎn)換的方法來實現(xiàn)分頻。正弦分頻器除在輸入信噪比低和頻率極高的場合已很少使用。數(shù)控分頻器的功能是在輸入端給定不同數(shù)據(jù)時,將對輸入的時
10、鐘信號有不同的分頻比,對于一個 N分頻器,分頻出的時鐘周期是原時鐘周期的 N倍,頻率變?yōu)樵瓉淼?1/N。對于一個 8 位計數(shù)器,如果輸入數(shù) DD,然后啟動計數(shù)器工作,則經(jīng)過 D 倍的時鐘周期計數(shù)器溢出時,輸出 full 變?yōu)楦唠娖?,再?full 為敏感信號,對 fout 進(jìn)行取反操作,如此 N=2D。計數(shù)一次后,再重新計數(shù),反復(fù)進(jìn)行直至輸入被賦予新值。對于數(shù)控分頻數(shù)器,裝載不同的計數(shù)初始值時,會有不同頻率的溢出信號,從而得到不同的輸出。數(shù)控分頻器是利用計數(shù)值可并行預(yù)置的加法計數(shù)器設(shè)計完成的。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計數(shù)計滿時,輸入數(shù)據(jù) D被同步預(yù)置給計數(shù)器 CNT8 FULL = 1; - 同時使溢出標(biāo)志信號 FULL輸出為高電平 ELSE CNT8 := CNT8 + 1; - 否則繼續(xù)作加 1 計數(shù)FULL = 0; -且輸出溢出標(biā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)志信號
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è)計3.3.1鎖存器及其應(yīng)用所謂鎖存器,就是輸出端的狀態(tài)不會隨輸入端的狀態(tài)變化而變化,僅在有鎖存信號時輸入的狀態(tài)被保存到輸出,直到下一個鎖存信號到來時才改變。典型的鎖存器邏輯電路是 D 觸發(fā)器電路。在 LED和數(shù)碼管顯示方面,要維持一個數(shù)據(jù)的顯示,往往要持續(xù)的快速的刷新。尤其是在四段八
15、位數(shù)碼管等這些要選通的顯示設(shè)備上。在人類能夠接受的刷新頻率之內(nèi),大概每三十毫秒就要刷新一次。這就大大占用了處理器的處理時間,消耗了處理器的處理能力,還浪費了處理器的功耗。鎖存器的使用可以大大的緩解處理器在這方面的壓力。當(dāng)處理器把數(shù)據(jù)傳輸?shù)芥i存器并將其鎖存后,鎖存器的輸出引腳便會一直保持?jǐn)?shù)據(jù)狀態(tài)直到下一次鎖存新的數(shù)據(jù)為止。這樣在數(shù)碼管的顯示內(nèi)容不變之前,處理器的處理時間和 IO 引腳便可以釋放??梢钥闯?,處理器處理的時間僅限于顯示內(nèi)容發(fā)生變化的時候,這在整個顯示時間上只是非常少的一個部分。而處理器在處理完后可以有更多的時間來執(zhí)行其他的任務(wù)。這就是鎖存器在LED和數(shù)碼管顯示方面的作用: 節(jié)省了寶貴
16、的 MCU時間。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 計數(shù)器頂層設(shè)計4.1.1基于 VHDL的自頂向下的設(shè)計方法所謂自頂向下設(shè)計方法, 就是采用可完全獨立于芯片廠商及其產(chǎn)品結(jié)構(gòu)的描述語,在功能級對設(shè)計產(chǎn)品進(jìn)行定義, 并結(jié)合功能仿真技術(shù) , 以確保設(shè)計的正確性 , 能定義完成后 , 利用邏輯綜合技術(shù) , 把功能描述轉(zhuǎn)換成某一具體結(jié)構(gòu)芯片的網(wǎng)表文件, 輸出給廠商的布局布線器進(jìn)行布局布線。布局布線結(jié)果還可反標(biāo)回同一仿真器, 進(jìn)行包括功能和時序的后驗證 , 以保證布局
18、布線所帶來的門延時和線延時不會影響設(shè)計的性能。自頂向下設(shè)計方法的優(yōu)越性是顯而易見的。首先, 由于功能描述可完全獨立于芯片結(jié)構(gòu) , 在設(shè)計的最初階段 , 設(shè)計師可不受芯片結(jié)構(gòu)的約束, 集中精力進(jìn)行產(chǎn)品設(shè)計 ,避免了傳統(tǒng)設(shè)計方法所帶來的重新再設(shè)計風(fēng)險, 大大縮短了設(shè)計周期。其次, 設(shè)計的再利用得到保證。目前的電子產(chǎn)品正向模塊化發(fā)展,所謂模塊化就是對以往設(shè)計成果進(jìn)行修改 , 組合和再利用 , 產(chǎn)生全新的或派生設(shè)計, 而自頂向下設(shè)計方法的功能描述可與芯片結(jié)構(gòu)無關(guān)。因此可以以一種IP 的方式進(jìn)行存檔 , 以便將來的重新利用。第三 , 設(shè)計規(guī)模大大提高。簡單的語言描述即可完成復(fù)雜的功能 , 而不需要手工繪
19、圖。第四,芯片選擇更加靈活。設(shè)計師可在較短的時間內(nèi)采用各種結(jié)構(gòu)芯片來完成同一功能描述 , 從而在設(shè)計規(guī)模、速度、芯片價格及系統(tǒng)性能要求等方面進(jìn)行平衡 , 選擇最佳結(jié)果。4.1.2 頂層設(shè)計源文件及其仿真波形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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自無證建房出售合同(2篇)
- 粘土冰淇淋課件
- 語文單據(jù) 課件
- 專題01 字音字形詞語(考點串講)-七年級語文上學(xué)期期末考點大串講(統(tǒng)編版2024·五四學(xué)制)
- 第一講 成長趣事(看圖寫話教學(xué))-二年級語文上冊(統(tǒng)編版)
- 第七講 做手工(看圖寫話教學(xué))-二年級語文上冊(統(tǒng)編版)
- 西京學(xué)院《應(yīng)用統(tǒng)計學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《數(shù)字電子技術(shù)》2021-2022學(xué)年期末試卷
- 西京學(xué)院《機(jī)械工程測試技術(shù)》2021-2022學(xué)年第一學(xué)期期末試卷
- 沖突 作文 課件
- 工程造價咨詢服務(wù)質(zhì)量承諾及保證措施
- 最新種植新病歷
- 水聯(lián)動試車方案(共33頁)
- 高效電池片(TOPCon)生產(chǎn)項目可行性研究報告模板-提供甲乙丙資質(zhì)資信
- INPLAN操作培訓(xùn)PPT課件
- VB和Oracle的鏈接
- 代理報關(guān)委托書
- 小學(xué)美術(shù)四年級質(zhì)量檢測試卷(共3頁)
- 青少年科學(xué)調(diào)查體驗活動分析報告
- 大班科學(xué)四季的變化ppt課件
- 建設(shè)部211文件
評論
0/150
提交評論