可編程邏輯器件與硬件描述語言_第1頁
可編程邏輯器件與硬件描述語言_第2頁
可編程邏輯器件與硬件描述語言_第3頁
可編程邏輯器件與硬件描述語言_第4頁
可編程邏輯器件與硬件描述語言_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Y0Y1Y2Y3Y0Y1Y2Y3Y4Y5Y6Y7圖2-13-8譯碼器表2-1譯碼器功能表組合邏輯電路實(shí)驗(yàn)(一)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:3-8譯碼器設(shè)計(jì)二實(shí)驗(yàn)?zāi)康恼莆誌SE開發(fā)工具的使用,掌握FPGA開發(fā)的基本步驟;2?掌握組合邏輯電路設(shè)計(jì)的一般方法;3?掌握程序下載方法,了解UCF文件的格式;4?初步了解開發(fā)板資源,掌握開發(fā)板使用方法。重點(diǎn)了解滑動(dòng)開關(guān)和LED顯示燈的使用方法。實(shí)驗(yàn)內(nèi)容1用VHDL實(shí)現(xiàn)3-8譯碼器模塊譯碼器電路如圖2-1所示。其功能如表2-1所示。試用VHDL實(shí)現(xiàn)該譯碼器,并在開發(fā)板上進(jìn)行檢驗(yàn)。3-8譯碼器EN0101001000000110010000000111100000002.將程序下載到FPGA并進(jìn)行檢驗(yàn)資源使用要求:用滑動(dòng)開關(guān)SW3~SW1作為輸入A,B,C;滑動(dòng)開關(guān)SWO控制EN;8個(gè)LED燈表示8個(gè)輸出。檢驗(yàn)方法:當(dāng)SW0處于ON(EN=1)位置時(shí),所有LED燈滅;當(dāng)SW0處于OFF(EN=0),反映當(dāng)前輸入的譯碼輸出在LED燈上顯示,即當(dāng)輸入為000(滑動(dòng)開關(guān)SW3-SW1處于OFF狀態(tài)),LED0亮,其它燈滅,等等。實(shí)驗(yàn)步驟1啟動(dòng)ISE,新建工程文件,編寫3-8譯碼器的VHDL模塊;新建UCF文件,輸入位置約束;3完成綜合、實(shí)現(xiàn),生成下載文件;4連接開發(fā)板USB下載線,開啟開發(fā)板電源;下載到FPGA;6撥動(dòng)開關(guān),驗(yàn)證結(jié)果是否正確。主要vhd[代碼architectureBehavioralofcoder_38is --3-8譯碼器行為級(jí)描述signalx:STD_LOGIC_VECTOR(2downto0);beginx<=A&B&C;process(en,x)beginif(en二'O')thencasexiswhen"000"=>Y<="00000001";when"001"=>Y<="00000010";when"010"=>Y<="00000100";when"011"=>Y<="00001000";when"100"=>Y<="00010000";when"101"=>Y<="00100000";when"110"=>Y<="01000000";when"111"=>Y<="10000000";whenothers=>NULL;endcase;elseY<="00000000";endif;endprocess;endBehavioral;六.心得體會(huì)這次實(shí)驗(yàn)內(nèi)容比較簡單,主要是為了熟悉MinxISE及FPGA實(shí)驗(yàn)板的使用方法,了解整個(gè)開發(fā)流程。ISE是一款功能強(qiáng)大的FPGA設(shè)計(jì)軟件,在實(shí)際的設(shè)計(jì)過程中要注意工程中的FPGA開發(fā)板型號(hào)等參數(shù)的選擇應(yīng)與實(shí)際硬件一致,并保證UCF位置約束的正確性,要在頭腦中將整個(gè)過程無縫銜接,避免細(xì)節(jié)處錯(cuò)誤的發(fā)生。時(shí)序邏輯電路實(shí)驗(yàn)(一)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:可逆計(jì)數(shù)器設(shè)計(jì)實(shí)驗(yàn)?zāi)康??進(jìn)一步熟練ISE開發(fā)工具,鞏固FPGA開發(fā)的基本步驟,掌握功能仿真方法;2?掌握時(shí)序邏輯電路設(shè)計(jì)的一般方法,掌握時(shí)鐘分頻程序設(shè)計(jì)方法;理解VHDL的層次結(jié)構(gòu)設(shè)計(jì);4?鞏固程序下載方法;5^解開發(fā)板時(shí)鐘資源,以及時(shí)鐘分頻方法。實(shí)驗(yàn)內(nèi)容1基本可逆計(jì)數(shù)器模塊可逆計(jì)數(shù)器電路圖及功能表如圖3-1和表3-1所示。根據(jù)真值表易寫出可逆計(jì)數(shù)器的vhdl模塊,要注意的是:由于其中涉及向量類型的算術(shù)運(yùn)算,所以在庫中要添加STD_LOGIC_UNSIGNED.ALL;由于Y[0..7為out類型,不能獲取其值進(jìn)行操作,應(yīng)當(dāng)添加一個(gè)信號(hào)comb,進(jìn)行算術(shù)運(yùn)算。圖3-1可逆計(jì)數(shù)器原理圖表3-1可逆計(jì)數(shù)器功能表clrenUp/DnelkY7~Y01XXX0000000000XX停止計(jì)數(shù)011計(jì)數(shù)器+1操作0J 0 計(jì)數(shù)器-1操作2.1/50000000分頻器模塊可逆計(jì)數(shù)器電路圖如圖3-2所示。在實(shí)驗(yàn)板上提供了50MHz的系統(tǒng)時(shí)鐘頻率,為獲取1Hz的計(jì)數(shù)時(shí)鐘頻率,需要對(duì)其進(jìn)行分頻,即輸入端輸入50MHz的系統(tǒng)時(shí)鐘頻率,然后輸出端每過25M個(gè)頻率輸出信號(hào)跳變一次,即可得到1Hz的頻率輸出。3二選一電路模塊二選一電路電路圖如圖3-3所示。通過滑動(dòng)開關(guān)即可選擇是通過1Hz時(shí)鐘輸入還是通過外部按鍵輸入。4綜合原理圖(頂層原理圖)選擇原理圖模式,將生成的(已封裝)各模塊器件組合成最終形式。如圖3-4所示。50Mclock1Hzclock1/50000000圖3-21/50000000分頻器In1In2Dout圖3-350Mclock1Hzclock1/50000000圖3-21/50000000分頻器In1In2Dout圖3-3二選一電路SW2Y0(LED0)Y3(LED3)Y4(LED4)Y5(LED5)Y6(LED6)Y7(LED7)圖3-4完整的可逆計(jì)數(shù)器實(shí)驗(yàn)步驟建立工程文件,頂層文件為原理圖;編寫分頻模塊程序,要求輸入為50MHz系統(tǒng)時(shí)鐘,輸出為1Hz計(jì)數(shù)時(shí)鐘;3編寫2選1模塊,輸入為按鍵、1Hz時(shí)鐘和開關(guān)SW2,輸出為計(jì)數(shù)源;4?編寫計(jì)數(shù)器模塊主程序模塊;5?在原理圖中,將各個(gè)模塊連接,使用pinhead分配引腳資源;對(duì)程序進(jìn)行功能仿真;7?下載程序,進(jìn)行驗(yàn)證。主要vhdI代碼--1/50000000分頻模塊architectureBehavioraloffdivissignaltmp:std_logic:='O';beginprocess(cin)variablefd:INTEGER:=0;beginif(cin'eventandcin='1')thenfd:=fd+1;if(fd=25000000)thentmp<=nottmp;fd:=0;cout<=tmp;endif;endif;endprocess;endBehavioral;-二選一電路模塊architectureBehavioralofmux21isbeginprocess?n1,in2,s)beginif(s='O')thendout<=ini;elsedout<=in2;endif;endprocess;endBehavioral;--基本可逆計(jì)數(shù)器模塊architectureBehavioralofcounterissignalcomb:STD_LOGIC_VECTOR(7downto0):="00000000";beginprocess(clr,en,sel,clk)beginif(clr='1')thencomb<="00000000";elsif(en='1')thenif(clk'eventandclk='1')thenif(sel='1')thencomb<=comb+1;elsif(sel='0')thencomb<=comb-1;endif;endif;endif;endprocess;Y<=comb;endBehavioral;六、心得體會(huì)這次的實(shí)驗(yàn)比較綜合,共分為三個(gè)模塊,通過三個(gè)模塊的組合完成最終設(shè)計(jì)。通過這次實(shí)驗(yàn),我不僅對(duì)于 vhdl程序的編寫更加熟悉,也初步構(gòu)建起了硬件設(shè)計(jì)的模塊化思想,學(xué)習(xí)了自頂向下的設(shè)計(jì)方法,學(xué)會(huì)了利用ise軟件進(jìn)行電路仿真的方法,并掌握了一些常用的硬件描述方式,大大加深了對(duì)于使用vhdl語言描述硬件方式的印象。狀態(tài)機(jī)電路實(shí)驗(yàn)(一)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:按鍵抖動(dòng)消除及驗(yàn)證電路設(shè)計(jì)實(shí)驗(yàn)?zāi)康??進(jìn)一步熟練ISE開發(fā)工具,鞏固FPGA開發(fā)的基本步驟,掌握功能仿真方法;2?了解按鍵抖動(dòng)的原因,抖動(dòng)消除方法掌握狀態(tài)機(jī)的設(shè)計(jì)方法;4?掌握消除抖動(dòng)的狀態(tài)機(jī)設(shè)計(jì)方法5?鞏固程序下載方法。實(shí)驗(yàn)內(nèi)容原理簡介按鍵動(dòng)作發(fā)生時(shí)按鍵的輸出會(huì)出現(xiàn)不穩(wěn)定的邏輯’0'和邏輯’1'的跳變。該信號(hào)直接輸入到計(jì)數(shù)器之類電路-變。該信號(hào)直接輸入到計(jì)數(shù)器之類電路-會(huì)發(fā)生計(jì)數(shù)錯(cuò)誤。如圖3-5所示。圖3-5信號(hào)抖動(dòng)狀態(tài)分析設(shè)置五個(gè)狀態(tài):S0,S1,S2,S3,S4,S5。電路的復(fù)位信號(hào)RST有效時(shí),電路進(jìn)入復(fù)位狀態(tài)S0,在S0狀態(tài)下,時(shí)鐘信號(hào)CLK以一定頻率采樣按鍵輸入信號(hào)Key」n,如果采樣到Key」n二0'則停留在S0狀態(tài),并繼續(xù)采樣,一旦采樣到Key」n二'’則轉(zhuǎn)入S1延時(shí)狀態(tài),進(jìn)行消抖延時(shí),當(dāng)延時(shí)結(jié)束時(shí),Delay_end=1',則轉(zhuǎn)入S2狀態(tài),在此狀態(tài)下,時(shí)鐘信號(hào)CLK以一定頻率采樣按鍵輸入Key_in,如果Key」n二0’則轉(zhuǎn)入S0,否則轉(zhuǎn)入S3;狀態(tài)S3,S4的轉(zhuǎn)換過程和條件與S2相同,在狀態(tài)S4下,如果Key」n='T,則轉(zhuǎn)入S5狀態(tài),當(dāng)進(jìn)入S5時(shí),表示經(jīng)過S2,S3,S4三個(gè)連續(xù)狀態(tài)檢測按鍵輸入Key_in都為‘T,則認(rèn)為按鍵處于穩(wěn)定狀態(tài),在S5輸出按鍵確認(rèn)信號(hào)Key_confirm='T同時(shí)在狀態(tài)S5下,時(shí)鐘信號(hào)CLK檢測按鍵輸入Key_in,如果Key_in=1'表示按鍵未釋放,繼續(xù)停留在S5,檢測輸入信號(hào),如果檢測到Key_in=1'表示按鍵已經(jīng)釋放,輸出Key_confirm=0'返回到狀態(tài)SO,等待下一次按鍵操作。狀態(tài)分析圖6卅一Q*延時(shí)keyin-1keyin-1延時(shí)結(jié)束Q0S5S4keyin-1'keyout-1'keyin-keyout='0'6卅一Q*延時(shí)keyin-1keyin-1延時(shí)結(jié)束Q0S5S4keyin-1'keyout-1'keyin-keyout='0'S2keyin-TS3實(shí)驗(yàn)步驟1?畫出電路的狀態(tài)轉(zhuǎn)換圖;編寫完整的VHDL程序;3?下載程序,進(jìn)行驗(yàn)證。主要vhdI代碼(延時(shí)消抖模塊)architectureBehavioralofdelayistypestatesis(s0,s1,s2,s3,s4,s5);signalnextstate:states;beginprocess(clk,keyin,keyin)variablenum:integer:=1000;beginiiif(rst='1')thennextstate<=s0;elsif(keyin'eventandkeyin='1')thencasenextstateiswhens0=>if(keyin='1')thennextstate<=s1;elsenull;endif;whens1=>num:=num-1;if(num=0)thennum:=1000;nextstate<=s2;elsenull;endif;whens2=>if(keyin='1')thennextstate<=s3;elsenextstate<=s0;endif;whens3=>if(keyin='1')thennextstate<=s4;elsenextstate<=s0;endif;whens4=>if(keyin='1')thennextstate<=s5;keyout<='1';elsenextstate<=s0;endif;whens5=>if(keyin='0')thennextstate<=s0;keyout<='O';elsenull;endif;endcase;endif;endprocess;endBehavioral;六、心得體會(huì)這次實(shí)驗(yàn)只編寫了一個(gè)模塊一一按鍵延時(shí)消抖模塊, 主要用到了有限狀態(tài)機(jī)的相關(guān)知識(shí),學(xué)會(huì)了使用狀態(tài)圖來清晰地顯示出狀態(tài)機(jī)的設(shè)計(jì)思路。有限狀態(tài)機(jī)的概念在牽涉到多個(gè)固定狀態(tài)之間根據(jù)不同條件進(jìn)行切換的問題中很重要,在生活中隨處可見其蹤影。本次通過編寫一個(gè)簡單的有限狀態(tài)機(jī)的vhdl模塊,讓我對(duì)它的機(jī)理與實(shí)現(xiàn)過程有了更深入的了解。綜合實(shí)驗(yàn)(一)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:兩人乒乓球游戲?qū)嶒?yàn)?zāi)康??進(jìn)一步熟練ISE開發(fā)工具,鞏固FPGA開發(fā)的基本步驟,掌握功能仿真方法;2?鞏固狀態(tài)機(jī)的設(shè)計(jì)方法;3?鞏固按鍵消抖電路設(shè)計(jì)方法;4?掌握多進(jìn)程程序設(shè)計(jì)方法;5?鞏固程序下載方法;6^解開發(fā)板時(shí)鐘資源,以及時(shí)鐘分頻方法。實(shí)驗(yàn)內(nèi)容1.原理簡介兩人乒乓游戲機(jī)用8個(gè)發(fā)光二極管代表乒乓球臺(tái),中間兩個(gè)發(fā)光二極管作為乒乓球網(wǎng),用點(diǎn)亮的發(fā)光二極管按照一定的方向移動(dòng)來表示球的運(yùn)動(dòng)。在游戲機(jī)的兩側(cè)各設(shè)置發(fā)球和擊球開關(guān),甲乙雙方按乒乓球比賽規(guī)則來操作開關(guān)。當(dāng)甲方按動(dòng)發(fā)球開關(guān)時(shí),靠近甲方的第一個(gè)發(fā)光二極管亮,然后發(fā)光二極管由甲方向乙方依次點(diǎn)亮,代表乒乓球的移動(dòng),當(dāng)球過網(wǎng)后,按照設(shè)計(jì)者規(guī)定的球位乙方就可以擊球。 若乙方提前擊球或者未擊到球,則甲方得分。然后重新發(fā)球比賽,直到一方達(dá)到21分為止,記分清0,重新開始新一局比賽。2狀態(tài)分析設(shè)置七個(gè)狀態(tài):“等待發(fā)球狀態(tài)”、“第一盞燈亮狀態(tài)”、“第八盞燈亮狀態(tài)”、“球向乙移動(dòng)狀態(tài)”、“球向甲移動(dòng)狀態(tài)”、“允許甲擊球狀態(tài)”、“允許乙擊球狀態(tài)”。開始的時(shí)候處于“等待發(fā)球狀態(tài)”,若甲發(fā)球則狀態(tài)轉(zhuǎn)移到“第一盞燈殼狀態(tài)”,若乙發(fā)球則轉(zhuǎn)移到“第八盞燈亮狀態(tài),,。以甲發(fā)球?yàn)槔喝舭l(fā)球后乙沒有提前擊球(規(guī)定球移動(dòng)到對(duì)方第一個(gè)發(fā)光二極管時(shí)允許擊球),那么狀態(tài)機(jī)從“第一盞燈亮狀態(tài)',轉(zhuǎn)移到“球向乙移動(dòng)狀態(tài)”,若此時(shí)乙依然沒有提前擊球,狀態(tài)就轉(zhuǎn)移到“允許乙擊球狀態(tài)”,在此狀態(tài)下,如果乙擊球了,那么狀態(tài)就轉(zhuǎn)移到“球向甲移動(dòng)狀態(tài)”。在“第一盞燈殼狀態(tài)”、“球向乙移動(dòng)狀態(tài)',中,如果乙擊球了,就算提前擊球,這樣甲得分,狀態(tài)轉(zhuǎn)移到“等待發(fā)球狀態(tài)”等待發(fā)球?!扒蛳蚣滓苿?dòng)狀態(tài)”之后的過程和前面的過程只不過是甲乙角色的調(diào)換而已,狀態(tài)轉(zhuǎn)移規(guī)則一樣。3.狀態(tài)分析圖甲得分 1乙得分四.實(shí)驗(yàn)步驟畫出游戲的狀態(tài)轉(zhuǎn)換圖;建立程序工程;編寫按鍵去抖進(jìn)程編寫狀態(tài)機(jī)進(jìn)程;5下載程序,進(jìn)行驗(yàn)證。五.主要vhdI代碼(游戲主體模塊)(該代碼與蔡坤、魏浩源合作完成)architectureBehavioralofgameistypestatesis(s0,s1,s2,s3,s4,s5,s6);--分別對(duì)應(yīng)"等待發(fā)球狀態(tài)二"第一盞燈亮狀態(tài)二"第八盞燈亮狀態(tài)"、"球向乙移動(dòng)狀態(tài)二"球向甲移動(dòng)狀態(tài)二"允許乙擊球狀態(tài)"和"允許甲擊球狀態(tài)"signalnext_state:states;signalready:STD_LOGIC:='0:beginprocess(clk,rst,hita,hitb,servea,serveb,startbtn)variablenum:integerrange0to10;variableascore,bscore:STD_LOGIC_VECTOR(3downto0);beginif(rst='1')then<="00000000";ready<='0';ascore:="0000";bscore:="0000";elsif(startbtn='1')thenready<='1';<="00011000";next_state<=s0;ascore:="0000";bscore:="0000";elsif(clk'eventandclk='1')thencasenext_stateiswhens0=>if(servea='1')thennext_state<=s1;num:一1;elsif(serveb='1')thennext_state<=s2;num:一6;elsenum:=10;endif;whens1=>if(hitb='1')thenascore:=ascore+'1';Y<=bscore&ascore;next_state<=s0;num:一0;elsenext_state<=s3;num:=2;whens2=>num:一6;if(hita二'1')thenbscore:=bscore+'1';endif;Y<=bscore&ascore;next_state<=sO;num:一0;elsenext_state<=s4;num:=5;endif;whens3=>if(hitb='1')thenascore:=ascore+'1';num:一0;yv一bscore&ascore;next_state<=sO;elsif(num=1)thennum:一2;elsif(num=2)thennum:一3;elsif(num=3)thennum:一4;next_state<=s5;elsif(num=4)thennum:一5;next_state<=s5;endif;whens4=>if(hita='1')thenbscore:=bscore+'1';Y<—bscore&ascore;num:一0;next_state<=s0;elsif(num=6)thennum:一5;elsif(num=5)thennum:一4;elsif(num=4)thennum:一3;next_state<=s6;elsif(num=3)thennum:一2;next_state<=s6;whens5=>if(hitb二'1')thennext_state<=s4;num:二num-1;elsif(num>6)thenascore:=ascore+'1';Y<—bscore&ascore;num:=0;next_sta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論