VHDL设计七人表决器.docx
- 文档编号:4430833
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:9
- 大小:77.52KB
VHDL设计七人表决器.docx
《VHDL设计七人表决器.docx》由会员分享,可在线阅读,更多相关《VHDL设计七人表决器.docx(9页珍藏版)》请在冰豆网上搜索。
VHDL设计七人表决器
《FPGA系统设计与开发》
目:
七人表决器
业:
电子信息工程专业
号:
10
名:
杨彪
指导老师:
聂小燕
、实验目的
1、熟悉VHDL的编程。
2、熟悉七人表决器的工作原理。
3、进一步了解实验系统的硬件结构
二、实验原理
所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,贝U认为不同意。
实验中用7个拨动开关来表示七个人,分别用7个LED等来反应每个人的决定,当对应的拨动开关输入为‘1'时,表示此人同意,LED灯点亮;否则若拨动开关输入为‘0;则表示此人反对,LED灯不亮。
表决的结果也用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。
同时,数码管上显示通过的票数。
三、实验内容
本实验就是利用实验系统中的拨动开关模块和LED模块以及数码管模块来实现一个简单的七人表决器的功能。
拨动开关模块中的K1〜K7表示七个人,当
拨动开关输入为‘1'时,表示对应的人投同意票,对应的LED灯亮;否则当拨动开关输入为‘0'时,表示对应的人投反对票,对应的LED灯不亮;LED模块中LED1表示七人表决的结果,当LED1点亮时,表示此行为通过表决;否则当LED1熄灭时,表示此行为未通过表决。
同时通过的票数在数码管上显示出来。
四、实验步骤
1、打开QUARTUSII软件,新建一个工程。
2、建完工程之后,再新建一个VHDLFile,打开VHDL编辑器对话框。
3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序。
4、编写完VHDL程序后,保存起来,并建立工程。
5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。
6编译仿真无误后,依照拨动开关、LED、数码管与FPGA的管脚连接表或参照附录进行管脚分配。
表1是示例程序的管脚分配表。
分配完成后,再进行全编译一次,以使管脚分配生效。
7、下载程序到试验箱验证实验的正确性,观察现象,对错误的地方进行改正。
表1程序的管脚分配表
端口名
使用模块信号
对应FPGA管脚
说明
CLK
时钟
C13
CLR
复位
P25
低电平有效
K1
拨动开关K1
H8
七位投票人的表决器
K2
拨动开关K2
J8
K3
拨动开关K3
J9
K4
拨动开关K4
A4
K5
拨动开关K5
B4
K6
拨动开关K6
A5
K7
拨动开关K7
B5
Result
LED模块LED1
G13
表决结果亮为通过
LED0
LED模块LED2
G15
每个人投票的结果
LED1
LED模块LED3
G14
LED2
LED模块LED4
H12
LED3
LED模块LED5
H11
LED4
LED模块LED6
J10
LED5
LED模块LED7
L9
LED6
LED模块LED8
H10
LEDAG0
数码管模块A段
F13
表决通过的票数
LEDAG1
数码管模块B段
F14
LEDAG2
数码管模块C段
F15
LEDAG3
数码管模块D段
E15
LEDAG4
数码管模块E段
F16
LEDAG5
数码管模块F段
F17
LEDAG6
数码管模块G段
E18
、七人表决器VHDL程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYBJQIS
PORT(CLK,CLR:
INSTD_LOGIC;----CLK为系统时钟,CLR为复位按
K:
INSTD_LOGIC_VECTOR(6DOWNTO0);----拨动开关输入表决
Result:
OUTSTD_LOGIC;----显示表决是否通过
LEDAG,LED:
OUTSTD_LOGIC_VECTOR(OWNTO);----LEDAG为七段数码管,
CASEshuiS----指示灯显示投票结果,数码管显示同意人数
WHEN0=>Result<='0';
LEDAG<="0111111";
LED<=K;
WHEN1=>Result<='0';
LEDAG<="0000110";
LED<=K;
WHEN2=>Result<='0';
LEDAG<="1011011";
LED<=K;
WHEN3=>Result<='0';
LEDAG<="1001111";
LED<=K;
WHEN4=>Result<='1';
LEDAG<="1100110";
LED<=K;
WHEN5=>Result<='1';
LEDAG<="1101101";
LED<=K;
WHEN6=>Result<='1';
LEDAG<="1111101";
LED<=K;
WHEN7=>Result<='1';
LEDAG<="0100111";
LED<=K;
WHENothers=>Result<='0';
LEDAG<="0000000";
LED<=K;
ENDCASE;
ENDIF;
ELSE-----启动复位功能,同时复位指示灯和数码管
Result<='0';
LEDAG<="0111111";
LED<="0000000";
ENDIF;
ENDPROCESS;
ENDARCHITECTUREone;
六、对VHDL程序进行编译仿真的图形
命畑Tne陆
MQDn$
11
4722na
Sial
Ent
I)x20.(1mV].Om
毗DI一1
呦』邱ICn.OnsISJ.Oib
iii
HD.Om360Ou0u尬10血
iiii
Heu
WC
CU
E'
rLrLrn
L_n_rL_n_r-L_r_rL_r_-L_r__L_r__L_rL__L_n
CLB
B
r
BIN啊皿即汕(MJffl册期LDmjjmOiniJfOmiMOjjniLMlKOCLlMDBfflimjTOLliaipfMllDLKOmillDKJmillLKMMroOQWranUMOfflmlDWmiL灿DOWOjMOmL他DOdLOjOLll即皿M»[
3w
E血丽颐丽诃i顽丽顾iW阿阿厂
OttWOO
^KllllL頫IHBOMMILJtlMO;JIOB1LglBIM)训血皿血的1jplOOL11批匕邂
B|
r
J
■JL3
...4[0]
B
-j
11
•上[|]
B
-J;;i—
伸2】
观
H
111
_
曲澄
…础]
B
r
~L
曲23
.上[4]
B|
-TL_
l_
|
nii
•耶】
B|
r
...1
L
-4[6]
B
J
r
七、管脚分配表
NodeName
Direction
Locatieri
I/OBank
VREFGroup
1
OK
Input
PtN^Cl3
3
B3_N0
2
SLR
Input
PINP25
6
B6NO
3
KI®
Inpct
PIN^BS
3
B3_N1
4
1>
血
Input
P£N_AS
3
B3_N1
5
K[4]
Input
PINB4
3
B3N1
6
K罔
Input
PTN.A4
3
B3N1
7
L>
羽
Input
PINJ5
3
B3_NL
a
K[l]
Input
PINJ8
2
B2_N0
9
K[0]
Input
PDN_H&
3
E3_N1
10
LH洞
Output
PINH1O
3
B3N1
ii
LH5[5]
Output
PIN_L9
2
B2_N1
12
LED闫
Output
P[hJJO
3
B3.N0
13
LH?
[3]
Output
PIN.H111
3
B3_NO
14
D
LW[2【
Output
PINJH12
3
珀』。
15
a
區⑴
Output
PtN^14
4
B4_N1
16
a
LED[0]
Output
PINJ515
斗
S4N1
17
■£>
LEDAG[6]
Ougt
PIN_E1B
4
B4_N0
18
<>
LED加国
Output
PEN_F17
4
B4_N0
19
a
LE)AG[^|
Output
PINF16
斗
B4N1
20
a
LED恥⑶
Output
PIN_E15
4
B4_N1
21
LffiAG[2]
Output
PIN_F15
4
B4_N1
22
a
LEDAGfl]
Output
PINF14
4
B4_N1
23
o
LBX[0]
Output
PtN_F13
4
B4_N1
24
3
Result
Output
PING13
斗
B4N1
八、实验结果与现象
当设计文件加载到试验箱后,拨动实验系统中的拨动开关模块的K0-K7七位拨动开关,如果拨动开关的值为“1”即拨动开关的开关置于上端,表示此人通过表决,对应的LED(LED2到LED8显示每个人投票的结果)等被点亮,反之不然。
当LED被点亮的个数大于或等于四时LED模块的LED1被点亮,否则LED1不被点亮。
同时数码管上显示通过表决的人数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 设计 七人 表决器