刘增辉-vhdl实验报告-实验2--五人表决器.doc_第1页
刘增辉-vhdl实验报告-实验2--五人表决器.doc_第2页
刘增辉-vhdl实验报告-实验2--五人表决器.doc_第3页
刘增辉-vhdl实验报告-实验2--五人表决器.doc_第4页
刘增辉-vhdl实验报告-实验2--五人表决器.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

长安大学 电子科学与技术系 刘增辉学生实验报告实验课名称:VHDL硬件描述语言实验项目名称:五人表决器专业名称:电子科学与技术班级:32050801学号:3205080135学生姓名:刘增辉教师姓名:程鸿亮_2010_年_11_月_6_日组别_ 同组同学_ 黄红涛 _实验日期:2010年11月6日 实验室名称_ 成绩_一、实验名称:五人表决器二、实验目的与要求:实验目的: 1)设计一个五人表决器,掌握异步清零以及锁存器的工作机制,掌握QuartusII软件的使用方法以及GW48型SOPC开发平台中的输入输出模式配置方法。实验要求: 2)通过VHDL编程,实现一个五人表决器,要求有5个表决输入端、1个清零端、1个锁存端、表决结果显示端,具体接口说明如下图所示。首先在QuartusII上进行功能和时序仿真,之后通过器件及其端口配置下载程序到SOPC开发平台中。在硬件实现中,要求: v_in:表决信号输入端,高电平为赞成,低电平为反对; lock:判决锁存信号,上升沿表决结束,锁存表决输入信号,并计算输出表决信息; clr:清零信号,高电平有效,进入新的一次表决过程; v_over:表决结束信号,高电平有效,清零信号有效后,此信号为低电平。num_agr:BCD码输出显示表决结果中赞成的人数; num_opp:BCD码输出显示表决结果中反对的人数; v_out:对应显示每个表决信号的状态; led_agr:判决结果为赞成时有效; led_opp:判决结果为反对时有效;1用实验平台的拨动开关实现5人表决的输入信号(v_in):要求使用最右面5个开关。 2用实验平台的按键实现清零(clr)和锁存(lock)信号: 采用模式4的输入方式,要求使用键7实现清零(clr)、键6实现锁存(lock)。3. 用实验平台的数码管实现赞成和反对人数的显示: 要求使用数码管6显示赞成票数、数码管5显示反对票数。4. 用实验平台的LED发光阵列实现表决结果和每人的表决信号:要求LED1显示判决赞成(led_agr)信号,LED8显示判决反对(led_opp)信号。LED3、LED4、LED5同时显示判决结束信号。LED10、LED11、LED12、LED13、LED14显示5人的表决信号。六、源代码:功能具体要求: 当系统启动后,数码管5、6分别显示“FF”字样,所有用到的数码管熄灭,表决开始,用户此时可以通过拨动开关输入5人的表决意见,并通过LED10LED14分别显示出来,当用户按下lock按键(按键6)后,LED10LED14的状态被锁存,LED3、LED4、LED5同时点亮,此时无论如何输入表决意见LED10LED14的状态都不会改变,同时系统会计算出来赞成的人数和反对的人数,并分别用数码管5、6显示出来,而且系统会计算出来赞成的人数和反对的人数的大小关系,并通过LED1和LED8显示出来最终判决的表决结果(判决赞成:LED1亮;判决反对:LED8亮)。此时用户按下清除键clr(按键7)后,系统又恢复成为刚启动状态。三、实验内容:实验步骤如下: 1. 打开QuartusII软件,建立一个新的工程: 1) 单击菜单FileNew Project Wizard2) 输入工程的路径、工程名以及顶层实体名。3) 单击Next按钮,此试验没有包含已有文件,单击Next继续。4) 设置我们的器件信息: 5) 单击Next,指定第三方工具:这里我们不指定第三方EDA工具,单击Next后结束工程建立。2. 建立VHDL文件: 1) 单击FileNew菜单项,选择弹出窗口中的VHDL File项,单击OK按钮以建立打开空的VHDL文件。2) 在编辑窗口中输入VHDL源文件并保存,注意实体名、文件名必须和建立工程时所设定的顶层实体名相同。3) 编译工程,单击ProcessingStart Compilation开始编译。3. 建立矢量波形文件1) 单击FileNew命令,在弹出的对话框中选择Other Files页面中的Vector Waveform File项,打开矢量波形文件编辑窗口。2) 双击窗口左边空白区域,打开Insert Node or Bus对话框3) 单击Node Finder按钮,打开以下对话框,选择Filter下拉列表中的Pins:all,并点击List按酒以列出所有的端口,通过按钮把这些端口加入到右面的窗口中,单击OK完成端口的添加。4) 回到波形编辑窗口,对所有输入端口设置输入波形,具体可以通过左边的工具栏,或通过对信号单击鼠标右键的弹出式菜单中完成操作,最后保存次波形文件。4. 进行功能仿真1) 单击AssignmentsSettings将Simulation mode设置为Timing,即时序仿真。指定仿真波形文件后单击OK完成设置。2) 单击ProcessingGenerate Functional Simulation Netlist以获得功能仿真网络表。6. 器件的下载1) 指定器件引脚: 单击AssignmentsAssignment Editor,打开引脚分配编辑框。,为每一个端口指定器件的引脚,在引脚指定过程中需要参照开发系统所给的I/O端口映射表,通过开发平台上每个I/O器件附近的I/O编号,在映射表中找到相应的引脚名,填入所示对话框即可。2) 连接下载线通过USB-blaster下载电缆连接PC机和开发平台,如果首次使用下载电缆,此时操作系统会提示安装驱动程序,此USB设备的驱动处于QuartusII安装目录中的driversusb-blaster中。3) 单击ToolProgrammer打开下载窗口。通过对话框中的Hardware Setup按钮,选择下载设备:USB-Blaster,点击Start完成下载。四、实验条件:1. WindowsXP操作系统2. QuartusII EDA开发系统3. 杭州康芯SOPC硬件开发平台五、实验原理:1) 用实验平台的拨动开关实现5人表决的输入信号(v_in):这时,可以直接通过拨动五个开关的位置,改变输入信号,开关上置表示输入高电平1,开关下置表示输入低电平0。2) 用实验平台的按键实现清零(clr)和锁存(lock)信号:采用模式4的输入方式,要求使用键7实现清零(clr)、键6实现锁存(lock)。 用实验平台的数码管实现赞成和反对人数的显示: 要求使用数码管6显示赞成票数、数码管5显示反对票数,用实验平台的LED发光阵列实现表决结果和每人的表决信号,所有的按键都是通过按键的置位来实现高低电平的转化。通过LED1显示判决赞成(led_agr)信号,LED8显示判决反对(led_opp)信号。LED4、LED5、LED6同时显示判决结束信号。LED10、LED11、LED12、LED13、LED14显示5人的表决信号。LED的原理为:输出到LED的信号为高电平时,LED正常发光,反之,LED不会发光。3) 当系统启动后,数码管5、6分别显示“FF”字样,所有用到的数码管熄灭,表决开始,用户此时可以通过拨动开关输入5人的表决意见,并通过LED10LED14分别显示出来,当用户按下lock按键(按键6)后,LED10LED14的状态被锁存,LED4、LED5、LED6同时点亮,此时无论如何输入表决意见LED10LED14的状态都不会改变,同时系统会计算出来赞成的人数和反对的人数,并分别用数码管5、6显示出来,而且系统会计算出来赞成的人数和反对的人数的大小关系,并通过LED1和LED8显示出来最终判决的表决结果(判决赞成:LED1亮;判决反对:LED8亮)。此时用户按下清除键clr(按键7)后,系统又恢复成为刚启动状态。如此,五人表决器的功能在试验平台上即可实现和验证。根据此原理,可以得到如下所示的算法流程图:六、源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity vote5 isport( lock:in std_logic;clr:in std_logic; v_in:in std_logic_vector(4 downto 0); v_out:out std_logic_vector(4 downto 0); v_over:out std_logic_vector(2 downto 0);num_agr,num_opp:out std_logic_vector(3 downto 0);led_agr,led_opp:out std_logic);end entity vote5;architecture struct of vote5 issignal out_temp:std_logic_vector(4 downto 0):=00000;beginprocess(lock,clr,v_in)variable lock_state:std_logic:=0;variable agr_temp,opp_temp:std_logic_vector(3 downto 0):=0000;beginif(clr=1)thenlock_state:=0;out_temp=00000;led_agr=0;led_opp=0;num_agr=1111;num_opp=1111;agr_temp:=0000;opp_temp:=0000;v_over=000;elsif(lock_state=0)thenout_temp=v_in;if(lockevent and lock=1)thenlock_state:=1;v_overopp_temp)thenled_agr=1;led_opp=0;elseled_agr=0;led_opp=1;end if;num_agr=agr_temp;num_opp=opp_temp;end if;end if;end process;v_out=out_temp;end architecture struct;七、实验结果与分析:创建的波形文件,进行功能仿真进行时序仿真实验照片初始状态中,分别显示同意和反对票数的数码管6和数码管5输出“FF”,表示可以进行新的一次表决操作。此时拨动开关有两个处于高电平(同意),LED14、LED13对应被点亮。 锁存按键被按下后,分别显示同意和反对票数的数码管6和数码管5输出“23”,表示有2人同意,3人反对,LED8被点亮表示表决结果为“反对”清零按键被按下后,回到初始状态,如图所示,数码管6和数码管5输出FF.八、讨论和回答问题及体会:1、在五人表决器的设计这个实验中,我们定义了很多信号和变量类型的数据,这两种数据的使用有很大的区别。信号是电子线路内部硬件连接的抽象。它通常在结构体、包集合和实体中说明。信号是一个全局变量,它可以用来进行进程之间的通信。一般来说,在VHDL语言中对信号赋值是按仿真时间来进行的。信号值的改变也需按仿真时间的计划表行事。变量只能在进程语句、函数语句和过程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论