實(shí)驗(yàn)四FPGA時(shí)序邏輯設(shè)計(jì).doc
《實(shí)驗(yàn)四FPGA時(shí)序邏輯設(shè)計(jì).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《實(shí)驗(yàn)四FPGA時(shí)序邏輯設(shè)計(jì).doc(12頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
實(shí)驗(yàn)四 FPGA 時(shí)序邏輯設(shè)計(jì) 學(xué)習(xí)目標(biāo) 1、 了解可編程數(shù)字系統(tǒng)設(shè)計(jì)的流程 2、 掌握 Quartus II 軟件的使用方法 3、 掌握原理圖輸入方式設(shè)計(jì)時(shí)序邏輯電路的方法和流程 必做實(shí)驗(yàn) 1、 實(shí)驗(yàn)內(nèi)容: 設(shè)計(jì)一個(gè)電路,用 44 矩陣鍵盤輸入一個(gè) 4 位數(shù),并在數(shù)碼管上顯示,要求如下: (1)輸入時(shí),數(shù)字順序是從左到右。例如,順序輸入 0、1、2、3 應(yīng)該在數(shù)碼管上顯示“0123” 。 (2)比較輸入數(shù)值,比較結(jié)果用 1 個(gè) LED 顯示。如果輸入值和你的學(xué)號(hào)后 4 位相等,則LED燈亮,不等LED滅。 (3)實(shí)驗(yàn)箱上的數(shù)碼管內(nèi)部已譯碼, 44 鍵盤上拉電阻也已連接好。 2、 實(shí)驗(yàn)要求: 1、 根據(jù)設(shè)計(jì)要求劃分設(shè)計(jì)層次、單元模塊和接口信號(hào),在預(yù)習(xí)報(bào)告上記錄設(shè)計(jì)過程,繪制系統(tǒng)框圖, 每個(gè)模塊的狀態(tài)轉(zhuǎn)移圖或 ASM 圖,并設(shè)計(jì)驗(yàn)證方案。 2、 用原理圖輸入法設(shè)計(jì)所有單元模塊并編譯,分析編譯時(shí)產(chǎn)生的錯(cuò)誤和警告信息 3、 對(duì)所有的單元模塊進(jìn)行功能仿真,并記錄和分析全部仿真結(jié)果 4、 在頂層文件中連接全部單元模塊并編譯、綜合、分配管腳和適配。 5、 對(duì)整個(gè)系統(tǒng)進(jìn)行時(shí)序仿真,并記錄和分析仿真結(jié)果。 6、 將仿真正確的設(shè)計(jì)下載到實(shí)驗(yàn)箱上,連接輸入輸出設(shè)備和示波器進(jìn)行板級(jí)驗(yàn)證 實(shí)驗(yàn)內(nèi)容 設(shè)計(jì)原理 矩陣式鍵盤,將I/O線分別組成行、列結(jié)構(gòu),按鍵設(shè)置在行列的交點(diǎn)上。44行列鍵 用4條I/O線作為行線,4條I/O線作為列線所組成的的鍵盤,16個(gè)按鍵分別設(shè)置在行、列線的交點(diǎn)處,行線、列線分別連接到按鍵開關(guān)的兩端。所有的行線和列線都通過上拉電阻接電源,鉗位在高電平狀態(tài)。相比較獨(dú)立式按鍵,44行列式鍵盤只需要 8 根 I/O 線就實(shí)現(xiàn)了16個(gè)按鍵,節(jié)省了8個(gè)I/O口。但由于行、列線為多鍵共用,各按鍵彼此將相互發(fā)生影響,必須將行、列線信號(hào)配合起來并作適當(dāng)?shù)奶幚?,才能確定閉合鍵的位置。 通過對(duì)行線輪流加低電平信號(hào),C3C2C1C0的值在1110,1101,1011和0111之間變化。無鍵摁下時(shí),R3R2R1R0等于1111,R=R3*R2*R1*R0=1;有按鍵摁下時(shí),行線短接,R3R2R1R0不等于1111,R=R3*R2*R1*R0=0。檢測(cè)到變化時(shí),輸出控制信號(hào)E=R3R2R1R0,使行線停止掃描。行線和列線共同構(gòu)成8位二進(jìn)制碼通過譯碼電路進(jìn)行譯碼得到鍵值。松開按鍵,列線R=1,掃描繼續(xù)。 按鍵開關(guān)一般是利用機(jī)械觸點(diǎn)來實(shí)現(xiàn)合、斷的。由于機(jī)械觸 點(diǎn)的彈性作用,在按鍵閉合和斷開的瞬間均會(huì)出現(xiàn)一系列尖脈沖,如圖所示,這種現(xiàn)象稱之為“抖動(dòng)”。抖動(dòng)時(shí)間的長(zhǎng)短與開關(guān)的機(jī)械特性有關(guān),一般為 5~10mS。而按鍵穩(wěn)定閉合的時(shí)間是由操作人員的按鍵動(dòng)作所確定的,一般不低于0.1秒。為了保證電路對(duì)鍵的一次閉合僅做一次鍵輸入處。 1. 鍵盤的行線掃描電壓 使用寄存器74194,構(gòu)造一個(gè)模為4的狀態(tài)循環(huán),采用右移,S1C0=01。 電路狀態(tài):1110→1101→1011→0111→1110 真值表: C3 C2 C2 C2 DSR 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 卡諾圖: 最簡(jiǎn)邏輯表達(dá)式:DSR=C3。但此時(shí)并不滿足自動(dòng)。 重新修改無關(guān)的循環(huán),并修改卡諾圖 : 利用最大項(xiàng)之和得到:DSR=C2+C1+C0=C2C1C0。此時(shí)滿足自啟動(dòng)。 另外,考慮到還有控制信號(hào)E,當(dāng)E為1,電路保持掃描狀態(tài);當(dāng)E為0是,電路停止掃描,保持此時(shí)的狀態(tài)。為了完成此功能,使時(shí)鐘信號(hào)為CP*E。S1=0,S2=1。 邏輯電路圖: 2. 消除抖動(dòng) 根據(jù)題目的要求,使用D觸發(fā)器消除抖動(dòng)。使用兩個(gè)7474進(jìn)行封裝,封裝為一個(gè)四輸入四輸出的D觸發(fā)器。 邏輯電路: 3. 轉(zhuǎn)碼為二進(jìn)制碼 通過行列的掃描結(jié)果可以得到8位二進(jìn)制碼,需要轉(zhuǎn)換得到4位二進(jìn)制碼。 In[7] In[6] In[5] In[4] In[3] In[2] In[1] In[0] 16進(jìn)制碼 二進(jìn)制碼 C3 C2 C1 C0 R3 R2 R1 R0 0 1 1 1 1 1 0 1 0 0000 1 1 1 0 1 1 1 0 1 0001 1 1 1 0 1 1 0 1 2 0010 1 1 1 0 1 0 1 1 3 0011 1 1 0 1 1 1 1 0 4 0100 1 1 0 1 1 1 0 1 5 0101 1 1 0 1 1 0 1 1 6 0110 1 0 1 1 1 1 1 0 7 0111 1 0 1 1 1 1 0 1 8 1000 1 0 1 1 1 0 1 1 9 1001 1 1 1 0 0 1 1 1 A 1010 1 1 0 1 0 1 1 1 B 1011 1 0 1 1 0 1 1 1 C 1100 0 1 1 1 0 1 1 1 D 1101 0 1 1 1 1 1 1 0 E 1110 0 1 1 1 1 0 1 1 F 1111 使用Verilog語言實(shí)現(xiàn),并實(shí)現(xiàn)封裝。16個(gè)按鍵分別按下時(shí),對(duì)應(yīng)16種不同的情況,編碼從0到F的二進(jìn)制代碼。當(dāng)按鍵沒有按下時(shí),輸出0的4位二進(jìn)制代碼。代碼如下: 邏輯電路圖的如下: 4. 儲(chǔ)存電路設(shè)計(jì) 轉(zhuǎn)碼部分每次只能輸出一個(gè)4位二進(jìn)制代碼,又因?yàn)橛兴膫€(gè)數(shù)碼管要顯示不同的字, 所以要對(duì)轉(zhuǎn)碼后的4位二進(jìn)制代碼進(jìn)行存儲(chǔ)。 通過746161構(gòu)造一個(gè)周期為4的循環(huán):00→01→10→11。 在此處鍵入公式。 74161的輸出QA和QB決定此時(shí)轉(zhuǎn)碼的4位二進(jìn)制信號(hào)因該儲(chǔ)存到哪里,以及74194的工作狀態(tài)。首先用4個(gè)74194進(jìn)行存儲(chǔ)此時(shí)的4位二進(jìn)制信號(hào),再用4個(gè)74194存儲(chǔ)以前的4位二進(jìn)制信號(hào),由此保證在按下新的按鍵的時(shí)候,以前的數(shù)值不會(huì)立馬被清零,直到完成按鍵的動(dòng)作的時(shí)候,數(shù)碼管才顯示新輸入的按鍵內(nèi)容。 通過以上的分析可以得到結(jié)論,每一個(gè)數(shù)碼管應(yīng)該對(duì)應(yīng)兩個(gè)74194,這兩個(gè)74194的工作狀態(tài)應(yīng)該是相反的。74194的工作狀態(tài)只有兩個(gè),分別是同步置數(shù)和保持,對(duì)應(yīng)S1S0分別位11和00。存儲(chǔ)電路的時(shí)鐘信號(hào)應(yīng)該和row[3..0]有關(guān)。 通過74138,結(jié)合74138的使能端,決定每一位應(yīng)該存儲(chǔ)到哪個(gè)74194中。故應(yīng)該有4個(gè)74138存在。例如:當(dāng)QAQB=00的時(shí)候,此時(shí)的4位二進(jìn)制數(shù)中的每一位都選擇存儲(chǔ)到第一個(gè)74194中。邏輯電路圖如下: 舉例說明,當(dāng)QAQB=00的時(shí)候,第一個(gè)74194選擇存儲(chǔ),此時(shí)的74194的狀態(tài)應(yīng)該是并行輸入,后面的74194狀態(tài)時(shí)的保持(保持上一個(gè)二進(jìn)制數(shù))。當(dāng)按鍵動(dòng)作結(jié)束,此時(shí)QAQB=01,跳到下一個(gè)狀態(tài),第一個(gè)74194的狀態(tài)變?yōu)楸3?,后面?4194狀態(tài)變?yōu)椴⑿休斎搿V庇^上來看,當(dāng)按鍵動(dòng)作結(jié)束時(shí),數(shù)碼管更新顯示新的數(shù)字。邏輯電路圖連接如下: 通過分析可以得到,上面的兩列74194的CP時(shí)鐘信號(hào)是不同,對(duì)應(yīng)的上升觸發(fā)沿是不一樣的時(shí)間,才可以完成相應(yīng)的功能。邏輯電路連接如下: 三個(gè)時(shí)鐘信號(hào),分別是74161的CP以及第一列74194的CP和第二列74194的CP。 5. 比較電路的設(shè)計(jì) 根據(jù)題目的要求,要求和自己的學(xué)號(hào)后四位7417進(jìn)行比較。S0和7比較,S1和4比較,S2和1比較,S3和7比較。利用7485實(shí)現(xiàn)每一位的比較,當(dāng)所有位的比較相等時(shí),結(jié)果輸出1。邏輯電路圖如下: 封裝結(jié)果如下: 6. 解碼電路 利用老師的提供的模塊實(shí)現(xiàn)解碼,點(diǎn)亮對(duì)應(yīng)數(shù)碼管的不同部分,正確輸出對(duì)應(yīng)引腳。 引腳分配如下圖所示: 頂層邏輯電路設(shè)計(jì)- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 實(shí)驗(yàn) FPGA 時(shí)序 邏輯設(shè)計(jì)
鏈接地址:http://www.3dchina-expo.com/p-6660208.html