FPGA三人表決器
一、項(xiàng)目介紹
相信大家對電視中的選秀節(jié)目并不陌生,我們常常能夠見到一種比賽規(guī)則:當(dāng)三名評委中有兩名及以上同意選手晉級時(shí),該選手才能晉級,那么如何去實(shí)現(xiàn)該項(xiàng)目呢?
本文引用地址:http://2s4d.com/article/202312/454067.htm二、實(shí)現(xiàn)原理
其實(shí)這一切都離不開數(shù)字電路,首先我們可以繪制出三人表決器的真值表,然后用Verilog去實(shí)現(xiàn)它,真值表如下:
三、硬件部分
通過對此項(xiàng)目進(jìn)行評估我們發(fā)現(xiàn):
1.該項(xiàng)目需要三個(gè)輸入,我們可以通過撥碼開關(guān)進(jìn)行實(shí)現(xiàn);
2.需要顯示模塊來表示投票情況,這里我們選用數(shù)碼管進(jìn)行實(shí)現(xiàn);
四、Verilog實(shí)現(xiàn)
// ******************************************************************** // >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<< // ******************************************************************** // File name : debounce.v // Module name : debounce // Author : STEP // Description : // // -------------------------------------------------------------------- // Code Revision History : // -------------------------------------------------------------------- // Version: |Mod. Date: |Changes Made: // V1.0 |2017/03/14 |Initial ver // -------------------------------------------------------------------- // Module Function:三人表決器 module voter(a,b,c,num_led,result_led); input a; //評委A input b; //評委B input c; //評委C output [2:0] num_led; //投票數(shù)顯示; output result_led; //投票結(jié)果顯示; assign num_led=~{a,b,c}; //用三個(gè)LED表示投票情況,另根據(jù)硬件電路,LED為0時(shí)亮,故取反 assign result_led=~((!a&b&c)||(a&!b&c)||(a&b&!c)||(a&b&c))?1:0; //此處請參閱真值表,另根據(jù)硬件電路,LED為0時(shí)亮,故取反 endmodule
五、實(shí)現(xiàn)效果
撥碼開關(guān)1、2、3分別代表評委A、B、C,LED1~3代表投票狀態(tài),例如,評委A投票,LED1亮,LED4代表是否通過。
下圖為無人投票時(shí),
下圖為有一位評委投票時(shí),
下圖為兩人進(jìn)行投票時(shí),可見投票通過指示燈已經(jīng)亮起;
最后,三人同時(shí)投票
評論