Verilog Hdl 語言設(shè)計點陣_第1頁
Verilog Hdl 語言設(shè)計點陣_第2頁
Verilog Hdl 語言設(shè)計點陣_第3頁
Verilog Hdl 語言設(shè)計點陣_第4頁
Verilog Hdl 語言設(shè)計點陣_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、四川工程職業(yè)技術(shù)學(xué)院Verilog Hdl 語言設(shè)計點陣報告冊班級:2014通信技術(shù)1班姓名:劉巧琳指導(dǎo)老師:郭欣時間:目錄一、摘要2二、緒言4三、點陣基本知識7四、電路分析8五、設(shè)計方案10六、程序設(shè)計12七、電路仿真圖23實驗總結(jié)26一、 摘要本論文主要闡述了基于FPGA設(shè)計16*16的點陣,讓點陣靜態(tài)或動態(tài)顯示一個字或者一段話,LED顯示屏如今在生活中應(yīng)用廣泛,各大廣告商利用LED顯示屏的便捷性宣傳產(chǎn)品。這次實驗需要利用EDA工具軟件QuartusII編寫并調(diào)試系統(tǒng)的Verilog HDL程序。并且每一個模塊都在這個軟件下進(jìn)行了仿真。系統(tǒng)的Verilog HDL程序編好過后先在實驗室的E

2、DA實驗箱上下載調(diào)試、驗證。關(guān)鍵詞:LED、FPGA、Verilog HDL、點陣AbstractThis paper mainly elaborated based on the FPGA design of 16 * 16 lattice, let lattice static or dynamic display a word or paragraph, LED display now in life are widely used, each big advertisers use LED display of the convenience of promotional produc

3、ts. This design needs to use the EDA tool software Verilog to write and debug the system's HDL QuartusII program. And each module is simulated in the software. The system of the HDL Verilog program is compiled in the laboratory after the first EDA test box to download and debug, verify.Keyword:L

4、ED、FPGA、Verilog HDL、lattice二、緒言目前,在機(jī)場、飯店等很多公共場所都能看到美觀、實用的電子顯示屏,它以高清、節(jié)能、控制簡單、壽命長、耐沖擊、性能穩(wěn)定、成本低廉、環(huán)保等優(yōu)勢迅速占領(lǐng)市場。隨著顯示屏尺寸的擴(kuò)大、亮度要求的增加,數(shù)據(jù)傳輸和控制的時間也會增加,如果仍然采用單片機(jī)作為控制器,將會影響顯示效果,嚴(yán)重時可能無法正常工作,然而,這時若采用可編程邏輯器件作為控制器,則可解決這一難題。一方面,隨著微電子技術(shù)的發(fā)展和生產(chǎn)工藝的提高,器件的性能大有很大的提高,出現(xiàn)了高性能的現(xiàn)場可編程邏輯器件(FPGA),F(xiàn)PGA具有處理速度高、可靠性高、高容量和集成度高等特點,在大屏幕顯示

5、系統(tǒng)設(shè)計中使用FPGA可以滿足現(xiàn)在的LED大屏幕系統(tǒng)對于處理視頻數(shù)據(jù)的高速要求,同時改善電路的性能,縮小系統(tǒng)的體積。設(shè)計中使用硬件描述語言進(jìn)行電路設(shè)計,可以隨時根據(jù)設(shè)計需要進(jìn)行修改,而不必對硬件進(jìn)行修改,它使系統(tǒng)的設(shè)計和調(diào)試非常方便,大大的縮短了產(chǎn)品的開發(fā)周期,降低了開發(fā)成本,也方便以后的系統(tǒng)升級。       50年前人們已經(jīng)了解半導(dǎo)體材料可產(chǎn)生光線的基本知識,第一個商用二極管產(chǎn)生于1960年。LED是英文light emitting diode(發(fā)光二極管)的縮寫,它的基本結(jié)構(gòu)是一塊電致發(fā)光的半導(dǎo)體材

6、料,置于一個有引線的架子上,然后四周用環(huán)氧樹脂密封,即固體封裝,所以能起到保護(hù)內(nèi)部芯線的作用,所以LED的抗震性能好。  我國LED顯示屏市場起步較早,市場上出現(xiàn)了一批具有很強(qiáng)實力的LED顯示屏生產(chǎn)廠商。目前LED顯示屏已經(jīng)廣泛應(yīng)用到車站、銀行、證券、醫(yī)院。在LED需求量上,LED顯示屏僅次于LED指示燈名列第二,占到LED整體銷量的23.1%。由于用于顯示屏的LED在亮度和壽命上的要求高于LED指示燈,平均價格在指示燈LED之上,這就導(dǎo)致顯示屏用LED市場規(guī)模達(dá)到32.4億元,超過指示燈位居榜首成為LED的主要應(yīng)用市場。  我國LED顯示屏市場起步較早

7、,市場上出現(xiàn)了一批具有很強(qiáng)實力的LED顯示屏生產(chǎn)廠商。目前LED顯示屏已經(jīng)廣泛應(yīng)用到車站、銀行、證券、醫(yī)院。在LED需求量上,LED顯示屏僅次于LED指示燈名列第二,占到LED整體銷量的23.1%。由于用于顯示屏的LED在亮度和壽命上的要求高于LED指示燈,平均價格在指示燈LED之上,這就導(dǎo)致顯示屏用LED市場規(guī)模達(dá)到32.4億元,超過指示燈位居榜首成為LED的主要應(yīng)用市場。憑借著獨特優(yōu)勢,LED全彩顯示屏廣泛應(yīng)用在體育場館、市政廣場、演唱會、車站、機(jī)場等場所。   LED早已應(yīng)用在以手機(jī)為主的小尺寸液晶面板背光市場中,手機(jī)產(chǎn)量的持續(xù)增長帶動了背光源市場的快速發(fā)展

8、。特別是2003年彩屏手機(jī)的出現(xiàn)更是推動白光LED市場的快速發(fā)展。但隨著手機(jī)產(chǎn)量進(jìn)入平穩(wěn)增長階段以及技術(shù)提升導(dǎo)致用于手機(jī)液晶面板背光源LED數(shù)量減少,使得LED在手機(jī)背光源中用量增速放緩,2005年背光源用LED數(shù)量超過12億只,未來幾年增長率也將保持在個位數(shù)。數(shù)量增速的放緩加上平均價格的不斷下降,最終導(dǎo)致小尺寸背光源市場增長乏力,同時,中大尺寸背光源市場雖為廠商新寵,但在2006年還不能形成規(guī)模。在上述兩個因素的影響下,背光源市場將在2006年出現(xiàn)1%的負(fù)增長。2005年背光源市場規(guī)模超過15億元。      三、點陣基本知識16*

9、16掃描LED點陣只要其對應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點亮,則Y0=1,X0=0即可。應(yīng)用時限流電阻可以放在X軸或Y軸。它有16個共陰極輸出端口,每個共陰極對應(yīng)有16個LED顯示燈。 LED點陣每個點都有一個紅色的發(fā)光二極管。點陣內(nèi)的二極管間的連接都是行共陽,列共陰。本實驗采用共陰,當(dāng)二極管的共陽極為高電平,共陰極為低電平時,所接點發(fā)光;反之處于截止?fàn)顟B(tài),不放光。數(shù)字電路。(圖1-7所示)四、電路分析本設(shè)計采用16×16LED點陣屏由4塊8×8LED點陣拼接而成,每一塊點陣都有8行8 列,因此總共有16根行控制線和16根列控制線

10、。EDA實驗箱上有其接口電路,STR,SI,SCK,且實驗箱上采用的是4個74HC595來實現(xiàn)行掃描和列掃描的。用動態(tài)分時掃描技術(shù)使LED點陣模塊顯示字體,需要進(jìn)行兩步工作。第一步是獲得數(shù)據(jù)并保存,即在存貯器中建立漢字?jǐn)?shù)據(jù)庫。第二步是在掃描模塊的控制下,配合行掃描的次序正確地輸出這些數(shù)據(jù)。獲得圖像數(shù)據(jù)的步驟是,先將要顯示的每一幅圖像畫在一個被分成16×16共256個小方格的矩形框中,再在有筆劃下落處的小方格里填上“1”,無筆劃處填上“0”,這樣就形成了與這個漢字所對應(yīng)的二進(jìn)制數(shù)據(jù)在該矩形框上的分布,再將此分布關(guān)系以32×16的數(shù)據(jù)結(jié)構(gòu)組成64個字節(jié)的數(shù)據(jù),并保存在只讀存貯器

11、ROM中。以這種方式將若干個漢字的數(shù)據(jù)貯存在存貯器內(nèi),就完成了圖像數(shù)據(jù)庫的建立工作。電路中采用SPI接口的方式對LED點陣進(jìn)行操作,LATTICE_SI對應(yīng)SPI的MOSI, LATTICE_STR對應(yīng)SPI的nCS,LATTICE_SCK對應(yīng)SPI的SCK。U17,U18,U19以及U20(74HC595)構(gòu)成一個串入并出的32bit數(shù)據(jù)移位寄存器。當(dāng)LATTICE_STR低電平有效時,32bit數(shù)據(jù)在32個LATTICE_SCK時鐘下有LATTICE_SI串行輸入,當(dāng)LATTICE_STR由低電平變成高電平時,32bit數(shù)據(jù)并行輸出。在主板上主板上數(shù)據(jù)輸出時LADLDP對應(yīng)行,而LD1LD

12、16對應(yīng)列,最先移入的數(shù)據(jù)被當(dāng)作16列(LD16),最后移入的被當(dāng)作第一行(LDA)。 五、設(shè)計方案點陣LED一般采用掃描式顯示,實際運用分為三種方式: (1)點掃描(2)行掃描(3)列掃描若使用第一種方式,其掃描頻率必須大于16×64=1024Hz,周期小于1ms即可。若使用第二和第三種方式,則頻率必須大于16×8=128Hz,周期小于7.8ms即可符合視覺暫留要求。此外一次驅(qū)動一列或一行(8顆LED)時需外加驅(qū)動電路提高電流,否則LED亮度會不足方案一:本文系統(tǒng)的LED點陣模塊,共由16×16=256個LED發(fā)光二極管組成。如何在該點陣模塊上顯示漢字是本文設(shè)計

13、的關(guān)鍵技術(shù)。本文系統(tǒng)設(shè)計是采用一種16路動態(tài)分時掃描技術(shù)來實現(xiàn)的。具體方法是,將4個8×8數(shù)組的顯示模塊組合成兩個16行16列的掃描結(jié)構(gòu)。其行輸入端與FPGA內(nèi)的只讀存儲器ROM的16位數(shù)據(jù)輸出端口相連;16個列控制端與一個4-16譯碼器的輸出相連;而譯碼器的輸入端和片選信號又與FPGA內(nèi)的列掃描控制模塊的輸出端口相連。方案二:Verilog HDL程序設(shè)計的是硬件,可以“并發(fā)執(zhí)行”。本設(shè)計可以將LED顯示屏要的顯示內(nèi)容抽象成一個二維數(shù)組(數(shù)組中的1對映點陣顯示屏上面的亮點),用Verilog HDL語言設(shè)計一個進(jìn)程將這個數(shù)組動態(tài)顯示在LED顯示屏上,再利用另一個進(jìn)程對這個數(shù)組按一定

14、頻率進(jìn)行數(shù)據(jù)更新,更新的方式可以有多種。因為兩個進(jìn)程是同時進(jìn)行的(并發(fā)執(zhí)行),如果對數(shù)組中的漢字?jǐn)?shù)據(jù)按滾動的方式更新,則可實現(xiàn)漢字的滾動顯示通過比較我們選擇方案二。雖然方案一很容易實現(xiàn),而且占用FPGA的資源較少,但是由于其實現(xiàn)方式的局限性,該方案只能實現(xiàn)漢字的滾動顯示。方案二中將LED點陣抽象成了一個二維數(shù)組??梢栽O(shè)計一些比較復(fù)雜的算法來控制這個數(shù)組,使設(shè)計的系統(tǒng)不但可以滾動顯示漢字,還可以擴(kuò)展一些其它的顯示效果。六、程序設(shè)計設(shè)計程序如下:-LED1616.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE ;USE ;ENTITY LED16

15、16 ISPORT(clk48M:INSTD_LOGIC;-系統(tǒng)時鐘sdat_in:INSTD_LOGIC_VECTOR(31 downto 0);STR:OUT STD_LOGIC;SCLK:OUT STD_LOGIC;d_out:OUT STD_LOGIC);END;ARCHITECTURE one OF LED1616 ISSIGNAL clk_count: integer range 0 to 400;SIGNAL cnt32: STD_LOGIC_VECTOR(5 downto 0);SIGNAL clk60K,STR_R,SCLK_R,d_out_R: STD_LOGIC;SIGN

16、AL data_shift: STD_LOGIC_VECTOR(31 downto 0);TYPE states IS(st0,st1,st2,st3);SIGNAL c_state,n_state:states;BEGINSTR <=STR_R;SCLK <=SCLK_R;d_out <=d_out_R;d_out_R <=data_shift(31);PROCESS (clk48M)BEGINIF RISING_EDGE(clk48M) THEN IF clk_count =400 THENclk_count<=0;clk60K<=not clk60K;

17、ELSEclk_count<=clk_count+1;ENDIF;END IF;END PROCESS;PROCESS (clk60K)BEGINIF RISING_EDGE(clk60K) THEN c_state<=n_state; -主控時序進(jìn)程END IF;END PROCESS;PROCESS (c_state)BEGINCASE c_stateIS WHEN st0=>n_state<=st1;STR_R <='1'SCLK_R <='0'WHEN st1=>n_state<=st2;STR_R <

18、;='0'SCLK_R <='0'WHEN st2=>n_state<=st3;STR_R <='0'SCLK_R <='1'WHEN st3=>if (cnt32 >= "100000") thenn_state<=st0;elsen_state<=st2;end if;STR_R <='0'SCLK_R <='0'WHEN OTHERS=>n_state<=st0;END CASE;END PROC

19、ESS;PROCESS (SCLK_R)BEGINif (STR_R = '1') thendata_shift <=sdat_in;cnt32 <="000000"elsIF FAllING_EDGE(SCLK_R) THEN data_shift(31 downto 0)<=data_shift(30 downto 0) & '0'cnt32 <= cnt32 + '1'END IF;END PROCESS;END;-LS416LIBRARY IEEE;USE IEEE.STD_LOGIC_

20、1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY LS416 IS PORT(SEL:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Dout:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END LS416;ARCHITECTURE BHV OF LS416 ISBEGIN PROCESS(SEL) BEGIN CASE SEL ISWHEN "0000" =>DoutWHEN "0001" =>D

21、outWHEN "0010" =>DoutWHEN "0011" =>DoutWHEN "0100" =>DoutWHEN "0101" =>DoutWHEN "0110" =>DoutWHEN "0111" =>DoutWHEN "1000" =>DoutWHEN "1001" =>DoutWHEN "1010" =>DoutWHEN "1011&qu

22、ot; =>DoutWHEN "1100" =>DoutWHEN "1101" =>DoutWHEN "1110" =>DoutWHEN "1111" =>DoutWHEN OTHERS => NULL; END CASE; END PROCESS; END BHV;-MAX280LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL

23、;ENTITY MAX280 ISPORT ( Qa : IN STD_LOGIC_VECTOR(8 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(8 DOWNTO 0);END MAX280;ARCHITECTURE BEH OF MAX280 ISSIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS (Qa)BEGINIF(Qa>=280) thenQ <= Qa-280;elseQ <=Qa;END IF;END PROCESS;END BEH;modulecnt4b(clk,q);inpu

24、tclk;output3:0q;reg3:0q;always(posedgeclk)beginif(q=4'b1111)q=4'b0000;elseq<=q+1'b1;endendmodulemoduleint_diva(clockin,clockout);inputclockin;outputclockout;regclockout;reg23:0counter;always(posedgeclockin)beginclockout=(counter>=12000000);if(clockout)counter<=24'd0;elsecounter<=counter+1'b1;endendmodulemoduleint_divb(clockin,counter,clockout);inputclockin;outputclockout;output8:0counter;regclockout;reg8:0counter;al

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論