久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

FPGA實驗報告北航電氣技術(shù)實驗

時間:2019-05-12 04:42:50下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《FPGA實驗報告北航電氣技術(shù)實驗》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《FPGA實驗報告北航電氣技術(shù)實驗》。

第一篇:FPGA實驗報告北航電氣技術(shù)實驗

FPGA電氣技術(shù)實踐

實驗報告

院(系)名稱 專業(yè)名稱 學(xué)生學(xué)號 學(xué)生姓名 指導(dǎo)教師

宇航學(xué)院

飛行器設(shè)計與工程(航天)

XXXXXXXX

XXXXXX

XXXX

2017年11月XX日

`

` 實驗一

四位二進(jìn)制加法計數(shù)器與一位半加器的設(shè)計 實驗時間:2017.11.08(周三)晚

實驗編號20

一、實驗?zāi)康?/p>

1、熟悉QuartusII的VHDL的文本編程及圖形編程流程全過程。

2、掌握簡單邏輯電路的設(shè)計方法與功能仿真技巧。

3、學(xué)習(xí)并掌握VHDL語言、語法規(guī)則。

4、參照指導(dǎo)書實例實現(xiàn)四位二進(jìn)制加法計數(shù)器及一位半加器的設(shè)計。

二、實驗原理

.略

三、實驗設(shè)備

1可編程邏輯實驗箱EP3C55F484C8 一臺(包含若干LED指示燈,撥碼開關(guān)等)2計算機及開發(fā)軟件QuartusII 一臺套

四、調(diào)試步驟

1四位二進(jìn)制加法計數(shù)器

(1)參照指導(dǎo)書實例1進(jìn)行工程建立與命名。(2)VHDL源文件編輯

由于實驗箱上LED指示燈的顯示性質(zhì)為“高電平滅,低電平亮”,為實現(xiàn)預(yù)期顯示效果應(yīng)將原參考程序改寫為減法器,且”q1<= q1+1”對應(yīng)改為”q1<= q1-1”,以實現(xiàn)每輸入一個脈沖“亮為1,滅為0”。

由于參考程序中的rst清零輸入作用并未實現(xiàn),所以應(yīng)將程序主體部分的最外部嵌套關(guān)于rst輸入是否為1的判斷,且當(dāng)rst為1時,給四位指示燈置數(shù)”1111”實現(xiàn)全滅,當(dāng)rst為0時,運行原計數(shù)部分。

(3)參照指導(dǎo)書進(jìn)行波形仿真與管腳綁定等操作,鏈接實驗箱并生成下載文件(4)將文件下載至實驗箱運行,觀察計數(shù)器工作現(xiàn)象,調(diào)試撥動開關(guān)查看是否清零。可以通過改變與PIN_P20(工程中綁定為clk輸入的I/O接口)相連導(dǎo)線的另一端所選擇的實驗箱頻率時鐘的輸出口位置,改變LED燈顯示變化頻率。

并且對照指導(dǎo)書上對實驗箱自帶時鐘頻率的介紹,可以通過改變導(dǎo)線接口轉(zhuǎn)換輸入快慢,排查由于clk輸入管腳損壞而可能引起的故障。

` 2一位半加器

(1)參照指導(dǎo)書實例1進(jìn)行工程建立與命名。

(2)圖形源文件編輯:由于實驗箱上LED指示燈的顯示性質(zhì)為“高電平滅,低電平亮”,為實現(xiàn)預(yù)期顯示效果應(yīng)將原電路圖中兩個輸出管腳與非門串聯(lián)以實現(xiàn)原參考輸出“高電平亮,低電平滅”。

(3)參照指導(dǎo)書進(jìn)行波形仿真與管腳綁定等操作,鏈接實驗箱并生成下載文件(4)將文件下載至實驗箱運行,觀察半加器工作現(xiàn)象,調(diào)試撥動開關(guān)查看進(jìn)位與置數(shù)指示是否正常工作。

五、實驗現(xiàn)象

1.四位二進(jìn)制加法計數(shù)器

SW1下?lián)転?時,四個LED指示燈可以對輸入脈沖從”0000”到”1111”進(jìn)行十六位循環(huán)計數(shù)(其中亮為1,滅為0)。SW1上撥為1時可以實現(xiàn)四個LED燈保持全滅清零。且四位二進(jìn)制加法計數(shù)器功能成功實現(xiàn)

2.一位半加器

SW1與SW2輸入分別為”00”、”01”、”10”、”11”時,進(jìn)位指示與置數(shù)指示燈分別顯示”00”、”01”、”01”、”10”(其中亮為1,滅為0)。且一位半加器功能成功實現(xiàn)。

六、實驗代碼

1四位二進(jìn)制加法計數(shù)器(已修改)

entity count4 is

port(clk:in std_logic;--waishizhong,fpga_ex2_6

rst:in std_logic;--F1 pin-ab15

q:out std_logic_vector(3 downto 0));--led4-1

end;architecture b1 of count4 is

signal q1:std_logic_vector(3 downto 0);

begin

process(clk,rst)

begin

if(rst='0')then

if(clk'event and clk='1')then q1<= q1-1;

end if;

else q1<=“1111”;

end if;

end process;`

q<=q1;end 2一位半加器

七、結(jié)果分析

1若在加載運行文件后實驗箱上無反應(yīng),可以通過更換不同頻率輸入管腳查看是否為實驗箱自帶時鐘的故障。

2實驗箱上LED顯示燈與設(shè)計邏輯相反時可以通過修改程序邏輯或給電路圖添加非門實現(xiàn)正邏輯顯示。

` 實驗二

16×16LED點陣四字循環(huán)顯示 實驗時間:2017.11.08(周三)晚

實驗編號20

一、實驗?zāi)康?/p>

1、掌握VHDL編程技巧和各種輸入輸出顯示方法。

2、學(xué)習(xí)并分析指導(dǎo)書中實例,從中發(fā)現(xiàn)感興趣的題目,并以此自設(shè)計一個有內(nèi)容,功能稍復(fù)雜的主、子程序綜合應(yīng)用例程,實現(xiàn)調(diào)試與驗證。

3、實現(xiàn)LED點陣“高山仰止”四字清晰循環(huán)顯示。

二、實驗原理

.1 LED顯示原理

16×16掃描LED點陣的工作原理同8位掃描數(shù)碼管類似,其結(jié)構(gòu)示意圖(圖1)與等效電路圖(圖2)如下。它有16個共陰極輸出端口,每個共陰極對應(yīng)有16個 LED顯示燈,所以其掃描譯碼地址需4位信號線(管腳對應(yīng)COL1-COL4),從右起為第一列且COL1-4對應(yīng)”0000”。其漢字掃描碼由16位段地址(從下至上管腳對應(yīng)ROW1-ROW16)輸入。本設(shè)計選用的LED列掃描,漢字信號行輸入的方式,顯示完整漢字。

圖1 16×16LED點陣 圖2 16×16點陣LED等效電路

列循環(huán)掃描,通過對每一列的掃描來完成對字母的現(xiàn)實,本設(shè)計為使列掃描符合視覺暫留要求,掃描頻率至少大于16×8=128Hz,周期小于7.8ms,以此給人以連續(xù)的感覺。漢字的信息儲存

用動態(tài)分時掃描技術(shù)使LED點陣模塊顯示圖像,需要進(jìn)行兩步工作。第一步是在程序中建立漢字?jǐn)?shù)據(jù)庫。第二步是在掃描模塊的控制下,配合列掃描的次序正確地輸出這些數(shù)據(jù)。獲得圖像數(shù)據(jù)的步驟是,先將要顯示的每一幅圖像畫在一個如(圖3)所示的被分成16×16共256個小方格的矩形框中,再在有筆劃下落處的小方格里填上“1”,無筆劃處填上“0”,這樣就形成了與這個漢字所對應(yīng)的二進(jìn)制數(shù)據(jù)在該矩形框上的分布,漢字取模可由專用軟件進(jìn)行。

`

圖3 16*16點陣顯示模塊

由于本實驗箱為從右至左依次對應(yīng)”0000”列到”1111”列,從下至上為最高位到最低位,于平時習(xí)慣的認(rèn)字方向相反,所以注意在逐列掃描的設(shè)計中要對字取“反模”。

例如要在右邊起第2列的從上到下數(shù)2、4、6、8行亮,則列編號為”0001”、行輸入為”***0”就可以實現(xiàn)了。

3延時環(huán)節(jié)

為使?jié)h字不斷地循環(huán)顯示,并且使每個漢子顯示后停留,就需要在中間加一定的延時和循環(huán)環(huán)節(jié)。在這一環(huán)節(jié)中,可以通過修改每個顯示和停留周期包含的總時鐘脈沖數(shù)值來控制每個字的顯示時間,運用狀態(tài)機設(shè)計方法給四個漢字對應(yīng)的不同輸入狀態(tài)進(jìn)行編碼,即可使?jié)h字依次清晰顯示。

三、實驗設(shè)備

1可編程邏輯實驗箱EP3C55F484C8 一臺(包含16×16LED點陣一組等)2計算機及開發(fā)軟件QuartusII 一臺套

四、調(diào)試步驟

1建立工程,命名為ledgrq1616。建立VHDL程序文件命名為1ed1616grq.vhd。2按照第六部分原程序輸入代碼,并按所示表格綁定管腳。編寫程序及綁定管腳時時注意第二部分中所敘述的掃描顯示順序以及對應(yīng)取反字模的方法。

3編譯無誤后開啟實驗箱,生成.sof傳輸文件并下載至實驗箱,確保運行模式為1,且CPRL_SW撥碼開關(guān)為”00XX”。

4觀察實驗箱上現(xiàn)象,通過改接不同頻率的脈沖輸入管腳或改變每個字符停留周期包含的總脈沖數(shù)來保證有足夠快的掃描頻率與大約每個字大約一秒多的充足停留時間,并查看是否有“高山仰止”四字依次有停頓的清晰的循環(huán)顯示。

五、實驗現(xiàn)象

當(dāng)時鐘輸入線接FRQH_Q2(3000000Hz)管腳時,設(shè)定每個周期為5000000個脈沖時,` 實現(xiàn)“高山仰止”在16×16LED點陣上清晰循環(huán)顯示。

六、實驗代碼

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity led1616grq is port(clk: in std_logic;--時鐘

data: out std_logic_vector(15 downto 0);--行輸入

addrs: out std_logic_vector(3 downto 0));--列地址 end led1616grq;

architecture chw_arc of led1616grq is signal fenpin:std_logic_vector(1 downto 0);--分頻信號 signal ad:std_logic_vector(3 downto 0);--地址中轉(zhuǎn)信號 begin

process(clk)--產(chǎn)生一個大約1s的分頻信號模塊

variable cnt:integer:=0;

variable tmp:std_logic_vector(1 downto 0);

begin

if clk'event and clk='1' then

if cnt<5000000 then

cnt:=cnt+1;

else

cnt:=0;

if tmp=“11” then

tmp:=“00”;

else

tmp:=tmp+1;

end if;

end if;

end if;

fenpin<=tmp;end process;

process(clk)--送16位地址程序

variable js:integer:=0;

variable cnt:std_logic_vector(3 downto 0);

begin

if clk'event and clk='1' then

if js<10000 then

js:=js+1;

else

js:=0;`

if cnt=“1111” then

cnt:=“0000”;

else cnt:=cnt+1;

end if;

end if;

end if;ad<=cnt;

end process;process(fenpin,ad)

begin

case fenpin is--besure to get the opposite model of the word--and exchange the hight 8bit to the low 8bit

--then write begin 1111 to 0000

when “00”=>

case ad is

--”高”的字模

when “0000”=>data<=“***0”;--00 00 when “0001”=>data<=“***0”;--04 00

when “0010”=>data<=“***0”;--04 FE

when “0011”=>data<=“***0”;--04 82

when “0100”=>data<=“***0”;--04 02

when “0101”=>data<=“***0”;--F4 7A

when “0110”=>data<=“***0”;--94 4A

when “0111”=>data<=“***0”;--94 4A

when “1000”=>data<=“***0”;--96 4A

when “1001”=>data<=“***1”;--95 4A

when “1010”=>data<=“***0”;--94 4A

when “1011”=>data<=“***0”;--F4 7A

when “1100”=>data<=“***0”;--04 02

when “1101”=>data<=“***0”;--04 02

when “1110”=>data<=“***0”;--04 FE

when “1111”=>data<=“***0”;--04 00

when others=>null;

end case;

when “01”=>

case ad is

when “0000”=>data<=“***0”;--0000 “山”的字模

when “0001”=>data<=“***0”;--0000

when “0010”=>data<=“***0”;--7FF0

when “0011”=>data<=“***0”;--2000

when “0100”=>data<=“***0”;--2000 `

when “0101”=>data<=“***0”;--2000

when “0110”=>data<=“***0”;--2000

when “0111”=>data<=“***1”;--3FFF

when “1000”=>data<=“***0”;--2000

when “1001”=>data<=“***0”;--2000

when “1010”=>data<=“***0”;--2000

when “1011”=>data<=“***0”;--2000

when “1100”=>data<=“***0”;--3FF0

when “1101”=>data<=“***0”;--0000

when “1110”=>data<=“***0”;--0000

when “1111”=>data<=“***0”;--0000

when others=>null;

end case;

when “10”=>

case ad is

when “0000”=>data<=“***0”;--0000 “仰”的字模

when “0001”=>data<=“***0”;--0000

when “0010”=>data<=“***0”;--07FC

when “0011”=>data<=“***0”;--0804

when “0100”=>data<=“***0”;--0404

when “0101”=>data<=“***1”;--FFCF

when “0110”=>data<=“***0”;--0000

when “0111”=>data<=“***0”;--0402

when “1000”=>data<=“***0”;--0804

when “1001”=>data<=“***1”;--1FCF

when “1010”=>data<=“***0”;--0000

when “1011”=>data<=“***1”;--0007

when “1100”=>data<=“***0”;--FFF8

when “1101”=>data<=“***0”;--0060

when “1110”=>data<=“***0”;--0080

when “1111”=>data<=“***0”;--0100

when others=>null;

end case;

when “11”=>

case ad is

when “0000”=>data<=“***0”;--0000“止”的字模

when “0001”=>data<=“***0”;--4000

when “0010”=>data<=“***0”;--4000

when “0011”=>data<=“***0”;--4040

when “0100”=>data<=“***0”;--4040

when “0101”=>data<=“***0”;--4040

when “0110”=>data<=“***0”;--4040

when “0111”=>data<=“***0”;--4040 `

when “1000”=>data<=“***1”;--7FFF

when “1001”=>data<=“***0”;--0400

when “1010”=>data<=“***0”;--0400

when “1011”=>data<=“***0”;--0400

when “1100”=>data<=“***1”;--7FFF

when “1101”=>data<=“***0”;--4000

when “1110”=>data<=“***0”;--4000

when “1111”=>data<=“***0”;--4000

when others=>null;

end case;

when others=>null;

end case;end process;addrs<=ad;end chw_arc;

管腳綁定如下:

七、結(jié)果分析

設(shè)備調(diào)試與程序調(diào)試一樣均為FPGA目標(biāo)器件功能實現(xiàn)的必須工作,根據(jù)加載后實際顯示情況,同樣可以反推出QuartusII無法直接報錯的引腳綁定方面的問題以及程序書寫邏輯問題,實驗中具體出現(xiàn)的情況如下:

(1)顯示為一團(tuán)不斷閃爍的重疊形狀 原因:可能為間隔時間太短 措施:應(yīng)增大間隔周期數(shù),延長停頓

`(2)字符形狀與設(shè)計不同/錯位

原因:如果為行順序錯位或亂序,但每一列仍為從右至左掃描,可能為ROW1-15管腳綁定錯位:如果為列出現(xiàn)順序及顯示正確但位置錯位,可能為CLK1-3管腳綁定錯位;上述兩種情況也可同時發(fā)生。

措施:將時鐘輸入頻率放緩至可以看清每一列出現(xiàn)的順序位置及顯示內(nèi)容,與所設(shè)計的字模對照,判斷是哪幾個ROW管腳及CLK錯位,重新綁定即可。

(3)實驗箱開啟后毫無顯示

原因:可能是工作模式的撥碼開關(guān)并非”00XX”,或時鐘管腳故障。

措施:選用其他頻率的管腳試接;若排除管腳問題,查看模式顯示數(shù)碼管數(shù)值是否為1,如不是,改變工作模式,重新加載文件。

` 實驗三

蜂鳴器/揚聲器電子音樂演奏

實驗時間:2017.11.15(周三)晚

實驗編號20

一、實驗?zāi)康?/p>

1、熟練掌握QuartusII平臺各模塊操作及實驗箱調(diào)試方法。

2、用元件例化語句調(diào)用方式,任意自選題設(shè)計一個有內(nèi)容,功能較復(fù)雜的主、子程序綜合應(yīng)用的多模塊集成例程,并實現(xiàn)調(diào)試與驗證。

3、實現(xiàn)電子音樂《天空之城》的主旋律循環(huán)播放,并通過LED燈指示音符。

二、實驗原理

.1、電子音符演奏

樂曲硬件電路產(chǎn)生音樂是和音樂頻率和音樂的持續(xù)時間有關(guān);音符的持續(xù)時間需根據(jù)樂曲的速度和每個音符的節(jié)拍數(shù)來確定。設(shè)計所用簡譜及音符和頻率的關(guān)系如下:

2、演奏節(jié)拍控制

該演奏電路演奏的樂曲是《天空之城》,其最小的節(jié)拍為1拍,將1拍的時長定位0.25S,則只需要再提供一個4Hz的時鐘頻率即可產(chǎn)生1拍的時長(5Hz由24MHz的基準(zhǔn)頻率分頻產(chǎn)生),對于占用時間較長的節(jié)拍,(一定是節(jié)拍的整數(shù)倍),如全音符為4拍,2/4音符為2拍,1/4音符為1拍。

3、演奏電路模塊

樂曲硬件演奏電路系統(tǒng)主要有音調(diào)分頻器和樂曲存儲模塊兩個部分組成,其余還有音樂節(jié)拍發(fā)生器等等。音調(diào)分頻器對24MHz(由基準(zhǔn)頻率產(chǎn)生)的頻率進(jìn)行分頻,得到與各個音節(jié)對應(yīng)的頻率輸出。樂曲存儲模塊產(chǎn)生節(jié)拍控制和音階選擇信號,即在此模塊中寫入一個樂曲曲譜真值序列,由一個計數(shù)器來控制此序列的輸出,而由計數(shù)器的計` 數(shù)時鐘信號作為樂曲節(jié)拍控制信號。

4程序設(shè)計思路

實驗中采用層次化設(shè)計思路,音樂發(fā)生器的設(shè)計包括四個模塊:時鐘分頻模塊、自動演奏模塊、音符顯示模塊、音調(diào)分頻模塊。分好層次之后,編寫每個模塊的程序。

時鐘分頻模塊通過基準(zhǔn)時鐘頻率clk(24MHz)產(chǎn)生兩個時鐘信號。自動演奏模塊接收4hz的時鐘信號,輸出音調(diào)代碼。顯示模塊利用音調(diào)代碼查找并輸出對應(yīng)LED燈顯示情況。同時將音調(diào)對應(yīng)的給8盞LED指示燈,分別顯示高中低音符。音調(diào)分頻模塊接收音調(diào)代碼對應(yīng)的分頻系數(shù),并據(jù)此分頻,將對應(yīng)頻率的信號輸出給揚聲器供其發(fā)聲。

三、實驗設(shè)備

1可編程邏輯實驗箱EP3C55F484C8 一臺(含蜂鳴器、揚聲器、若干LED燈等)2計算機及開發(fā)軟件QuartusII 一臺套

四、調(diào)試步驟

1建立工程,命名為grqbeep01。建立VerilogHDL程序文件命名為grqbeep01.v。2按照第六部分原程序輸入代碼,并按所示表格綁定管腳。

3編譯無誤后開啟實驗箱,將時鐘輸入管腳P20接Q0(24000000Hz)。

4生成.sof傳輸文件并下載至實驗箱,確保運行模式為3,且CPRL_SW撥碼開關(guān)為”0110”。

5觀察實驗箱上現(xiàn)象,確定蜂鳴器與揚聲器的器件使用設(shè)定方法,對比其效果差異。

五、實驗現(xiàn)象

1跳線BZ1未調(diào)整時

下載完畢,聽到完整的由蜂鳴器播放的循環(huán)《天空之城》音樂,可是聲音很小,LED指示燈顯示沒有錯誤。

2跳線BZ1由23調(diào)整到12時

下載測試,聽到聲音洪亮的循環(huán)播放的《天空之城》音樂,并且音調(diào)很好,數(shù)碼管顯示音符正常,實現(xiàn)預(yù)期功能。

六、實驗代碼

`timescale 1ns / 1ps module grqbeep01(clk,beep,led);input clk;//時鐘管腳

` output beep;//蜂鳴器管腳 output [7:0]led;//led指示管腳 reg beep;reg [22:0]i;reg clk_4hz;reg [7:0]led;

reg [16:0]count,div_num;reg [6:0]music;//以下為主體

always@(posedge clk)//4hz生成部分

begin if(i==23'h47868c)begin i<=0;

clk_4hz=~clk_4hz;end else i=i+1'b1;end

always@(posedge clk_4hz)begin

if(music==7'd122)//總共的音符節(jié)拍數(shù) music<=0;else

music<=music+1'b1;end always@(posedge clk)begin

if(count==div_num)begin

count<=0;beep=~beep;end else

count<=count+1'b1;end parameter//輸入查表可得的低中高音符赫茲數(shù) L0=17'h00000, L1=17'h1754e, L2=17'h14c81, L3=17'h1284a, L4=17'h117A8, L5=17'h14e70, L6=17'h0ddf2, L7=17'h0c5ba, M1=17'h0ba9e, ` M2=17'h0a648, M3=17'h0941f, M4=17'h08bcf, M5=17'h07c90, M6=17'h06ef9, M7=17'h062dd, H1=17'h05d68, H2=17'h05322, H3=17'h04a11, H4=17'h045e9, H5=17'h3e48, H6=17'h377d, H7=17'h316f;always@(posedge clk_4hz)begin case(music)//樂譜輸入 7'd0:div_num=M6;7'd1:div_num=M7;7'd2:div_num=H1;7'd3:div_num=H1;7'd4:div_num=H1;7'd5:div_num=M7;7'd6:div_num=H1;7'd7:div_num=H1;7'd8:div_num=H3;7'd9:div_num=H3;7'd10:div_num=M7;7'd11:div_num=M7;7'd12:div_num=M7;7'd13:div_num=M7;7'd14:div_num=M7;7'd15:div_num=M7;7'd16:div_num=M3;7'd17:div_num=M3;7'd18:div_num=M6;7'd19:div_num=M6;7'd20:div_num=M6;7'd21:div_num=M5;7'd22:div_num=M6;7'd23:div_num=M6;7'd24:div_num=H1;7'd25:div_num=H1;7'd26:div_num=M5;7'd27:div_num=M5;7'd28:div_num=M5;7'd29:div_num=M5;` 7'd30:div_num=M5;7'd31:div_num=M5;7'd32:div_num=M2;7'd33:div_num=M3;7'd34:div_num=M4;7'd35:div_num=M4;7'd36:div_num=M4;7'd37:div_num=M3;7'd38:div_num=M4;7'd39:div_num=M4;7'd40:div_num=H1;7'd41:div_num=H1;7'd42:div_num=M3;7'd43:div_num=M3;7'd44:div_num=M3;7'd45:div_num=M3;7'd46:div_num=H1;7'd47:div_num=H1;7'd48:div_num=M7;7'd49:div_num=M7;7'd50:div_num=M7;7'd51:div_num=M3;7'd52:div_num=M4;7'd53:div_num=H1;7'd54:div_num=H1;7'd55:div_num=M7;7'd56:div_num=M7;7'd57:div_num=M7;7'd58:div_num=M7;7'd59:div_num=M7;7'd60:div_num=M7;//第二段樂譜

7'd61:div_num=M6;7'd62:div_num=M7;7'd63:div_num=H1;7'd64:div_num=H1;7'd65:div_num=H1;7'd66:div_num=M7;7'd67:div_num=H1;7'd68:div_num=H1;7'd69:div_num=H3;7'd70:div_num=H3;7'd71:div_num=M7;7'd72:div_num=M7;` 7'd73:div_num=M7;7'd74:div_num=M7;7'd75:div_num=M7;7'd76:div_num=M7;7'd77:div_num=M3;7'd78:div_num=M4;7'd79:div_num=M6;7'd80:div_num=M6;7'd81:div_num=M6;7'd82:div_num=M5;7'd83:div_num=M6;7'd84:div_num=M6;7'd85:div_num=H1;7'd86:div_num=H1;7'd87:div_num=M5;7'd88:div_num=M5;7'd89:div_num=M5;7'd90:div_num=M5;7'd91:div_num=M5;7'd92:div_num=M5;7'd93:div_num=M2;7'd94:div_num=M3;7'd95:div_num=M4;7'd96:div_num=M4;7'd97:div_num=H1;7'd98:div_num=H1;7'd99:div_num=H1;7'd100:div_num=M7;7'd101:div_num=H1;7'd102:div_num=H2;7'd103:div_num=H2;7'd104:div_num=H3;7'd105:div_num=H3;7'd106:div_num=H1;7'd107:div_num=H1;7'd108:div_num=H1;7'd109:div_num=M7;7'd110:div_num=M6;7'd111:div_num=M6;7'd112:div_num=M7;7'd113:div_num=M7;7'd114:div_num=M5;7'd115:div_num=M5;7'd116:div_num=M6;` 7'd117:div_num=M6;7'd118:div_num=M6;7'd119:div_num=M6;7'd120:div_num=M6;7'd121:div_num=M6;endcase end

always@(div_num)//定義每一種音符的LED指示方案

begin case(div_num)

L5,H5:led=8'b1111_1111;L6,H6:led=8'b0111_1111;L7,M1:led=8'b0011_1111;M2,M3:led=8'b0001_1111;M4,L4,H4,M5:led=8'b0000_1111;M6,M7:led=8'b0000_0111;H1,L1:led=8'b0000_0011;H2,L2:led=8'b0000_0001;H3,L3:led=8'b0000_0000;default: led=8'bx;endcase end endmodule 管腳綁定如下:

七、結(jié)果分析

1實驗指導(dǎo)書由于篇幅有限,并未介紹全部硬件的管腳連接與使用方法,但是實驗室中的完整實驗箱說明書可以查閱到所有硬件資料。例如本實驗中,指導(dǎo)書上只是概略提及了模式3中有BZSP接口可以實現(xiàn)蜂鳴器/揚聲器放音,卻并未提及調(diào)用切換方法,在老師幫助下在實驗箱完整說明書中找到BZ1跳線使用方法,最終實現(xiàn)揚聲器響亮播放。

2實驗中的實際運行輸入時鐘頻率必須與程序設(shè)計頻率完全一致,設(shè)計程序也要優(yōu)先參考實驗箱所提供的自身時鐘,否則輸出音調(diào)和分頻后的輸出節(jié)拍均會因基準(zhǔn)頻率不符而有明顯變化,可能有完全變調(diào)或頻率過低而聲音失真的情況。

`

實驗感想

本次實驗前后時間跨度有三周,從中收獲的不僅僅是指導(dǎo)書中的一種新的Ada類編程語言的使用方法,更是一種對于短時間內(nèi)接納新的理論并迅速結(jié)合已知儲備,實現(xiàn)實踐運用與二次創(chuàng)新的能力鍛煉。

能夠借此機會下定決心,實現(xiàn)很久之前就有的學(xué)習(xí)Verilog的目標(biāo),更加深刻感受到C類編程語法的強大之處,同時也再一次鍛煉了查找學(xué)習(xí)資源與閱讀自學(xué)的能力。

為了能夠深刻學(xué)習(xí)并學(xué)以致用,以上三個實驗只是成果的一小部分,關(guān)于TFT_LCD以及LCD1602的驅(qū)動控制,以及Verilog語法規(guī)范與設(shè)計思路所讀的40多篇文獻(xiàn),與兩本課本,調(diào)試的17組程序,雖然來不及在課堂上展示,但是在我自己購置的手冊齊全的DJ51單片機與我的TMS320F28335的DSP開發(fā)板上,均實現(xiàn)了非常令人喜悅的顯示效果。而且實際上我所缺的,不能很方便找到的資源,其實就是那本完整的硬件說明書,但是至于其他,收獲驚喜的比想象多了不少。對于硬件控制設(shè)計的理解也從大二的“僅僅是單片機”“不就是驅(qū)動個電機嗎”,有了更多的深入的思考。

畢竟,“高山仰止,景行行止,雖不能至,心向往之”。

各種編程語言與平臺,最終都是用不同的方式敘述同一種邏輯。編程的使用,只是讓構(gòu)思的邏輯與想法最快生成可以感受到的成果的途徑,是表達(dá)的工具,也是最基礎(chǔ)的鏈接理論到實物的媒介,但是其中最不可替代的只是一直存在的想法而已。

`

第二篇:FPGA交通燈實驗報告

交通燈實驗報告

一,實驗?zāi)康?/p>

實現(xiàn)兩路信號燈交替亮起,并利用兩組數(shù)碼管分別對兩路信號進(jìn)行倒計時。

兩路信號時間分別為:

V:綠燈(30S)

H:紅燈(35S)

黃燈(5s)

綠燈(30S)

紅燈(35S)

黃燈(5S)

二,實驗步驟 建立工程

可在歡迎界面點擊“Creat a New Project”進(jìn)入工程建立界面,亦可關(guān)閉歡迎界面,點擊菜單欄的“File”,點擊“New Project Wizard”進(jìn)入建立工程界面。右側(cè)為建立工程界面,點擊next。

在此界面選定工程路徑,取好工程名,點擊“Next”。注意:路徑中不能有中文,工程名也不能有中文。

一直點擊“Next”進(jìn)入器件設(shè)置界面,DE2-70開發(fā)工具采用的Cyclone II系列的EP2C70F896C6N。點擊“Finish”,完成工程建立

1、點擊“File”,點擊“New” 選擇“Verilog HDL” 2,點擊主界面工具欄中的 選擇“Verilog HDL”

3、寫入verilog代碼。

代碼如下:

module traffic(Clk_50M,Rst,LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V,Seg7_VH,Seg7_VL,Seg7_HH,Seg7_HL,led15);

parameter S1=2'b00;parameter S2=2'b01;parameter S3=2'b10;parameter S4=2'b11;

input Clk_50M,Rst;output LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V;output[6:0] Seg7_VH,Seg7_VL,Seg7_HH,Seg7_HL;output led15;

//-------------div for 1Hz-------start----reg Clk_1Hz;reg [31:0] Cnt_1Hz;always@(posedge Clk_50M or negedge Rst)begin

if(!Rst)

begin

Cnt_1Hz<=1;

Clk_1Hz<=1;

end

else

begin

if(Cnt_1Hz>=25000000)

end

//-----------div for 1Hz------end-----reg[7:0] Cnt30,CntH,CntV,CntHH,CntVV;reg[7:0] CntDis,CntDiss;//-----------30 counter and seg7---start---reg LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V;always@(posedge Clk_1Hz)begin

end

begin

Cnt_1Hz<=1;

Clk_1Hz<=~Clk_1Hz;

end

else

Cnt_1Hz<=Cnt_1Hz + 1;

case(state)

S1:

end

always@(posedge Clk_1Hz)begin

case(stateV)

S1:

begin

if(CntV>=30)

CntV<=1;

begin

if(Cnt30>=30)

Cnt30<=1;

else

Cnt30<=Cnt30 + 1;S2:

begin

if(Cnt30>=5)

Cnt30<=1;end

else

Cnt30<=Cnt30 + 1;S3:

begin

if(Cnt30>=30)

Cnt30<=1;end

else

Cnt30<=Cnt30 + 1;S4:

begin

if(Cnt30>=5)

Cnt30<=1;end

else

Cnt30<=Cnt30 + 1;end endcase

else

CntV<=CntV + 1;

S2: begin

end

end if(CntV>=5)

CntV<=1;

else

CntV<=CntV + 1;end

S3:

begin

if(CntV>=35)

CntV<=1;

else

CntV<=CntV + 1;end endcase always@(posedge Clk_1Hz)begin

case(stateH)

S1:

end

always@(negedge Clk_50M or negedge Rst)begin

begin

if(CntH>=35)

CntH<=1;

else

CntH<=CntH + 1;

S2:

begin

if(CntH>=30)

CntH<=1;end

else

CntH<=CntH + 1;end

S3:

begin

if(CntH>=5)

CntH<=1;

else

CntH<=CntH + 1;end endcase

case(state)

S1:

end always@(negedge Clk_50M or negedge Rst)begin

case(state)

S1:

end

//16進(jìn)制計數(shù)器轉(zhuǎn)換為用于顯示的10進(jìn)制計數(shù)器 always@(posedge Clk_50M)begin

if(CntVV>29)

begin

CntDis[7:4]<=3;

CntDis[3:0]<=CntVV20;end else if(CntVV>9)begin

CntDis[7:4]<=1;

CntDis[3:0]<=CntVV30;end else if(CntHH>19)begin

CntDiss[7:4]<=2;

CntDiss[3:0]<=CntHH10;end else

CntDiss<=CntHH;

end

if(Cnt30>=5)

end

end S3:

begin

state<=S4;

end S4:

begin

state<=S1;

end default:

begin

state<=S1;

end endcase

if(Cnt30>=30)

if(Cnt30>=5)always@(posedge Clk_1Hz)begin

case(state)

S1:

end

always@(posedge Clk_50M or negedge Rst)

begin

stateH<=S1;

stateV<=S1;

end S2:

begin

stateH<=S1;

stateV<=S2;

end S3:

begin

stateH<=S2;

stateV<=S3;

end S4:

begin

stateH<=S3;

stateV<=S3;

end endcase begin

if(!Rst)

begin

LedR_H<=0;

else

LedG_H<=0;LedY_H<=0;

LedR_V<=0;

LedG_V<=0;end LedY_V<=0;

begin

case(state)

S1:

begin

LedR_H<=1;LedG_H<=0;LedY_H<=0;LedR_V<=0;LedG_V<=1;LedY_V<=0;end

S2:

begin

LedR_H<=1;LedG_H<=0;LedY_H<=0;LedR_V<=0;LedG_V<=0;LedY_V<=1;end

S3:

begin

LedR_H<=0;LedG_H<=1;LedY_H<=0;LedR_V<=1;LedG_V<=0;LedY_V<=0;end

S4:

begin LedR_H<=0;LedG_H<=0;

end

LedY_H<=1;LedR_V<=1;LedG_V<=0;LedY_V<=0;end

default:

begin

end LedR_H<=0;LedG_H<=0;LedY_H<=0;LedR_V<=0;LedG_V<=0;LedY_V<=0;end

endcase assign led15=state;

endmodule

module SEG7_LUT input [3:0] iDIG;output reg

always @(iDIG)begin

case(iDIG)4'h1: oSEG = 7'b1111001;

//---t----4'h2: oSEG = 7'b0100100;// |

| 4'h3: oSEG = 7'b0110000;// lt rt

4'h4: oSEG = 7'b0011001;// |

| 4'h5: oSEG = 7'b0010010;//---m----4'h6: oSEG = 7'b0000010;// |

| 4'h7: oSEG = 7'b1111000;// lb rb 4'h8: oSEG = 7'b0000000;// |

| 4'h9: oSEG = 7'b0011000;//---b----4'ha: oSEG = 7'b0001000;4'hb: oSEG = 7'b0000011;4'hc: oSEG = 7'b1000110;4'hd: oSEG = 7'b0100001;4'he: oSEG = 7'b0000110;[6:0] oSEG;[6:0] oSEG;(oSEG,iDIG);

end

4'hf: oSEG = 7'b0001110;4'h0: oSEG = 7'b1000000;endcase endmodule 編譯工程

保存文件,將文件放在所建工程所在路徑下 點擊主界面工具欄中的圖標(biāo)

也可點擊菜單欄中“Processing”,點擊“Start Compilation”

分配關(guān)鍵如下:

Clk_50M Input PIN_AD15 LedG_H Output PIN_AD9 LedG_V Output PIN_AJ6 LedR_H Output PIN_AJ7)LedR_V Output PIN_AJ5)LedY_H Output PIN_AD8 LedY_V Output PIN_AK5 Rst Input PIN_AA23 Seg7_HH[6] Output PIN_G1 Seg7_HH[5] Output PIN_H3 Seg7_HH[4] Output PIN_H2 Seg7_HH[3] Output PIN_H1 Seg7_HH[2] Output PIN_J2 Seg7_HH[1] Output PIN_J1 Seg7_HH[0] Output PIN_K3

Seg7_HL[6] Seg7_HL[5] Seg7_HL[4] Seg7_HL[3] Seg7_HL[2] Seg7_HL[1] Seg7_HL[0] Seg7_VH[6] Seg7_VH[5] Seg7_VH[4] Seg7_VH[3] Seg7_VH[2] Seg7_VH[1] Seg7_VH[0] Seg7_VL[6] Seg7_VL[5] Seg7_VL[4] Seg7_VL[3] Seg7_VL[2] Seg7_VL[1] Seg7_VL[0] Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output PIN_E4 PIN_F4 PIN_G4 PIN_H8 PIN_H7 PIN_H4 PIN_H6 PIN_AD17 PIN_AF17 7 PIN_AE17 7 PIN_AG16 PIN_AF16 7 PIN_AE16 7 PIN_AG13 PIN_AD12 PIN_AD11 PIN_AF10 8 PIN_AD10 PIN_AH9 8 PIN_AF9 8 PIN_AE8 8

燒寫代碼

在管腳配置完成后,還需將工程再編譯一次,成功后,點擊主界面工具欄中的亦可點擊主界面菜單欄中“Tools”,點擊“Programmer”

進(jìn)入代碼燒寫界面后,點擊“Start”,當(dāng)“Progress”為100%時,表示燒寫完成,這是可觀察DE2-70板現(xiàn)象

獲得預(yù)期的效果,兩組的信號紅黃綠燈交替切換,計數(shù)器記為零時信號燈切換狀態(tài),紅燈35s,黃燈5s,綠燈30s。三,心得體會

通過本次實驗初步了解了EDA技術(shù),熟悉了FPGA開發(fā)板的開發(fā)流程,鍛煉了動手能力。

第三篇:FPGA秒表實驗報告

課程設(shè)計報告

專業(yè)班級 課 程 題 目 秒表的設(shè)計 學(xué) 號 姓 名 同 組 人 成 績

2013年5月

一、設(shè)計目的

1.進(jìn)一步熟悉七段碼譯碼器的硬件接口。2.掌握用掃描方法驅(qū)動多個數(shù)碼管硬件接口。3.掌握秒表VHDL的編程方法。

二、系統(tǒng)總體設(shè)計(1).設(shè)計要求:

1.秒表共有6個輸出顯示,分別為百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6個計數(shù)器與之相對應(yīng),6個計數(shù)器的輸出全都為BCD碼輸出,這樣便于和顯示譯碼器的連接。當(dāng)計時達(dá)60分鐘后,蜂鳴器鳴響10聲。

2.整個秒表還需有一個啟動信號和一個歸零信號,以便秒表能隨意停止及啟動。3.秒表的邏輯結(jié)構(gòu)較簡單,它主要由顯示譯碼器、分頻器、十進(jìn)制計數(shù)器、六進(jìn)制計數(shù)器和報警器組成。在整個秒表中最關(guān)鍵的是如何獲得一個精確的100HZ計時脈沖。

(2).實驗原理: 秒表由于其計時精確,分辨率高(0.01秒),在各種競技場所得到了廣泛的應(yīng)用。秒表的工作原理與數(shù)字時基本相同,唯一不同的是秒表的計時時鐘信號,由于其分辨率為0.01秒,所以整個秒表的工作時鐘是在100Hz的時鐘信號下完成。當(dāng)秒表的計時小于1個小時時,顯示的格式是mm-ss-xx(mm表示分鐘:0~59;ss表示秒:0~59;xx表示百分之一秒:0~99),當(dāng)秒表的計時大于或等于一個小時時,顯示的和多功能時鐘是一樣的,就是hh-mm-ss(hh表示小時:0~99),由于秒表的功能和鐘表有所不同,所以秒表的hh表示的范圍不是0~23,而是0~99,這也是和多功能時鐘不一樣的地方。在設(shè)計秒表的時候,時鐘的選擇為100Hz。變量的選擇:因為xx(0.01秒)和hh(小時)表示的范圍都是0~99,所以用兩個4位二進(jìn)制碼(BCD碼)表示;而ss(秒鐘)和mm(分鐘)表示的范圍是0~59,所以用一個3位的二進(jìn)制碼和一個4位的二進(jìn)制碼(BCD)碼表示。顯示的時候要注意的問題就是小時的判斷,如果小時是00,則顯示格式為mm-ss-xx,如果小時不為00,則顯示hh-mm-ss。

三、詳細(xì)設(shè)計

1.計時模塊:計時模塊執(zhí)行計時功能,計時方法和計算機一樣是對標(biāo)準(zhǔn)時鐘脈沖計數(shù)。他是由四個十進(jìn)制計數(shù)器和倆個六進(jìn)制計數(shù)器構(gòu)成,其中毫秒位、十毫秒位、秒位和分位采用十進(jìn)制計數(shù)器,十秒位和十分位采用六進(jìn)制計數(shù)器。

COUNT10CLKSTARTCLRCOUTDAOUT[3..0]源程序:inst2

(1)十進(jìn)制計數(shù)器(count_10)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity COUNT10 is port(CLK,START,CLR : in std_logic;

COUT : out std_logic;

DAOUT : out std_logic_vector(3 downto 0));end COUNT10;architecture one of COUNT10 is signal h0 : std_logic_vector(3 downto 0);signal h1 : std_logic;begin process(CLK,CLR)begin if CLR='1' then h0<=“0000”;elsif CLK'event and CLK='1' then

if START='1' then

if h0=“1001” then

h0<=“0000”;

h1<='1';

else h0<=h0+1;

h1<='0';

end if;

end if;

end if;end process;DAOUT<=h0;COUT<=h1;end one;

(2)六進(jìn)制計數(shù)器(count_6)

COUNT6CLKSTARTCLRinst1COUTDAOUT[3..0]

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity COUNT6 is port(CLK,START,CLR : in std_logic;

COUT : out std_logic;

DAOUT: out std_logic_vector(3 downto 0));end COUNT6;architecture two of COUNT6 is signal h0 : std_logic_vector(3 downto 0);signal h1 : std_logic;begin process(CLK,CLR)begin if CLR='1' then h0<=“0000”;elsif CLK'event and CLK='1' then

if START='1' then

if h0=“0101” then

h0<=“0000”;

h1<='1';

else h0<=h0+1;

h1<='0';

end if;

end if;

end if;end process;DAOUT<=h0;COUT<=h1;end two

2.計時顯示器(deled)

計時顯示電路的作用是將計時值在LED數(shù)碼管上顯示出來。計時電路產(chǎn)生的值經(jīng)過BCD七段譯碼后,驅(qū)動LED數(shù)碼管。計時顯示電路的實現(xiàn)方案采用掃描顯示。部分源程序:

delednum[3..0]led[6..0]inst3

Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity deled is port(num: in std_logic_vector(3 downto 0);led:out std_logic_vector(6 downto 0));end deled;architecture a of deled is begin process(num)begin case num is when“0000”=>led<=“1111110”;when “0001”=>led<=“0110000”;when “0010”=>led<=“1101101”;when “0011”=>led<=“1111001”;when “0100”=>led<=“0110011”;when “0101”=>led<=“1011011”;when “0110”=>led<=“1011111”;when “0111”=>led<=“1110000”;when “1000”=>led<=“1111111”;when “1001”=>led<=“1111011”;when OTHERS=>led<=“0000000”;end case;end process;end a;

3.分頻

fenpinclrclkqinst4

library ieee;use ieee.std_logic_1164.all;

entity fenpin is

port(clr,clk: in std_logic;q: buffer std_logic);end fenpin;architecture b of fenpin is

signal counter:integer range 0 to 49999;begin

process(clr,clk)

begin

if(clk='1' and clk'event)then

if clr='1' then

counter<=0;

elsif counter=49999 then

counter<=0;

q<= not q;

else

counter<=counter+1;

end if;

end if;

end process;end b;

4.位選

seltimeclkclrdain0[3..0]dain1[3..0]dain2[3..0]dain3[3..0]dain4[3..0]dain5[3..0]daout[3..0]sel[2..0]inst5 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity seltime is port(clk:in std_logic;

clr:in std_logic;

dain0:in std_logic_vector(3 downto 0);

dain1:in std_logic_vector(3 downto 0);

dain2:in std_logic_vector(3 downto 0);

dain3:in std_logic_vector(3 downto 0);

dain4:in std_logic_vector(3 downto 0);

dain5:in std_logic_vector(3 downto 0);

daout:buffer std_logic_vector(3 downto 0);

sel:buffer std_logic_vector(2 downto 0));end seltime;architecture three of seltime is signal m:std_logic_vector(2 downto 0);signal n:std_logic_vector(3 downto 0);begin n<=“0000” when clr='1' else

dain0 when m=“000” else dain1 when m=“001”else dain2 when m=“010”else dain3 when m=“011”else dain4 when m=“100” else dain5;process(clr,clk,dain0,dain1,dain2,dain3,dain4,dain5)begin if clk 'event and clk='1'then if m=“101” then m<=“000”;else m <=m+1;end if;end if;sel<=m;end process;daout<=n;end three;

5.警告

ALARMCLKdainqinst

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ALARM is port(CLK: in std_logic;

dain: in std_logic;

q: out std_logic);end ALARM;architecture four of ALARM is signal count: std_logic_vector(1 downto 0);begin process(clk)begin q<=count(1);if(clk'event and clk='1')then

if(dain='1')then

if(count=“10”)then

count<=“00”;

else

count<=count+1;

end if;

end if;

end if;

end process;

q<=count(1);end four;原理圖:

四、仿真分析 1.仿真結(jié)果:

2.管腳分配:

五.設(shè)計中遇到的問題及解決方法

問題:

1.對秒表設(shè)計的原理理解不到位,試驗不能正常進(jìn)行。2.因為程序輸入不正確,導(dǎo)致程序編譯不成功。

3.管腳分配不合理,導(dǎo)致結(jié)果不能顯示或者不能正常顯示。解決方法:

1.進(jìn)一步理解實驗的原理,各部分的組成以及功能。2.運行程序之前仔細(xì)檢查程序,并適當(dāng)注釋。3.按照規(guī)定分配管腳,注意區(qū)別不能定義的管腳。

六.心得體會:

因為對EDA技術(shù)及Quartus軟件的相關(guān)知識知道的不夠深入,在設(shè)計過程

中我們遇到了很多困難,但通過從網(wǎng)上找一些相關(guān)資料,最終完成了設(shè)計任務(wù)。開始做設(shè)計時總是會出現(xiàn)各種錯誤,經(jīng)過不停的編譯及改錯最終得到了正確的程序。其實這些錯誤的主要原因是自己的粗心造成的,如果細(xì)心一些這些錯誤時可以避免的。在編程時,要使用層次化結(jié)構(gòu)的思想,這樣程序檢查起來也比較方便,調(diào)試時也給了自己很大的方便,只要一個模塊一個模塊的進(jìn)行調(diào)就可以了,充分體現(xiàn)了結(jié)構(gòu)化編程的優(yōu)勢。在設(shè)計中要求我們要有耐心和毅力,還要細(xì)心,稍有不慎,一個小小的錯誤就會導(dǎo)致結(jié)果的不正確,而對錯誤的檢查要求我們要有足夠的耐心,通過這次設(shè)計和設(shè)計中遇到的問題,也積累了一定的經(jīng)驗,對以后從事集成電路設(shè)計工作會有一定的幫助。

在應(yīng)用VHDL的過程中讓我真正領(lǐng)會到了其并行運行與其他軟件順序執(zhí)行的差別及其在電路設(shè)計上的優(yōu)越性。用VHDL硬件描述語言的形式來進(jìn)行數(shù)字系統(tǒng)的設(shè)計方便靈活,利用EDA軟件進(jìn)行編譯優(yōu)化仿真極大地減少了電路設(shè)計時間和可能發(fā)生的錯誤,降低了開發(fā)成本,這種設(shè)計方法在數(shù)字系統(tǒng)設(shè)計中發(fā)揮越來越重要的作用。總之這次的設(shè)計受益匪淺。

第四篇:FPGA實驗報告

FPGA實驗報告

專業(yè):XXX 姓名:XXX 學(xué)號:XX

一:實驗?zāi)康?/p>

1.熟悉Modelsim和Quartus II軟件的運行環(huán)境和使用

2.熟練使用Quartus II仿真軟件生成網(wǎng)表。

3.熟悉FPGA前仿真和后仿真的整個流程。二:實驗內(nèi)容

編寫counter計數(shù)器,在Quartus II仿真軟件中生成網(wǎng)表,再在Modelsim中進(jìn)行后仿真。三: 實驗步驟

1.在Modelsim編寫源程序(counter計數(shù)器及激勵),編譯源文件,確保程序的正確性,并進(jìn)行前仿真,生成波形圖如下:

附:源程序如下:

module counter(q,clk,reset);

input clk,reset;

output [3:0] q;

reg [3:0] q;

always @(posedge reset or negedge clk)

if(reset)

q <= 4'b0;

else

q <= q + 1;endmodule module top;

reg CLK,RESET;

wire [3:0] Q;

counter c1(Q,CLK,RESET);

initial

CLK=1'b0;

always

#1 CLK=~CLK;

initial

$monitor($time,“Q=%d”,Q);

initial

begin

RESET=1'b1;

#5 RESET=1'b0;

#180 RESET=1'b1;

end endmodule 2.新建文件夾,將源程序counter.v放進(jìn)去。然后啟動Quartus II仿真軟件,生成網(wǎng)表。

1).在【File】下拉菜單中選中New Project Wizard選項,出現(xiàn)對話框。并指定工程工作目錄、工程名稱和頂層模塊名,如圖(a)所示。

2).添加(Add)counter.v文件。如圖(b)所示。

3).選擇器件系列

4).指定其它EDA工具,如圖(d)所示。

5).完成工程設(shè)置,如圖(e)所示。

6).單擊啟動編譯按鈕,完成工程的編譯。

7).選中【processing】-【Start】-【Start analysis & synthesis】進(jìn)行綜合和分析。

(a)

(b)

(c)

(d)

(e)

8).選中【Tools】-【Netlist viewer】-【RTL viewer】生成網(wǎng)表如下圖所示:

3.新建文件夾,將生成的vo,sdo文件,altera時延文件cyclone-atoms.v及編寫的top.v文件拷入,在Modelsim中進(jìn)行后仿真。

1).新建工程,向工程中添加vo,top,及時延文件。

2).將vo文件時延尺寸改為ns,并在top程序的首部添加命令:`timescale 1 ns / 1 ns。

3).編譯并進(jìn)行仿真,生成波形圖如下:

四:心得體會

通過本次實驗,我基本熟悉掌握了前仿真、后仿真的整個實驗步驟及流程,熟練掌握了Modelsim和Quartus仿真軟件的使用方法。

第五篇:北航飛力實驗課實驗報告

課程代碼 :

0517 70 09 9

研究生課程試卷

2017-2018學(xué)年 第一學(xué)期期末

《飛行力學(xué)實驗I》 飛行原理實驗報告

考試時間 2018 年 11 月 1 日

姓名:

蘇雨

學(xué)號:

ZY1805316

專業(yè):

飛行器設(shè)計

指導(dǎo)教師:

王維軍

北京航空航天大學(xué) 航空科學(xué)與工程學(xué)院

2018 年 11 月

飛機失速尾旋現(xiàn)象研究

第一章:失速尾旋現(xiàn)象介紹

在我從事航模生涯這些年以來,有一種十分危險的飛行現(xiàn)象,導(dǎo)致了我多架模型飛機墜毀。這就是在飛行中有時會出現(xiàn)飛機突然失去控制,一邊下墜,一邊偏側(cè)翻轉(zhuǎn),操縱無效直到墜地。經(jīng)查閱資料,了解到這種飛行現(xiàn)象稱為失速尾旋。

失速:失速是當(dāng)機翼攻角(迎角)增大到一定的程度(臨界迎角)后,機翼上表面氣流分離,導(dǎo)致升力減小所發(fā)生的現(xiàn)象。飛機將低頭下沉,直至獲得足夠升力飛行。在高度低時發(fā)生失速是危險的,高度足夠高時,可以練習(xí)失速的改出,改出失速的基本操作是迅速推桿到底采用俯沖姿態(tài),等速度大于等于 1.3 倍失速速度時,緩慢向后拉桿改出至平飛。

尾旋(螺旋):當(dāng)一側(cè)機翼先于另一側(cè)機翼失速時,飛機會朝先失速的一側(cè)機翼方向沿飛機的縱軸旋轉(zhuǎn),稱為螺旋或尾旋。發(fā)生螺旋式非常危險的事情,有些飛機在設(shè)計制造時是禁止飛機進(jìn)入螺旋的,這樣的飛機進(jìn)入螺旋姿態(tài)后,很難改出??梢愿某龅娘w機改出尾旋的基本方法是推桿到底,并向相反方向拉桿,如果發(fā)動機以高速運轉(zhuǎn),必須立即收油門到慢車,向螺旋相反方向蹬滿舵,螺旋停止后,使用失速改平的方法。成功的關(guān)鍵是飛行員的技術(shù)和飛機的性能。

全世界每年飛機事故中因失速發(fā)生的占事故總數(shù)約 30%~40%,如果飛行員認(rèn)知不清、處置不及時準(zhǔn)確,飛機很可能在極短時間內(nèi)進(jìn)入失速尾旋,若在低空小高度時飛機進(jìn)入失速尾旋處置不當(dāng),很可能會造成機毀人亡的等級事故,研究失速與尾旋的預(yù)防措施與改出方法,對考核飛機邊界飛行的操控性、安全性,挖掘飛機的機動性能以及保證戰(zhàn)斗生存率與飛行安全意義重大。

第二章:失速尾旋現(xiàn)象 原理分析2.1 失速現(xiàn)象原理分析

飛機在飛行時,機翼翼型中心與氣流來流方向的夾角為迎角,當(dāng)迎角增加到抖振迎角時,機翼上氣流開始分離,機翼開始出現(xiàn)了抖振,此時機翼升力系數(shù)還在上升,當(dāng)迎角增加到臨界迎角時,機翼表面氣流分離出現(xiàn)了嚴(yán)重分離,飛機升力系數(shù)急劇下降,可見失速根源是由于機翼表面氣流分離造成,失速也包括平尾、鴨翼等控制翼面的氣流分離,導(dǎo)致機翼和飛機其它控制翼面失去部分或全部效能,在失速過程中如果飛機升力支撐不了飛機重量,飛機就會掉高度(圖 1、圖 2),臨界迎角表征著飛機抗失速能力,飛機臨界迎角越大,飛機抗失速能力越大,其中一代、二代戰(zhàn)機臨界迎角約為 10°~25°、三代戰(zhàn)機約為 25°~50°、四代戰(zhàn)機約為 50°~70°,飛行中仰角,其中θ為俯仰角、φ為偏航角、γ為滾轉(zhuǎn)

角(下同)。

圖 圖 1 1 飛機失速狀況

在失速初期,機翼翼型中心迎角小于抖動迎角,機翼氣流雖然分離,但對其它翼面無影響,此時飛行員對飛機操縱感覺仍正常。

當(dāng)繼續(xù)增大接近抖振迎角時,飛機結(jié)構(gòu)對翼面上較強的分離氣流產(chǎn)生氣動激勵振動響應(yīng)現(xiàn)象,即機翼抖振,同時飛機也可能出現(xiàn)輕微自動仰俯和機頭橫擺等現(xiàn)象。

在失速中期,機翼翼型中心迎角介于抖振迎角和臨界迎角之間,飛行員可以明顯感覺翼面出現(xiàn)較強的抖振現(xiàn)象,但升力仍然隨迎角增大而增大。

飛機失速后期,機翼翼型中心迎角超過臨界迎角時,飛機進(jìn)入深失速,翼面上強烈的氣流分離會影響到副翼、平尾、方向舵等后翼面的穩(wěn)定性,使飛機出現(xiàn)了劇烈抖振與顛簸、側(cè)滑、航向發(fā)散(如俯仰振蕩、機頭搖晃等不穩(wěn)定現(xiàn)象)、飛機下墜、飛行阻力增加、飛行速度急劇減小等變態(tài)現(xiàn)象。

2.2 2 尾旋 現(xiàn)象原理分析

飛機失速后期,當(dāng)翼型中心迎角遠(yuǎn)超過臨界迎角后,失速加劇,飛機速度、升力、舵面操縱性、航向穩(wěn)定性都會減小,飛機帶有側(cè)滑現(xiàn)象,當(dāng)一側(cè)機翼先于另一側(cè)機翼失速(側(cè)滑時,側(cè)滑側(cè)機翼先失速)時,飛機會朝先失速的一側(cè)機翼方向沿飛機的縱軸邊滾轉(zhuǎn)邊急劇下滑(側(cè)滑角很大,側(cè)滑小球甚至偏置極限),同時也繞立軸、橫軸不斷旋轉(zhuǎn),飛機出現(xiàn)這種重心沿小半徑螺旋線軌跡急劇下滑的氣動自轉(zhuǎn)現(xiàn)象,說明飛機已經(jīng)進(jìn)入失速尾旋,飛行員必須立即處置。可見失速與尾旋的主要危害是來自飛機的變態(tài)失控、飛行員失去方向感、飛機安全高度喪失三個方面。

正螺旋是由正飛進(jìn)入的螺旋,發(fā)生正螺旋時,飛行員身體一直沒有離開座椅,飛機座艙蓋基本向上,通過前風(fēng)擋看到機頭在地面畫圈,看不到旋轉(zhuǎn)地中心地標(biāo);反螺旋是由倒飛進(jìn)入的螺旋,發(fā)生反螺旋時,飛行員身體離開座椅,頭盔頂著座艙蓋,飛機座艙蓋基本沖下,能看到旋轉(zhuǎn)地中心地標(biāo);根據(jù)尾旋時飛機俯仰角的不同,尾旋還可分為陡尾旋、緩尾旋和平尾旋。

圖 圖 2 2 飛機尾旋

第三章:

飛機失速尾旋的預(yù)防3.1 飛機設(shè)計中預(yù)防 尾旋 措施

飛機設(shè)計中預(yù)防失速尾旋的措施主要有:合理設(shè)計飛機增升裝置(如加裝鴨翼、邊條翼、渦流發(fā)生器、吹風(fēng)襟翼、翼刀等),采用新的飛行控制技術(shù)(如放寬靜穩(wěn)定性 RSS 控制技術(shù)、推力矢量控制技術(shù)、主動渦流控制 AVC 技術(shù)、機動載荷控 VLC 技術(shù)、多變量重構(gòu)技術(shù)等),能使飛機臨界迎角不斷擴大,飛機甚至在 0°-360°迎角范圍,飛機操控性依然穩(wěn)定;優(yōu)化迎角限制器(推桿器或抖桿器)、音響與燈光等失速告警裝置設(shè)計,使告警鮮明可靠;視情增裝尾旋改出傘和尾旋改出火箭,使飛機進(jìn)入尾旋后仍然能從容安全地改出。

3.2 2 飛行操作 中預(yù)防 尾旋 措施

在飛力實驗課程中操作塞斯納飛機進(jìn)行飛行時就能發(fā)現(xiàn),當(dāng)飛機速度很低,并且操縱桿控制量較大,打舵較猛時飛機容易發(fā)生失速。因此,為了避免飛機失速和失速尾旋,飛機在包括盤旋、收斂轉(zhuǎn)彎等特技機動飛行時,飛行員對桿舵的動作量不要過大過猛,否則俯迎角變化速率過快,在慣性作用下,飛機很容易出現(xiàn)迎角超控現(xiàn)象,尤其對于后掠翼和三角翼飛機或是臨界迎角較小的飛機,飛行員更應(yīng)依據(jù)飛行速度時刻掌控好飛行迎角。

在飛行員訓(xùn)練時,應(yīng)當(dāng)防患于未然,加入失速尾旋改出科目訓(xùn)練。更換機型飛行與危險科目飛行,飛行前要有技術(shù)交底、編寫專門的應(yīng)急處置預(yù)案,并組織必要的飛行預(yù)先演練,飛行員對抖動迎角、臨界迎角、失速告警、演練高度、飛

機最低安全高度、飛行包線邊界等飛行知識有充分的認(rèn)知。

3.3 3 飛行環(huán)境中預(yù)防 尾旋 措施

避免飛機在惡劣氣象條件下,如風(fēng)切變、垂直陣風(fēng)、颶風(fēng)、晴空湍流、颶風(fēng)、突風(fēng)等大氣亂流,或過冷雨雪和霜凍等氣象條件下飛行,以免飛機迎角增大到臨界迎角以上而造成飛機失速。一旦飛機不可避免地進(jìn)入結(jié)冰區(qū)時,通常情況下應(yīng)迅速改變飛行高度、飛機增速、減小飛機俯仰角、及時脫離結(jié)冰層區(qū)域,同時打開飛機防冰系統(tǒng),對發(fā)動機、空速管、迎角與側(cè)滑角傳感器等部件加溫,盡早醞釀失速尾旋改出程序,必要時拋掉飛機外掛,同時要求飛行員柔和操縱桿舵。此外,飛行中應(yīng)避免飛機進(jìn)入其它飛機尾流。

第四章:失速尾旋的處理措施41.1 失速的改出措施

在飛力實驗課程操縱塞斯納飛機進(jìn)行模擬飛行時,我有意讓飛機處于低速大迎角狀態(tài),使飛機失速。經(jīng)多次實驗,我發(fā)現(xiàn)當(dāng)飛機失速后,應(yīng)當(dāng)停止過于猛烈的拉桿,讓飛機先俯沖一段距離,待飛機速度恢復(fù)至 70-80mile/h 左右時,柔和將飛機拉至平飛,再緩緩爬升恢復(fù)高度。切忌猛烈拉桿或打副翼。4..2 2 尾旋 的改出措施

改出尾旋關(guān)鍵是迅速制止飛機旋轉(zhuǎn),然后設(shè)法減小飛機迎角,降低飛機的姿態(tài)角,通過下降高度換取速度,要求飛機心須有足夠安全高度(2000m~2500m以上為宜),然后依據(jù)飛機滾轉(zhuǎn)速度、載荷、下墜速度、姿態(tài)、剩余高度等情況視情實施改出。改出尾旋方法很多,基本要點為用腳蹬蹬平方向舵(方向舵中立)或反尾旋滾轉(zhuǎn)方向蹬舵(只有反尾旋方向蹬舵才能滯轉(zhuǎn),切忌反尾旋滾轉(zhuǎn)方向壓駕駛桿),以修正側(cè)滑和滯轉(zhuǎn)(側(cè)滑帶來的尾旋滾轉(zhuǎn)是順機翼失速、旋轉(zhuǎn)一側(cè));副翼中立(駕駛桿橫向中立)或順尾旋滾轉(zhuǎn)方向壓駕駛桿(能夠迅速滯轉(zhuǎn));如果發(fā)動機以高速運轉(zhuǎn),須立即收油門到慢車,當(dāng)旋轉(zhuǎn)完全被制止、迎角完全減小、飛機速度恢復(fù)足夠大后,再柔和拉桿改出尾旋,改出過程中要沉著冷靜注意側(cè)滑儀、速度表、高度表。

第五章:小結(jié)

飛機的失速尾旋現(xiàn)象雖然一度被稱為“死亡陷阱”,但我們只要搞清它的發(fā)生機理,在飛機設(shè)計和飛行員訓(xùn)練中采取預(yù)防措施,研究新的防尾旋措施,例如:“反尾旋傘”,失速尾旋也會變得不那么可怕。

下載FPGA實驗報告北航電氣技術(shù)實驗word格式文檔
下載FPGA實驗報告北航電氣技術(shù)實驗.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    北航matlab上機實驗報告

    MATLAB基礎(chǔ)上機指導(dǎo)書 實驗?zāi)康?MATLAB基礎(chǔ)上機實驗的目的主要是在深入理解和掌握課程中的基本概念和原理的基礎(chǔ)上培養(yǎng)學(xué)習(xí)者用計算機解決實際問題的意識,訓(xùn)練和提高學(xué)生分析......

    FPGA可調(diào)數(shù)字時鐘實驗報告

    浙江大學(xué)城市學(xué)院實驗報告紙 一、實驗要求 1、用vhdl編程,實現(xiàn)10進(jìn)制計數(shù)器 2、用vhdl編程,實現(xiàn)60進(jìn)制計數(shù)器 3、用vhdl編程,實現(xiàn)數(shù)字時鐘,時、分、秒、毫秒分別顯示在數(shù)碼管上......

    北航物理實驗GPS模擬與聲源定位實驗報告

    聲源定位C++程序 #include #include using namespace std; #define c 2982 #define pai 3.1415926535 int main() { cout......

    實用運動控制技術(shù)實驗報告_實驗一

    《實用運動控制技術(shù)》課程實驗報告姓名:學(xué)號:班級: ------------------------ 實驗一直流伺服電機控制系統(tǒng)實驗 實驗?zāi)康?了解直流電機運動控制系統(tǒng)原理 實驗內(nèi)容 1) 根據(jù)所給......

    數(shù)據(jù)庫原理及技術(shù)實驗報告-實驗10

    《數(shù)據(jù)庫原理及技術(shù)》實驗報告 姓名: 莫鴻斌學(xué)號:201601030137 班級:2016級計算機科學(xué)與技術(shù) 實驗日期: 2018-3-9 一、實驗項目 數(shù)據(jù)庫備份與恢復(fù)、數(shù)據(jù)的導(dǎo)入導(dǎo)出 二、實驗?zāi)?.....

    數(shù)據(jù)庫原理及技術(shù)實驗報告-實驗11

    《數(shù)據(jù)庫原理及技術(shù)》實驗報告 姓名:莫鴻斌 學(xué)號:201601030137 班級:2016級計算機科學(xué)與技術(shù) 實驗日期: 2018-3-23 一、實驗項目 T-SQL創(chuàng)建修改數(shù)據(jù)庫和表 二、實驗?zāi)康?1. 掌......

    電氣CAD實驗報告

    中北大學(xué)計算機與控制工程學(xué)院實驗報告 《電氣CAD實驗報告》 專 業(yè) 電氣工程與智能控制 班 級 14070541 學(xué) 號 1407054147 姓 名 袁 航 指導(dǎo)教師 張 瑜 實驗報告 實驗:一實驗......

    電氣實習(xí)實驗報告

    電氣控制系統(tǒng)實習(xí)報告 ----Z3050型搖臂鉆床電氣控制原理 目錄: 一 實習(xí)性質(zhì)………………………………………1 二 實習(xí)的目的和意思…………………………....1 三 實習(xí)要求…......

主站蜘蛛池模板: 亚洲色av天天天天天天| 久久不见久久见中文字幕免费| 国产成人喷潮在线观看| 一区二区三区中文字幕| 成年无码av片在线狼人| 7878成人国产在线观看| 久久婷婷五月综合色国产香蕉| 中国内地毛片免费高清| 性一交一乱一色一视频| 性色av无码中文av有码vr| 国产真人无遮挡作爱免费视频| 激情内射日本一区二区三区| 天天爽天天爽天天爽| 欧美人与动另类xxxx| 亚洲欧美色国产综合| 98在线视频噜噜噜国产| 亚欧成人无码av在线播放| 日日干夜夜操高清视频| 米奇7777狠狠狠狠视频影院| 永久免费毛片在线播放| 国产精品久久久国产盗摄| 日本午夜免a费看大片中文4| 亚洲av无码成人精品区狼人影院| 久久久精品久久久久久96| 人妻免费一区二区三区最新| 久久综合伊人77777麻豆| av无码欧洲亚洲电影网| 狠狠色噜噜狼狼狼色综合久| 无码一区二区三区av免费| 国产精品亚洲综合久久系列| 国产色视频自在线观看| 日韩内射美女人妻一区二区三区| 2022一本久道久久综合狂躁| 特级a做爰全过程片| 国产美女裸体无遮挡免费视频| 亚洲а∨天堂2019在线无码| 男女啪啪做爰高潮免费网站| 日韩激情无码不卡码| 国产成人无码性教育视频| 亚洲人成欧美中文字幕| 色偷偷av男人的天堂京东热|