收藏 分销(赏)

VHDL-设计七人表决器.doc

上传人:xrp****65 文档编号:6131593 上传时间:2024-11-28 格式:DOC 页数:7 大小:119KB 下载积分:10 金币
下载 相关 举报
VHDL-设计七人表决器.doc_第1页
第1页 / 共7页
VHDL-设计七人表决器.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
《FPGA系统设计与开发》 课 程 设 计 报 告 题 目: 七人表决器 专 业: 电子信息工程专业 学 号: 1340820410 姓 名: 杨彪 指导老师: 聂小燕 一、实验目的 1、 熟悉 VHDL 的编程。 2、 熟悉七人表决器的工作原理。 3、 进一步了解实验系统的硬件结构。 二、实验原理 所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。 七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。实验中用7个拨动开关来表示七个人,分别用7个LED等来反应每个人的决定,当对应的拨动开关输入为‘1’时,表示此人同意,LED灯点亮;否则若拨动开关输入为‘0’,则表示此人反对,LED灯不亮。表决的结果也用一个LED表示,若表决的结果为同意,则 LED 被点亮;否则,如果表决的结果为反对,则 LED 不会被点亮。同时,数码管上显示通过的票数。 三、实验内容 本实验就是利用实验系统中的拨动开关模块和LED模块以及数码管模块来 实现一个简单的七人表决器的功能。拨动开关模块中的K1~K7表示七个人,当拨动开关输入为‘1’时,表示对应的人投同意票,对应的LED灯亮;否则当拨动开关输入为‘0’ 时,表示对应的人投反对票,对应的LED灯不亮;LED 模块中 LED1 表示七人表决的结果,当 LED1 点亮时,表示此行为通过表决;否则当 LED1 熄灭时,表示此行为未通过表决。同时通过的票数在数码管上显示出来。 四、实验步骤 1、 打开 QUARTUSII 软件,新建一个工程。 2、 建完工程之后,再新建一个 VHDL File,打开 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程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY BJQ IS PORT(CLK,CLR:IN STD_LOGIC; ----CLK为系统时钟,CLR为复位按 K:IN STD_LOGIC_VECTOR(6 DOWNTO 0); ----拨动开关输入表决 Result:OUT STD_LOGIC; ----显示表决是否通过 LEDAG,LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); ----LEDAG为七段数码管, 用来显示同意的人数;LED为七个指示灯,用来指示投票人的个人投票结果。 END ENTITY BJQ; ARCHITECTURE one OF BJQ IS BEGIN PROCESS(K) VARIABLE shu:INTEGER; ----定义变量shu来统计同意的个数 BEGIN IF (CLR='1') THEN ----不复位,即正常工作 LED<=K; ----将指示灯和投票人对应,即记名投票 shu:=0; IF CLK'EVENT AND CLK='1' THEN IF K(0)='1' THEN shu:=shu+1; END IF; IF K(1)='1' THEN shu:=shu+1; END IF; IF K(2)='1' THEN shu:=shu+1; END IF; IF K(3)='1' THEN shu:=shu+1; END IF; IF K(4)='1' THEN shu:=shu+1; END IF; IF K(5)='1' THEN shu:=shu+1; END IF; IF K(6)='1' THEN shu:=shu+1; END IF; CASE shu iS ----指示灯显示投票结果,数码管显示同意人数 WHEN 0 =>Result<='0'; LEDAG<="0111111"; LED<=K; WHEN 1 =>Result<='0'; LEDAG<="0000110"; LED<=K; WHEN 2 =>Result<='0'; LEDAG<="1011011"; LED<=K; WHEN 3 =>Result<='0'; LEDAG<="1001111"; LED<=K; WHEN 4 =>Result<='1'; LEDAG<="1100110"; LED<=K; WHEN 5 =>Result<='1'; LEDAG<="1101101"; LED<=K; WHEN 6 =>Result<='1'; LEDAG<="1111101"; LED<=K; WHEN 7 =>Result<='1'; LEDAG<="0100111"; LED<=K; WHEN others =>Result<='0'; LEDAG<="0000000"; LED<=K; END CASE; END IF; ELSE -----启动复位功能,同时复位指示灯和数码管 Result<='0'; LEDAG<="0111111"; LED<="0000000"; END IF; END PROCESS; END ARCHITECTURE one; 六、对VHDL 程序进行编译仿真的图形 七、管脚分配表 八、实验结果与现象 当设计文件加载到试验箱后,拨动实验系统中的拨动开关模块的 K0-K7 七位拨动开关,如果拨动开关的值为“1”即拨动开关的开关置于上端,表示此人通过表决,对应的LED(LED2到LED8显示每个人投票的结果)等被点亮,反之不然。当LED被点亮的个数大于或等于四时 LED 模块的 LED1 被点亮,否则 LED1不被点亮。同时数码管上显示通过表决的人数。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服