版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 西北工業(yè)大學(xué)課 程 設(shè) 計 報 告題 目: 電壓測量 學(xué) 院: 班 級: 學(xué)生(學(xué)號): 學(xué)生(姓名): 學(xué)生(學(xué)號): 學(xué)生(姓名): 日期: 年 月 日摘 要 用FPGA開發(fā)板和 Verilog-HDL語言實(shí)現(xiàn)了學(xué)號循環(huán)顯示以及電壓測量這兩個功能。其中學(xué)號循環(huán)顯示在開發(fā)板的數(shù)碼管上實(shí)現(xiàn),數(shù)碼管上呈現(xiàn)出兩人學(xué)號后四位循環(huán)。電壓測量通過開發(fā)板上LED小燈閃爍,電壓在1v2v時LED1閃爍;電壓在2v3v時LED2閃爍;電壓在3v4v時LED3閃爍;電壓在4v5v時LED4閃爍。與此同時,VGA屏幕顯示準(zhǔn)確電壓測量值,誤差<0.1V。關(guān)鍵詞: FPGA Verilog 學(xué)號循環(huán)顯示 電壓
2、測量 VGA接口目 錄一、 課程設(shè)計目的 4 二、 設(shè)計任務(wù)與要求 5 三、方案設(shè)計與論證 6四、單元電路設(shè)計與參數(shù)計算 10 五、遇到問題的解決方法 11 六、結(jié)論與心得 12 七、參考文獻(xiàn) 13 八、附錄(含代碼) 14題目:電壓測量 一、課程設(shè)計目的1) 鞏固和加深所學(xué)電子技術(shù)課程的基本知識,提高綜合運(yùn)用所學(xué)知識的能力;2) 培養(yǎng)學(xué)生根據(jù)課題需要選用參考書,查閱手冊、圖表和文獻(xiàn)資料的能力,提高學(xué)生獨(dú)立解決工程實(shí)際問題的能力;3) 通過設(shè)計方案的分析比較、設(shè)
3、計計算、元件選擇及電路安裝調(diào)試等環(huán)節(jié)初步掌握單實(shí)用電路的工程設(shè)計方法;4) 提高學(xué)生的動手能力。掌握FPGA開發(fā)板以及Verilog的正確使用方法,學(xué)會對簡單實(shí)用電路的實(shí)驗(yàn)調(diào)試和對整機(jī)指標(biāo)的測試方法;5) 了解與課題有關(guān)的電路以及元器件的工程技術(shù)規(guī)范,能按課程設(shè)計任務(wù)書的要求編寫設(shè)計說明書,能正確反映設(shè)計和實(shí)驗(yàn)成果。 二、設(shè)計任務(wù)與要求 一)任務(wù): 1.顯示學(xué)號 2.測量電壓范圍0-5V,誤差<0.1V 二)要求: 1. 采用數(shù)碼管顯示 循環(huán)顯示2個人的學(xué)號后四位 2. 電壓在1-2V: LED1 按1Hz閃爍 電壓在2-3V: LED2 按1Hz閃爍 電壓在3-4V: LED3 按1H
4、z閃爍 電壓在4-5V: LED4 按1Hz閃爍 通過VGA顯示測量結(jié)果三、方案設(shè)計與論證 一)學(xué)號循環(huán)顯示設(shè)計方案該工程分為三個模塊,分別是數(shù)碼管譯碼模塊、分頻模塊、學(xué)號循環(huán)顯示模塊。其中數(shù)碼管譯碼模塊的功能是將輸入的整形變量譯碼成8位2進(jìn)制數(shù),8位二進(jìn)制數(shù)分別對應(yīng)七段數(shù)碼管燈,不同的整形變量通過譯碼會點(diǎn)亮不同位置的燈(其中高電平1表示熄滅,低電平0表示點(diǎn)亮),從而顯示不同的數(shù)字。分頻模塊是將50Mhz震蕩頻率通過計數(shù)法降低到頻率為1hz的震蕩信號。學(xué)號循環(huán)顯示模塊是通過檢測震蕩信號的上跳沿(分頻后的)來控制輸出兩個不同的信號,周期為1S。并輸出給數(shù)碼管(通過數(shù)碼管譯碼模塊)。學(xué)號循環(huán)顯示模
5、塊為主模塊,它調(diào)用了分頻模塊與數(shù)碼管譯碼模塊。 二)電壓測量顯示設(shè)計方案該工程分為四個模塊,分別是采集模塊、數(shù)據(jù)轉(zhuǎn)換模塊、LED閃爍模塊、VGA顯示模塊。1. 采集模塊:通過PCF8591芯片將模擬電壓信號轉(zhuǎn)換成8位二進(jìn)制數(shù)字信號。I2C 通信中只涉及兩條信號線,即時鐘線SCL和數(shù)據(jù)線SDA。時鐘線的下降沿鎖存數(shù)據(jù)。當(dāng)時鐘線SCL高電平時,如果把數(shù)據(jù)線SDA 從高電平拉到低電平,則表示通信開始;如果把數(shù)據(jù)線SDA 從低電平拉到高電平,則表示通信結(jié)束。該模塊接口定義如下:信號名稱方向描述clkInput時鐘信號,50MHzrst_nInput復(fù)位信號,低電平有效renInput按鍵,低電平有效,
6、進(jìn)行讀寫操作scloutputPCF8591的時鐘端口sdaInoutPCF8591的數(shù)字端口data_outoutput數(shù)據(jù)輸出2. 數(shù)據(jù)轉(zhuǎn)換模塊:將PCF8591芯片對電壓采集的8位二進(jìn)制數(shù)字信號轉(zhuǎn)化為兩個4位二進(jìn)制數(shù)字信號。3. LED閃爍模塊:這個模塊有三個輸入信號,分別是clk(50MHz時鐘信號),clr(復(fù)位信號)和Va3:0(表示高位的4位二進(jìn)制數(shù)字信號)。有四個輸出信號,分別為led0,led1,led2,led3(LED燈顯示)。實(shí)現(xiàn)的功能是,當(dāng)電壓位于不同的區(qū)間時,所對應(yīng)的led燈閃爍。當(dāng)Va為12V,led0閃爍;當(dāng)Va為23V,led1閃爍;當(dāng)Va為34V,led2閃
7、爍;當(dāng)Va為45V,led3閃爍。4. VGA顯示模塊:其功能是通過程序邏輯設(shè)計實(shí)現(xiàn)對VGA屏幕的逐行逐列掃描,并定義了VGA上的有效顯示區(qū)間并在有效區(qū)間上顯示測量結(jié)果。FPGA是整個系統(tǒng)的核心,而VGA顯示顏色則為本次課程設(shè)計的重點(diǎn)。通過Verilog可控制輸出紅、綠、藍(lán)三基色信號和HS、VS 行場掃描同步信號。當(dāng)FPGA 接受輸出的控制信號后,內(nèi)部的數(shù)據(jù)選擇器模塊根據(jù)控制信號選擇相應(yīng)的字符生成模塊,輸出字符信號,與行場掃描時序信號一起通過VGA 接口電路送入顯示器,VGA顯示器上便可看到對應(yīng)的測試結(jié)果。主時鐘由外部提供,提供50 MHz頻率的時鐘源。
8、控制中,只需要考慮行同步信號(Hs)、場同步信號(Vs)以及紅綠藍(lán)(RGB)這5個信號。如果能從FPGA發(fā)出這5個信號到VGA接口,就可以實(shí)現(xiàn)對VGA的控制。通過對硬件進(jìn)行編程,輸出標(biāo)準(zhǔn)的 VGA 信號(紅、綠、藍(lán)三色信號和行、場同步信號),通過 VGA 接口輸出至顯示器,可具有顯示驅(qū)動程序的能力,驅(qū)動顯示器顯示圖像信號。板上的 VGA 接口只需使用其中的 5 個引腳,其中行、幀同步信號直接由 FGPA 輸出;在硬件編程過程中,定義了三個顏色輸出信號,通過定義二進(jìn)制數(shù)來控制三個輸出端輸出與否,最
9、后經(jīng)由電阻網(wǎng)絡(luò) D/A 變換后輸出值顯示器。四、單元電路設(shè)計與參數(shù)計算1、數(shù)碼管顯示學(xué)號:50MHz信號時鐘分頻為1Hz學(xué)號循環(huán)顯示數(shù)碼管譯碼2、VGA顯示用了五個進(jìn)程實(shí)現(xiàn)VGA接口協(xié)議內(nèi)容:1)使用分頻器產(chǎn)生25MHz的脈沖信號2)行計數(shù)3)行同步4)場計數(shù)5)場同步五、遇到問題的解決方法1、在Verilog語言編譯和實(shí)際應(yīng)用中,這個問題著實(shí)困擾了我們很長時間,之前學(xué)習(xí)過C,VB等語言,主要通過VC6.0進(jìn)行編譯。眾所周知,在VC6.0中集合的語言都為主流語言,突然接觸一門新的,對我們來說比較陌生甚至偏門的語言讓人很不適應(yīng),尤為特殊的是Verilog主要為了實(shí)現(xiàn)硬件功能,
10、和上述其他語言還是有很大的不同。但是在花了一天時間看Verilog語法后,發(fā)現(xiàn)還是與通用語言有許多共通之處的,只不過是表示方法不同而已,比如說輸出在C中是printf,在Verilog中卻是output。在實(shí)際應(yīng)用中,我們只需要寫好正確并編譯無誤的程序并分配合適的管腳,實(shí)現(xiàn)功能還是相對簡單的??偟膩碚f,在初步入門之后,我們才發(fā)現(xiàn)Verilog的易讀性和通用性有多強(qiáng)。2、遇到數(shù)碼管顯示時,顯示學(xué)號的數(shù)字反向。因?yàn)榫帉懘a時數(shù)碼管譯碼高低位寫反。3、VGA顯示中,關(guān)于顯示方面的知識之前完全沒有接觸過,也不知道顯示原理什么的,書上講的也比較少。但是在網(wǎng)上查資料與同學(xué)交流后,發(fā)現(xiàn)VGA顯示的原理其實(shí)就
11、是信號掃描,因此在定義了計數(shù)器后,我們將顯示屏分成640*480的點(diǎn)陣,弄清楚VGA三原色即紅綠藍(lán)組成其他顏色的原理后,用2進(jìn)制數(shù)進(jìn)行控制,從而實(shí)現(xiàn)了顯示三種顏色的任務(wù)要求。4、電壓采集時,一開始對IIC協(xié)議并不是很了解,經(jīng)過了查找資料和同學(xué)的交流,逐漸理解,數(shù)據(jù)采集的本質(zhì)是將模擬信號轉(zhuǎn)化成二進(jìn)制數(shù)字信號最終通過編譯顯示出來的過程。六、結(jié)論與心得 雖然在數(shù)電實(shí)驗(yàn)課曾經(jīng)對FPGA板子和Virelog語言有一些初步的了解,可是當(dāng)題目給出時仍然手足無措,只有短短的一個多星期,我們做出了成果,此次課設(shè)收獲頗豐。在數(shù)電實(shí)驗(yàn)課中,我們很少使用程序語言來進(jìn)行開發(fā),多半采用繪制電路圖的簡單方法,然而在多數(shù)復(fù)雜
12、的項(xiàng)目中,我們必須使用程序語言進(jìn)行硬件開發(fā)。此次課設(shè)中我們初步了解了硬件開發(fā)的過程以及硬件語言的使用,感受到了程序語言的簡潔方便,也體會到Virelog語言比C語言在硬件開發(fā)方面更簡便易懂,深深感受到了程序的功能強(qiáng)大。雖然剛開始設(shè)計開發(fā)時我們總是不斷碰壁,無法看懂程序代碼,無法縷清設(shè)計模塊,甚至連PCF8591板如何連接如何采集也是一無所知,但是隨著后來的查閱資料,咨詢同學(xué)以及多次試驗(yàn)后我們漸漸感受到了課程設(shè)計的有趣之處,呆在實(shí)驗(yàn)室中用心鉆研忘記吃飯互相探討攜手并進(jìn)的時光仍令人懷念。當(dāng)最后VGA屏幕上顯示出我們的動態(tài)電壓值時,那種激動的心情,是其他事情無法比擬的。課程設(shè)計注重知識與現(xiàn)實(shí)的結(jié)合,
13、在此次課設(shè)中我們鍛煉了動手能力,接觸了課本以外的實(shí)體事物,了解到了數(shù)電的魅力。七、參考文獻(xiàn)數(shù)字電路實(shí)驗(yàn)指導(dǎo)講義(第二版),樊偉敏、祁才君編深入淺出玩轉(zhuǎn)FPGA視頻學(xué)習(xí)教程 附錄(所編代碼)一、學(xué)號循環(huán)顯示module stu_num (clk,clr,led0,led1,led2,led3); input clk; /50MHzinput clr;output 7:0led0;output 7:0led1;output 7:0led2;output 7:0led3;reg7:0 led0;reg7:0 led1;reg7:0 led2;reg7:0 led3;reg25:0 cnt;reg1:
14、0 num1;reg1:0 num2;always (posedge clk or negedge clr)beginif(!clr) beginnum1 <= 2'd0;cnt=25'd0;endelse if(cnt=25'h1ffffff)/225 device T=0.617beginnum2<=num1;cnt=25'd0;if(num1<2'd2)num1<=num1+1'b1;else num1<=2'd0;end else cnt=cnt+1'b1;endparameter a0=8&
15、#39;b11111001, /數(shù)字1a1=8'b10100100,/數(shù)字2a2=8'b10110000, /數(shù)字3a3=8'b10000000, /數(shù)字8a4=8'b10010000; /數(shù)字9always (num2)begin case(num2)2'd0: begin led3<=a0; led2<=a3; led1<=a4; led0<=a1;end2'd1:begin led3<=a0; led2<=a3; led1<=a4; led0<=a2;endendcaseendendmodul
16、e二、電壓采集module AD(clk, rst_n, ren, scl,sda,data_out);input clk,rst_n,ren;inout sda;output scl;output 7:0data_out;reg 7:0data_out;reg scl, sda; /I2C Serial BUSparameter fre=8'd50; /T=1usreg 7:0 cnt;reg clk_in;/-reg 2:0start_check; /dismiss jitter of switch,get synchronizing signal start_enwire sta
17、rt_en;always(posedge clk or negedge rst_n)if(!rst_n) start_check<=3'd0;elsebegin start_check0<=ren;start_check1<=start_check0;start_check2<=start_check1;end/en=1 assign start_en=start_check2&start_check1&start_check0;/-always(posedge clk ) /frequency divider,T(clk_in)=1us,use
18、d in I2C BUS if(start_en)begincnt<=cnt+1'b1;if(cnt=fre>>1) begin clk_in=clk_in; end else if(cnt=fre) begin clk_in=clk_in;cnt<=8'd0; end end /*-I2C BUS to realize ADC of PCF8591 with 4 statesack=2'b00 start()+write(AddrWr)/0x90ack=2'b01 write(Control Byte) /0x02ack=2'b
19、10 start()+write(AddrRd)/0x91ack=2'b10 Read(data) /data is the ADC output-*/reg 1:0ack;reg 7:0data,delay;reg temp;always(posedge clk_in or negedge rst_n)/1usif(!rst_n) begindelay<=8'd0;ack<=2'b00;endelsebegindelay <=delay + 1'b1;if(ack=2'b00)case(delay)8'd1 :sda<=
20、1;8'd2 :scl<=1; /scl<=1;8'd6 :sda<=0;8'd9 :scl<=0;8'd11:sda<=1;/addwr h90 /18'd15:scl<=1;8'd19:scl<=0;8'd21:sda<=0; /0 8'd25:scl<=1;8'd29:scl<=0;8'd31:sda<=0; /0 8'd35:scl<=1;8'd39:scl<=0;8'd41:sda<=1; /18&
21、#39;d45:scl<=1; 8'd49:scl<=0; 8'd51:sda<=0; /08'd55:scl<=1;8'd59:scl<=0;8'd61:sda<=0; /08'd65:scl<=1;8'd69:scl<=0;8'd71:sda<=0; /08'd75:scl<=1;8'd79:scl<=0;8'd81:sda<=0; /08'd85:scl<=1;8'd89:scl<=0; /end8
22、39;d91:sda<=1'bz;8'd95:scl<=1;8'd98:temp<=sda;default: if(delay>100)/&&(delay<255)&&(temp=0) begin ack<=2'b01; delay<=8'd0;scl<=0; endendcaseelse if(ack=2'b01)case(delay)8'd2 :sda<=0;/h02 control byte8'd6 :scl<=1;8'd10
23、:scl<=0;8'd12:sda<=0; /08'd16:scl<=1;8'd20:scl<=0;8'd22:sda<=0; /08'd26:scl<=1;8'd30:scl<=0;8'd32:sda<=0; /08'd36:scl<=1; 8'd40:scl<=0; 8'd42:sda<=0; /08'd46:scl<=1;8'd50:scl<=0;8'd52:sda<=0; /08'd56:sc
24、l<=1;8'd60:scl<=0;8'd62:sda<=1; /18'd66:scl<=1;8'd70:scl<=0;8'd72:sda<=1; /08'd76:scl<=1;8'd80:scl<=0; /end8'd82:sda<=1'bz;8'd86:scl<=1;8'd89:temp<=sda;default: if(delay>90)/&&(delay<255)&&(temp=0) beg
25、in ack<=2'b10; delay<=8'd0;scl<=0; endendcaseelse if(ack=2'b10)case(delay)8'd1 :sda<=1;8'd2 :scl<=1; /scl<=1;8'd6 :sda<=0;8'd9 :scl<=0;8'd11:sda<=1;/addwr h91 /18'd15:scl<=1;8'd19:scl<=0;8'd21:sda<=0; /0 8'd25:scl<
26、;=1;8'd29:scl<=0;8'd31:sda<=0; /0 8'd35:scl<=1;8'd39:scl<=0;8'd41:sda<=1; /18'd45:scl<=1; 8'd49:scl<=0; 8'd51:sda<=0; /08'd55:scl<=1;8'd59:scl<=0;8'd61:sda<=0; /08'd65:scl<=1;8'd69:scl<=0;8'd71:sda<=0;
27、/08'd75:scl<=1;8'd79:scl<=0;8'd81:sda<=1; /18'd85:scl<=1;8'd89:scl<=0; /end8'd91:sda<=1'bz;8'd95:scl<=1;8'd98:temp<=sda;default: if(delay>100)/ &&(delay<255)&&(temp=0)begin ack<=2'b11; delay<=8'd0;/ sda&l
28、t;=1'bz;scl <=1'b0; endendcaseelse if(ack=2'b11) /readADCcase(delay)8'd1 :sda<=1'bz;8'd3 :scl<=1;8'd5 :data7<=sda;8'd8 :scl<=0;8'd13:scl<=1;8'd15:data6<=sda;8'd18:scl<=0;8'd23:scl<=1;8'd25:data5<=sda;8'd28:scl<=
29、0;8'd33:scl<=1;8'd35:data4<=sda;8'd38:scl<=0;8'd43:scl<=1;8'd45:data3<=sda;8'd48:scl<=0;8'd53:scl<=1;8'd55:data2<=sda;8'd58:scl<=0;8'd63:scl<=1;8'd65:data1<=sda;8'd68:scl<=0;8'd73:scl<=1;8'd75:data0<=sd
30、a;8'd78:scl<=0;8'd80:sda<=0; /ack 8'd83:scl<=1;8'd88:scl<=0; / que ren wan bi default: if(delay>90) begin delay<=8'd0;sda<=1'bz; /data_out<=data; ack<=2'b01; / xun huanack<=2'b11;data_out<=data;endendcaseendendmodule三、數(shù)據(jù)轉(zhuǎn)換LIBRARY IEEE;
31、USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY trans ISPORT(datain : IN STD_LOGIC_VECTOR(7 DOWNTO 0);q1, q2, q3, q4 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END trans;ARCHITECTURE behave OF trans ISSIGNAL data0, data1 : STD_LOGIC_VECTOR(15 DOWNTO 0);SIGNAL
32、sum1, sum2, sum3, sum4: STD_LOGIC_VECTOR(4 DOWNTO0);SIGNAL c1, c2, c3 : STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINdata1 <="0000000000000000" WHEN datain(7 DOWNTO 4)="0000" ELSE"0000001100010100" WHEN datain(7 DOWNTO 4)="0001" ELSE"0000011000100111" WHEN d
33、atain(7 DOWNTO 4)="0010" ELSE"0000100101000001" WHEN datain(7 DOWNTO 4)="0011" ELSE"0001001001010101" WHEN datain(7 DOWNTO 4)="0100" ELSE"0001010101101001" WHEN datain(7 DOWNTO 4)="0101" ELSE"0001100010000010" WHEN datai
34、n(7 DOWNTO 4)="0110" ELSE"0010000110010110" WHEN datain(7 DOWNTO 4)="0111" ELSE"0010010100010000" WHEN datain(7 DOWNTO 4)="1000" ELSE"0010100000100100" WHEN datain(7 DOWNTO 4)="1001" ELSE"0011000100110111" WHEN datain(7
35、DOWNTO 4)="1010" ELSE"0011010001010001" WHEN datain(7 DOWNTO 4)="1011" ELSE"0011011101100101" WHEN datain(7 DOWNTO 4)="1100" ELSE"0100000001111000" WHEN datain(7 DOWNTO 4)="1101" ELSE"0100001110010010" WHEN datain(7 DOWN
36、TO 4)="1110" ELSE"0100011100000110" WHEN datain(7 DOWNTO 4)="1111" ELSE"0000000000000000"data0 <="0000000000000000" WHEN datain(3 DOWNTO 0)="0000" ELSE"0000000000100000" WHEN datain(3 DOWNTO 0)="0001" ELSE"000000
37、0000111001" WHEN datain(3 DOWNTO 0)="0010" ELSE"0000000001011001" WHEN datain(3 DOWNTO 0)="0011" ELSE"0000000001111000" WHEN datain(3 DOWNTO 0)="0100" ELSE"0000000010011000" WHEN datain(3 DOWNTO 0)="0101" ELSE"0000000100
38、011000" WHEN datain(3 DOWNTO 0)="0110" ELSE"0000000100110111" WHEN datain(3 DOWNTO 0)="0111" ELSE"0000000101010111" WHEN datain(3 DOWNTO 0)="1000" ELSE"0000000101110110" WHEN datain(3 DOWNTO 0)="1001" ELSE"00000001100101
39、10" WHEN datain(3 DOWNTO 0)="1010" ELSE"0000001000010110" WHEN datain(3 DOWNTO 0)="1011" ELSE"0000001000110101" WHEN datain(3 DOWNTO 0)="1100" ELSE"0000001001010101" WHEN datain(3 DOWNTO 0)="1101" ELSE"0000001001110101&q
40、uot; WHEN datain(3 DOWNTO 0)="1110" ELSE"0000001010000100" WHEN datain(3 DOWNTO 0)="1111" ELSE"0000000000000000"sum1 <=('0'&data1(3 DOWNTO 0) + ('0'&data0(3 DOWNTO 0);c1 <= "00000" WHEN sum1 < "01010" ELSE&q
41、uot;00001"sum2 <=('0'&data1(7 DOWNTO 4) + ('0'&data0(7 DOWNTO 4)+ c1;c2 <= "00000" WHEN sum2 < "01010" ELSE"00001"sum3 <=('0'&data1(11 DOWNTO 8) + ('0'&data0(11 DOWNTO 8)+ c2;c3 <= "00000" WHE
42、N sum3 < "01010" ELSE"00001"sum4 <=('0'&data1(15 DOWNTO 12) + ('0'&data0(15 DOWNTO 12)+ c3;q1 <= sum1(3 downto 0) WHEN sum1 < "01010" ELSEsum1(3 downto 0) + "0110"q2 <= sum2(3 downto 0) WHEN sum2 < "01010" EL
43、SEsum2(3 downto 0) + "0110"q3 <= sum3(3 downto 0) WHEN sum3 < "01010" ELSEsum3(3 downto 0) + "0110"q4 <= sum4(3 downto 0) WHEN sum4 < "01010" ELSEsum1(3 downto 0) + "0110"END behave;四、VGA顯示模塊 module vga(OSC_50,c,d,VGA_CLK,VGA_HS,VGA_VS,VG
44、A_BLANK,VGA_SYNC,VGA_R,VGA_B,VGA_G);inputOSC_50,c,d;outputVGA_CLK,VGA_HS,VGA_VS,VGA_BLANK,VGA_SYNC;output9:0VGA_R,VGA_B,VGA_G;wire3:0 c;wire3:0 d; parameterH_FRONT = 16;parameterH_SYNC = 96;parameterH_BACK = 48;parameterH_ACT = 640;parameterH_BLANK = H_FRONT+H_SYNC+H_BACK;parameterH_TOTAL = H_FRONT+
45、H_SYNC+H_BACK+H_ACT;parameterV_FRONT = 11;parameterV_SYNC = 2;parameterV_BACK = 31;parameterV_ACT = 480;parameterV_BLANK = V_FRONT+V_SYNC+V_BACK;parameterV_TOTAL = V_FRONT+V_SYNC+V_BACK+V_ACT;reg10:0H_Cont;reg10:0V_Cont;wire7:0VGA_R;wire7:0VGA_G;wire7:0VGA_B;regVGA_HS;regVGA_VS;reg10:0X;reg10:0Y;reg
46、CLK_25;always(posedge OSC_50)beginCLK_25=CLK_25;endassignVGA_SYNC = 1'b0;assignVGA_BLANK = (H_Cont<H_BLANK)|(V_Cont<V_BLANK);assignVGA_CLK = CLK_to_DAC;assignCLK_to_DAC = CLK_25;always(posedge CLK_to_DAC)beginif(H_Cont<H_TOTAL)H_Cont<=H_Cont+1'b1;elseH_Cont<=0;if(H_Cont=H_FRON
47、T-1)VGA_HS<=1'b0;if(H_Cont=H_FRONT+H_SYNC-1)VGA_HS<=1'b1;if(H_Cont>=H_BLANK)X<=H_Cont-H_BLANK;elseX<=0;endalways(posedge VGA_HS)beginif(V_Cont<V_TOTAL)V_Cont<=V_Cont+1'b1;elseV_Cont<=0;if(V_Cont=V_FRONT-1)VGA_VS<=1'b0;if(V_Cont=V_FRONT+V_SYNC-1)VGA_VS<=1
48、'b1;if(V_Cont>=V_BLANK)Y<=V_Cont-V_BLANK;elseY<=0;endregvalid_yr;always(posedge CLK_to_DAC)if(V_Cont = 10'd32)valid_yr<=1'b1;elseif(V_Cont=10'd512) valid_yr<=1'b0;wirevalid_y=valid_yr;regvalid_r;always(posedge CLK_to_DAC)if(H_Cont = 10'd32)&&valid_y)val
49、id_r<=1'b1;elseif(H_Cont=10'd512)&&valid_y) valid_r<=1'b0;wirevalid = valid_r;wire10:0x_dis;wire10:0y_dis;assignx_dis=X;assigny_dis=Y;reg 31:0char_line09:0;reg 31:0char_line19:0;reg 31:0char_line29:0;reg 31:0char_line39:0;reg 31:0char_line49:0;reg 31:0char_line59:0;reg 31:0
50、char_line69:0;reg 31:0char_line79:0;reg 31:0char_line89:0;reg 31:0char_line99:0;reg 31:0char_line109:0;reg 31:0char_line119:0;reg 31:0char_line129:0;reg 31:0char_line139:0;reg 31:0char_line149:0;reg 31:0char_line159:0;reg 31:0char_line169:0;reg 31:0char_line179:0;reg 31:0char_line189:0;reg 31:0char_
51、line199:0;reg 31:0char_line209:0;reg 31:0char_line219:0;reg 31:0char_line229:0;reg 31:0char_line239:0;reg 31:0char_line249:0;reg 31:0char_line259:0;reg 31:0char_line269:0;reg 31:0char_line279:0;reg 31:0char_line289:0;reg 31:0char_line299:0;reg 31:0char_line309:0;reg 31:0char_line319:0;wire 319:0line
52、0; /第1行wire 319:0line1; /第2行wire 319:0line2; /第3行wire 319:0line3; /第4行wire 319:0line4; /第5行wire 319:0line5; /第6行wire 319:0line6; /第7行wire 319:0line7; /第8行wire 319:0line8; /第9行wire 319:0line9; /第10行wire 319:0line10; /第11行wire 319:0line11; /第12行wire 319:0line12; /第13行wire 319:0line13; /第14行wire 319:0l
53、ine14; /第15行wire 319:0line15; /第16行wire 319:0line16; /第17行wire 319:0line17; /第18行wire 319:0line18; /第19行wire 319:0line19; /第20行wire 319:0line20; /第21行wire 319:0line21; /第22行wire 319:0line22; /第23行wire 319:0line23; /第24行wire 319:0line24; /第25行wire 319:0line25; /第26行wire 319:0line26; /第27行wire 319:0line27; /第28行wire 319:0line28; /第29行wire 319:0line29; /第30行wire 319:0line30; /第31行wire 319:0line31; /第32行alwaysbeginchar_line00<=32'h0
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房貸借款合同解除與終止合同樣本3篇
- 二零二五年度冷鏈物流服務(wù)采購合同范本6篇
- 課程設(shè)計平臺
- 太空實(shí)驗(yàn)室課程設(shè)計理念
- 設(shè)計部門的安全職責(zé)(4篇)
- 二零二五年度保險合同標(biāo)的及保險責(zé)任詳細(xì)描述2篇
- 實(shí)驗(yàn)室生物安全保衛(wèi)制度模版(3篇)
- 二零二五年度機(jī)場電梯系統(tǒng)改造與升級合同
- 二零二五年度勞動合同補(bǔ)充協(xié)議范本3篇
- 小學(xué)學(xué)??记诩?xì)則(2篇)
- 《太陽能光伏技術(shù)》課件
- 2024年職業(yè)素養(yǎng)與商務(wù)禮儀培訓(xùn)資料
- 外科醫(yī)生年終述職總結(jié)報告
- 兒科課件:急性細(xì)菌性腦膜炎
- 柜類家具結(jié)構(gòu)設(shè)計課件
- 建設(shè)項(xiàng)目管理費(fèi)用(財建2016504號)
- 煤炭運(yùn)輸安全保障措施提升運(yùn)輸安全保障措施
- JTGT-3833-2018-公路工程機(jī)械臺班費(fèi)用定額
- LDA型電動單梁起重機(jī)參數(shù)
- 保安巡邏線路圖
- (完整版)聚乙烯課件
評論
0/150
提交評論