基于VHDL的表決器的設(shè)計(jì)
一、 實(shí)驗(yàn)?zāi)康?br />
1、 熟悉VHDL的編程。
2、 熟悉七人表決器的工作原理。
3、 進(jìn)一步了解實(shí)驗(yàn)系統(tǒng)的硬件結(jié)構(gòu)。
二、 實(shí)驗(yàn)原理
所謂表決器就是對(duì)于一個(gè)行為,由多個(gè)人投票,如果同意的票數(shù)過(guò)半,就認(rèn)為此行為可行;否則如果否決的票數(shù)過(guò)半,則認(rèn)為此行為無(wú)效。
七人表決器顧名思義就是由七個(gè)人來(lái)投票,當(dāng)同意的票數(shù)大于或者等于4時(shí),則認(rèn)為同意;反之,當(dāng)否決的票數(shù)大于或者等于4時(shí),則認(rèn)為不同意。實(shí)驗(yàn)中用7個(gè)撥動(dòng)開(kāi)關(guān)來(lái)表示七個(gè)人,當(dāng)對(duì)應(yīng)的撥動(dòng)開(kāi)關(guān)輸入為‘1’時(shí),表示此人同意;否則若撥動(dòng)開(kāi)關(guān)輸入為‘0’,則表示此人反對(duì)。表決的結(jié)果用一個(gè)LED表示,若表決的結(jié)果為同意,則LED被點(diǎn)亮;否則,如果表決的結(jié)果為反對(duì),則LED不會(huì)被點(diǎn)亮。同時(shí),數(shù)碼管上顯示通過(guò)的票數(shù)。
三、 實(shí)驗(yàn)內(nèi)容
本實(shí)驗(yàn)就是利用實(shí)驗(yàn)系統(tǒng)中的撥動(dòng)開(kāi)關(guān)模塊和LED模塊以及數(shù)碼管模塊來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的七人表決器的功能。撥動(dòng)開(kāi)關(guān)模塊中的K1~K7表示七個(gè)人,當(dāng)撥動(dòng)開(kāi)關(guān)輸入為‘1’時(shí),表示對(duì)應(yīng)的人投同意票,否則當(dāng)撥動(dòng)開(kāi)關(guān)輸入為‘0’時(shí),表示對(duì)應(yīng)的人投反對(duì)票;LED模塊中D1表示七人表決的結(jié)果,當(dāng)D1點(diǎn)亮?xí)r,表示此行為通過(guò)表決;否則當(dāng)D1熄滅時(shí),表示此行為未通過(guò)表決。數(shù)碼管顯示通過(guò)的票數(shù)。
四、 實(shí)驗(yàn)步驟
1、 打開(kāi)QUARTUSII軟件,新建一個(gè)工程。
2、 建完工程之后,再新建一個(gè)VHDL File,打開(kāi)VHDL編輯器對(duì)話框。
3、 按照實(shí)驗(yàn)原理和自己的想法,在VHDL編輯窗口編寫VHDL程序,用戶可參照光盤中提供的示例程序。
4、 編寫完VHDL程序后,保存起來(lái)。方法同實(shí)驗(yàn)一。
5、 對(duì)自己編寫的VHDL程序進(jìn)行編譯并仿真,對(duì)程序的錯(cuò)誤進(jìn)行修改。
6、 編譯仿真無(wú)誤后,根據(jù)用戶自己的要求進(jìn)行管腳分配。分配完成后,再 進(jìn) 行全編譯一次,以使管腳分配生效。
7、 根據(jù)實(shí)驗(yàn)內(nèi)容用實(shí)驗(yàn)導(dǎo)線將上面管腳分配的FPGA管腳與對(duì)應(yīng)的模塊連接起來(lái)。
如果是調(diào)用的本書提供的VHDL代碼,則實(shí)驗(yàn)連線如下:
K1-K7:投票者的投票信號(hào),接一個(gè)撥動(dòng)開(kāi)關(guān)K1-K7。
LEDAG[6..0]:數(shù)碼管顯示信號(hào),接數(shù)碼管的G、F、E、D、C、B、A。
m_Result: 搶答成功者顯示信號(hào),接一個(gè)LED燈D1。
8、 用下載電纜通過(guò)JTAG口將對(duì)應(yīng)的sof文件加載到FPGA中。觀察實(shí)驗(yàn)結(jié)果是否與自己的編程思想一致
五、 實(shí)驗(yàn)結(jié)果與現(xiàn)象
以設(shè)計(jì)的參考示例為例,當(dāng)設(shè)計(jì)文件加載到目標(biāo)器件后,確認(rèn)信號(hào)連接線已正確連接,撥動(dòng)實(shí)驗(yàn)系統(tǒng)中撥動(dòng)開(kāi)關(guān)模塊的K1-K7七位撥動(dòng)開(kāi)關(guān),如果撥動(dòng)開(kāi)關(guān)的值為“1”(即撥動(dòng)開(kāi)關(guān)的開(kāi)關(guān)置于上端,表示此人通過(guò)表決)的個(gè)數(shù)大于或等于四時(shí)LED模塊的D1被點(diǎn)亮,否則LED1不被點(diǎn)亮。數(shù)碼管顯示通過(guò)的票數(shù)。
六、 實(shí)驗(yàn)報(bào)告
1、 繪出仿真波形,并作說(shuō)明。
2、 將實(shí)驗(yàn)原理、設(shè)計(jì)過(guò)程、編譯仿真波形和分析結(jié)果、硬件測(cè)試結(jié)果記錄下來(lái)。
3、 試在此實(shí)驗(yàn)的基礎(chǔ)上增加一個(gè)表決的時(shí)間,只的在這一時(shí)間內(nèi)的表決結(jié)果有效。