??
字號:
五人多數表決器
一,設計目的:
1,學習使用EDA開發工具MAX+plusII。
2,學習使用VHDL語言設計五人多數表決器。
3,熟悉五人多數表決的原理。
二,設計任務:
設計一個五人多數表決器。
三,設計要求:
1) 五人多數表決邏輯:多數通過;
2) 在主持人控制下,10秒內表決有效;
3) 采用數碼管顯示表決10秒倒計時;
4) 表決結束后用發光二極管及數碼管顯示表決結果,數碼管顯示結果形式:通過,不通過;
5) 設主持人控制鍵,復位鍵:
控制鍵:啟動表決;
復位鍵:系統復位。
6) 自制實驗方案,完成設計任務。
四,設計思路:
五人多數表決,只要在規定時間內,贊成人數大于或等于三,則表決通過。因此,只需將每位表決人的結果相加,判斷結果值。設五個開關作為表決器的五個輸入變量,輸入變量為邏輯“1”時,表示表決者“贊成”;輸入變量為“0”時,表示表決者“不贊成”。輸出邏輯“1”時,表示表決“通過”;輸出邏輯“0”時,表示表決“不通過”。當表決器的五個輸入變量中有3個以上(含3個)為“1”時。則表決器輸出為“1”;否則為“0”。
五,管腳說明:
FF:一維數組FF用來表示五位表決者;
QQ:表決最終是否通過(‘1’為“通過”,‘0’為“未通過”);
QALL:表決通過的人數;
SHIJIAN:用來顯示倒計時;
FUWEI:主持人復位鍵,用來系統復位;
KAISHI:主持人控制鍵,用來啟動表決;
CLK:系統時鐘。
六,源程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_ARITH.all;
use ieee.std_logic_UNSIGNED.all;
ENTITY BIAOJUE IS
PORT( FF:IN STD_LOGIC_VECTOR(1 TO 5);
QQ:OUT BIT;
QALL:OUT STD_LOGIC_VECTOR(3 DOWNTO 1);
SHIJIAN:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);
FUWEI,KAISHI,CLK:IN STD_LOGIC);
END BIAOJUE;
ARCHITECTURE FUNG OF BIAOJUE IS
BEGIN
PROCESS(FF,CLK,KAISHI,FUWEI)
VARIABLE SUO:BOOLEAN;
VARIABLE SUM:STD_LOGIC_VECTOR(1 TO 3);
BEGIN
IF (FUWEI='0') THEN
QQ<='0';
SHIJIAN<="1010";
SUO:=FALSE;
SUM:="000";
QALL<="000";
ELSIF (CLK'EVENT AND CLK='1') THEN
IF (KAISHI='1') THEN
IF (NOT SUO) THEN
IF SHIJIAN="0000" THEN
SUO:=TRUE;
FOR N IN 1 TO 5 LOOP
SUM:=FF(N)+SUM;
END LOOP;
ELSE
SHIJIAN<=SHIJIAN-1;
END IF;
END IF;
QALL<=SUM;
IF (SUM >= 3) THEN
QQ<='1';
ELSE
QQ<='0';
END IF;
END IF;
END IF;
END PROCESS;
END FUNG;
七,實驗驗證:
建立文本文件,選擇File/New/Text Editor File,輸入源程序。保存(保存名為:biaojue.vhd),編譯。編譯通過后建立模擬文件來仿真.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -