差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
表决器 [2017/03/14 09:38]
zhijun 创建
表决器 [2020/01/18 21:59] (当前版本)
gongyu
行 1: 行 1:
-======三人表决器====== +### 三人表决器 
-=====一、项目介绍=====+ 
 +--- 
 +#### 一、项目介绍
 相信大家对电视中的选秀节目并不陌生,我们常常能够见到一种比赛规则:当三名评委中有两名及以上同意选手晋级时,该选手才能晋级,那么如何去实现该项目呢? 相信大家对电视中的选秀节目并不陌生,我们常常能够见到一种比赛规则:当三名评委中有两名及以上同意选手晋级时,该选手才能晋级,那么如何去实现该项目呢?
-=====二、实现原理=====+ 
 +--- 
 +#### 二、实现原理
 其实这一切都离不开数字电路,首先我们可以绘制出三人表决器的真值表,然后用Verilog去实现它,真值表如下: 其实这一切都离不开数字电路,首先我们可以绘制出三人表决器的真值表,然后用Verilog去实现它,真值表如下:
 {{ ::​三人表决器真值表.png?​400 |}} {{ ::​三人表决器真值表.png?​400 |}}
-=====三、硬件部分=====+ 
 +--- 
 +#### 三、硬件部分
 通过对此项目进行评估我们发现: 通过对此项目进行评估我们发现:
-1.该项目需要三个输入,我们可以通过拨码开关进行实现; +\\ 
-2.需要显示模块来表示投票情况,这里我们选用数码管进行实现; +1.该项目需要三个输入,我们可以通过拨码开关进行实现;\\ 
-=====四、Verilog实现===== +2.需要显示模块来表示投票情况,这里我们选用数码管进行实现;\\ 
-首先接口定义:+ 
 +--- 
 +#### 四、Verilog实现 
 + 
 +<code verilog>​ 
 +// ******************************************************************** 
 +// >>>>>>>>>>>>>>>>>>>>>>>>>​ COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<​ 
 +// ******************************************************************** 
 +// File name    : debounce.v 
 +// Module name  : debounce 
 +// Author ​      : STEP 
 +// Description ​ :  
 +// Web          : www.stepfpga.com 
 +//  
 +// -------------------------------------------------------------------- 
 +// 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;​ //​投票数显示; 
 + output result_led;​ //​投票结果显示; 
 +  
 + assign num_led=~{a,​b,​c};​ //​用三个LED表示投票情况,另根据硬件电路,LED为0时亮,故取反 
 + assign result_led=~((!a&​b&​c)||(a&​!b&​c)||(a&​b&​!c)||(a&​b&​c))?​1:​0;​ //​此处请参阅真值表,另根据硬件电路,LED为0时亮,故取反 
 +  
 +endmodule  
 + 
 +</​code>​ 
 + 
 +--- 
 +#### 五、实现效果 
 +拨码开关1、2、3分别代表评委A、B、CLED1~3代表投票状态,例如,评委A投票,LED1亮,LED4代表是否通过。 
 +\\ 
 +下图为无人投票时, 
 +{{ ::​754057370945270088.jpg?​500 |}} 
 +下图为有一位评委投票时, 
 +{{ ::​1ren.jpg?​500 |}} 
 +下图为两人进行投票时,可见投票通过指示灯已经亮起; 
 + 
 +{{ ::​2ren.jpg?​500 |}} 
 +最后,三人同时投票{{ ::​369387538796888960.jpg?​500 |}}