资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
学生实验报告实验课名称:VHDL硬件描述语言实验项目名称:8选1数据选择器专业名称: 班级:学号:学生姓名:教师姓名:_年_月_日一、实验名称:8选1数据选择器 二、实验目的与要求:实验目的:设计一个8选1的数据选择器,初步掌握QuartusII软件的使方法以及硬件编程下载的基本技能。实验要求:通过VHDL编程,实现一个数据选择器,要求有8位数据输入端,1位数据输出端,通过3位地址输入信号寻址,并具有输出使能功能。首先在QuartusII上进行功能和时序仿真,之后通过器件及其端口配置下载程序到SOPC开发平台中。如图所示:d0d7为数据输入端;g为使能端,高电平有效;a2.0为地址输入端;y为输出端。注:要求非使能或是无效地址状态时,y输出0。 首先在QuartusII上进行功能和时序仿真,之后通过器件及其端口配置下载程序到SOPC开发平台中。在硬件实现中,要求:1.用实验平台的拨动开关实现8位输入信号(d0d7):注:要求使用最右面8个开关。2. 用实验平台的按键实现地址信号和使能信号:注:采用模式0的输入方式,并使用最左边的键6键8三个按键实现地址输入,以及键3实现使能信号。(模式0的I/O设置见附录)3. 输出采用LED发光阵列的LED12。三、实验内容:1. 打开QuartusII软件,建立一个新的工程:1) 单击菜单FileNew Project Wizard2) 输入工程的路径、工程名以及顶层实体名。3) 单击Next按钮由于我们建立的是一个空的项目,所以没有包含已有文件,单击Next继续。4) 设置我们的器件信息:5) 单击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. 进行功能仿真1) 单击AssignmentsSettings,在弹出对话框中做以下设置:2) 单击ProcessingGenerate Functional Simulation Netlist以获得功能仿真网络表。3) 单击ProcessingStart Simulation进入仿真页面:5. 进行时序仿真如果功能仿真无误,可进入时序仿真,时序仿真是增加了相关延迟的仿真,最接近实际情况的仿真。1) 单击AssignmentsSettings,在弹出对话框中做以下设置:2) 单击ProcessingStart Simulation进入仿真页面:6. 器件的下载1) 指定器件引脚:单击AssignmentsAssignment Editor,打开引脚分配编辑框:2) 连接下载线通过USB-blaster下载电缆连接PC机和开发平台,如果首次使用下载电缆,此时操作系统会提示安装驱动程序,此USB设备的驱动处于QuartusII安装目录中的driversusb-blaster中。3) 单击ToolProgrammer打开下载窗口:通过对话框中的Hardware Setup按钮,选择下载设备:USB-Blaster。参照上图所示的选项,点击Start完成下载。四、实验条件:1. WindowsXP操作系统2. QuartusII EDA开发系统3. 杭州康芯SOPC硬件开发平台五、实验原理: g=0?开始结束 a=”000”a=”011”a=”100”a=”010” a=”001”a=”101”a=”110”a=”111”y=0y=d0y=d1y=d2y=d3y=d4y=d5y=d6y=d7六、源代码:library ieee;use ieee.std_logic_1164.all;entity mux8_1 is port(d0,d1,d2,d3,d4,d5,d6,d7:in std_logic; g:in std_logic; a:in std_logic_vector(2 downto 0); y:out std_logic);end entity mux8_1;architecture one of mux8_1 isbegin process(a,g,d0,d1,d2,d3,d4,d5,d6,d7) begin if g=0 then yyyyyyyyyy=0; end case; end if; end process;end architecture one; 七、实验结果与分析:1.功能仿真图2时序仿真图3结果图说明:按键3输出高电平,数据选择器输出使能。8位输入数据分别是d7d0:1、0、1、0、1、0、1、0,此时地址信号a20为“001”选通d1,LED12灯亮指示d1为高电平。地址信号a20为“010”选通d2,LED12灯灭指示d1为高电平。地址信号a20为“111”选通d7,LED12灯亮指示d7为高电平。八、讨论和回答问题及体会:1使用CASE语句时应注意的几点:条件表达式的值必须在表达式的取值范围之内;除非所有条件表达式的值能完全覆盖CASE语句中的表达式的取值,否则,最末一个条件表达式必须用OTHERS表示,它代表已给出的条件表达式中未能列出的其他可能的取值。且关键字OTHERS作为最后一种条件取值只能出现一次。CASE语句中每一条件表达式的选择值只能出现一次。在CASE语句执行中,必须选中且只能选中所列条件语句中的一条。2CASE语句和IF-ELSIF语句的不同?在IF语句中,先处理最初的条件,如果不满足,再处理下一个条件;而在CASE语句中,先处理最终条件,如果不满足,再处理下一个条件;而在CASE语句中,各个选择值不存在先后顺序,所有值是并行处理的。其次,IF-ELSIF使一组动作与一条真语句相关联,儿CASE语句使一组动作与一个唯一的值相关联。一条CASE语句仅可与一个条件表达式相符合,而一条IF-ELSIF语句可能有多条语句为真,但所执行的动作为第一条计算为真的语句。8
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号