vhdl五人表决器实验.docx

上传人:b****5 文档编号:7665968 上传时间:2023-01-25 格式:DOCX 页数:10 大小:367.25KB
下载 相关 举报
vhdl五人表决器实验.docx_第1页
第1页 / 共10页
vhdl五人表决器实验.docx_第2页
第2页 / 共10页
vhdl五人表决器实验.docx_第3页
第3页 / 共10页
vhdl五人表决器实验.docx_第4页
第4页 / 共10页
vhdl五人表决器实验.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

vhdl五人表决器实验.docx

《vhdl五人表决器实验.docx》由会员分享,可在线阅读,更多相关《vhdl五人表决器实验.docx(10页珍藏版)》请在冰豆网上搜索。

vhdl五人表决器实验.docx

vhdl五人表决器实验

学生实验报告

实验课名称:

VHDL硬件描述语言

实验项目名称:

五人表决器

专业名称:

电子科学与技术

班级:

***

学号:

***

学生姓名:

***

教师姓名:

***

__2020__年_11_月_06_日

组别_____________________同组同学_______________________

实验日期_____年___月___日实验室名称______________成绩_____

一、实验名称:

五人表决器

二、实验目的与要求:

实验目的:

设计一个五人表决器,掌握异步清零以及锁存器的工作机制,掌握QuartusII软件的使用方法以及GW48型SOPC开发平台中的输入输出模式配置方法。

实验要求:

通过VHDL编程,实现一个五人表决器,要求有5个表决输入端、1个清零端、1个锁存端、表决结果显示端,具体接口说明如下图所示:

 

 

v_in:

表决信号输入端,高电平为赞成,低电平为反对;

lock:

判决锁存信号,上升沿表决结束,锁存表决输入信号,并计算输出表决信息;

clr:

清零信号,高电平有效,进入新的一次表决过程;

v_over:

表决结束信号,高电平有效,清零信号有效后,此信号为低电平。

 

num_agr:

BCD码输出显示表决结果中赞成的人数;

num_opp:

BCD码输出显示表决结果中反对的人数;

v_out:

对应显示每个表决信号的状态;

led_agr:

判决结果为赞成时有效;

led_opp:

判决结果为反对时有效;

 

首先在QuartusII上进行功能和时序仿真,之后通过器件及其端口配置下载程序到SOPC开发平台中。

在硬件实现中,要求:

1.用实验平台的拨动开关实现5人表决的输入信号(v_in):

注:

要求使用最右面5个开关。

2.用实验平台的按键实现清零(clr)和锁存(lock)信号:

注:

采用模式4的输入方式,要求使用键7实现清零(clr)、键6实现锁存。

3.用实验平台的数码管实现赞成和反对人数的显示:

注:

要求使用数码管6显示赞成票数、数码管5显示反对票数。

4.用实验平台的LED发光阵列实现表决结果和每人的表决信号:

注:

要求LED1显示判决赞成(led_agr)信号,LED8显示判决反对(led_opp)信号。

LED3、LED4、LED5同时显示判决结束信号。

LED10、LED11、LED12、LED13、LED14显示5人的表决信号。

 

功能具体要求:

启动后,数码管5、6分别显示“FF”字样,所有用到的数码管熄灭,5人的表决意见通过LED10~LED14分别显示,当按下lock按键后,LED10~14的状态被锁存,LED3、4、5同时点亮,此时无论如何输入表决意见LED10~14的状态都不变,同时计算出来赞成的和反对的人数,并分别用数码管5、6显示出来,通过LED1和LED8显示出来最终判决的表决结果(判决赞成:

LED1亮;判决反对:

LED8亮)。

此时用户按下清除键clr(按键7)后,系统又恢复成为刚启动状态。

三、实验内容:

◆新建工程:

1、打开Quartus,新建工程,选择好路径,工程顶层名为vote5;

2、新建工程,如果包含已编好的文件则可以添加,如果无则可以略过;

3、选择我们的器件信息:

4、单击Next>,指定第三方工具,这里我们不指定第三方EDA工具,单击Next>后结束工程建立。

◆建立编译VHDL文件:

1单击File\New菜单项,选择弹出窗口中的VHDLFile项,单击OK按钮以建立打开空的VHDL文件,并以工程顶层文件名保存。

 

型号为:

EP2C36F484C8

 

2、输入源代码完后单击Processing\StartCompilation开始编译,并修改其中的错误直到没有为止。

◆建立矢量波形文件

1、单击File\New命令,选择其中的VectorWaveformFile项,点击OK建立空的波形文件,打开矢量波形文件编辑窗口;

2、双击窗口左边空白区域,打开InsertNodeorBus对话框;

3、单击NodeFinder…按钮,打开以下对话框,选择Filter下拉列表中的Pins:

all,并点击List按酒以列出所有的端口,通过>>按钮把这些端口加入到右面的窗口中,单击OK完成端口的添加;

4、回到波形编辑窗口,对所有输入端口设置输入波形,具体可以通过左边的工具栏,或通过对信号单击鼠标右键的弹出式菜单中完成操作,最后保存次波形文件。

◆进行仿真:

1、单击Assignments\Settings,Simulationmode设置为Functional,即功能仿真。

指定仿真波形文件后单击OK完成设置;

2、单击Processing\GenerateFunctionalSimulationNetlist以获得功能仿真网络表;

3、单击Processing\StartSimulation完成功能仿真。

4、如果功能仿真无误后进行时序仿真:

单击Assignments\Settings,在弹出对话框中Simulationmode设置为Timing,即时序仿真。

指定仿真波形文件后单击OK完成设置。

5、单击Processing\StartSimulation,完成时序仿真。

6、如果时序仿真也没错即可下载工作了。

 

四、实验条件:

1.WindowsXP操作系统

2.QuartusIIEDA开发系统

3.杭州康芯SOPC硬件开发平台

五、实验原理:

开始

对各个变量进行初始化

Clr=‘1’

对各个变量初始化,进行归为

Lock锁定?

不进行计算等

对输出进行锁定,并且计算各个输出的值

结束

 

Y

Y

N

N

 

本实验重点是锁存的概念。

六、源代码:

libraryieee;

usevote5is

port(clr,lock:

instd_logic;

v_in:

instd_logic_vector(4downto0);

led_opp,led_agr:

outstd_logic;

v_over:

outstd_logic_vector(2downto0);

num_agr,num_opp:

outstd_logic_vector(3downto0);

v_out:

outstd_logic_vector(4downto0));

endentity;

architecturewenofvote5is

signalcount_temp:

std_logic_vector(4downto0);

begin

process(clr,lock,v_in)is

variablec1,c2:

integer:

=0;

begin

count_temp<=v_in;

if(clr='1')then

-----------------------初始化------------------------

v_over<="000";

led_opp<='0';

led_agr<='0';

num_agr<="1111";

num_opp<="1111";

v_over<="000";

v_out<="00000";

c1:

=0;

c2:

=0;

 

 

else

if(lock'eventandlock='1')then

-----------------------锁存模块------------------------

v_over<="111";

v_out<=count_temp;

foriin0to4loop

if(v_in(i)='1')then

c1:

=c1+1;

endif;

endloop;

foriin0to4loop

if(v_in(i)='0')then

c2:

=c2+1;

endif;

endloop;

if(c1>c2)then

led_agr<='1';

led_opp<='0';

else

led_agr<='0';

led_opp<='1';

endif;

num_agr<=conv_std_logic_vector(c1,4);

num_opp<=conv_std_logic_vector(c2,4);

endif;

endif;

endprocess;

endarchitecturewen;

 

七、实验结果与分析:

1、功能仿真:

2、时序仿真:

总结分析:

经功能仿真,波形符合要求,然后经过时序仿真,虽有些噪声,但结果还是符合要求的,所以可以下载到芯片里进行实物仿真验证了。

 

3、下载后实物操作:

实验1现象

实验2现象:

 

八、讨论和回答问题及体会:

1、这个程序的编写有点难度,所以写的时候错误百出,但我们是要有耐心的;

2、关于锁存的概念比较模糊,在书写表达时出了些问题,老是达不到效果;

3、后来求助于老师,经老师指点,引入一状态变量,用来控制数据的传输与锁存;

4、这次代码的书写是即使的,显然之前高估了自己的能力,只是看了一下,大概规整了一下思路而已;

5、通过这次的实验,我了解到有的事并不像你想象的那样简单,但我们也不应该就因此而否定自己,而是要找出不足,并努力弥补;

6、通过做实验,发现了自己好多的错误的语法知识,确实应该通过实验好好练习纠正一番。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1