八选一数据选择器
- 格式:doc
- 大小:2.12 MB
- 文档页数:8
学生实验报告
实验课名称:VHDL硬件描述语言
实验项目名称:八选一数据选择器
专业名称:电子科学与技术
班级:电科一班
学号:3205080117
学生姓名:刘海涛
教师姓名:程鸿亮
____2010____年___11_月___6_日
一、实验名称:
八选一数据选择器
二、实验目的与要求:
设计一个8选1的数据选择器,初步掌握QuartusII软件的使用方法以及硬件编程下载的基本技能。
三、实验内容:
1.通过VHDL编程,实现一个数据选择器,要求有8位数据输入端,1位数据输出端,通过3位地址输入信号寻址,并具有输出使能功能。首先在QuartusII上进行功能和时序仿真,之后通过器件及其端口配置下载程序到SOPC开发平台。
如图所示:
d0~d7为数据输入端;本实验用实验平台的拨动开关实现8位输入信号(d0~d7):
g为使能端,高电平有效; a[2..0]为地址输入端;用实验平台的按键8,7,6实现地址信号和键3实现使能信号:
y为输出端。本实验输出采用LED发光阵列的LED12。 组别 5 同组同学 王帅 周全
实验日期 2010年 11月6 日 实验室名称________成绩_____ 注:要求非使能或是无效地址状态时,y输出0。
首先在QuartusII上进行功能和时序仿真,之后通过器件及其端口配置下载程序到SOPC开发平台中。
2.操作步骤:
1.在quartus建立工程,选择好相关器件(本实验用到的开发器件为cyclonell EP2C35F484C8),新建VHDL文件,输入相关实验的代码。
2.编译成功后,建立矢量波形文件,然后依次进行相应的功能仿真和时序仿真。
3.仿真结束后,参照开发系统所给的I/O端口映射表,通过开发平台上每个I/O器件附近的I/O编号,在映射表中找到相应的引脚名,进行引脚的锁定。
4.编译下载
通过对话框中的Hardware Setup按钮,选择下载设备:USB-Blaster 进行下载仿真。
四、实验条件:
1. WindowsXP操作系统
2. QuartusII EDA开发系统
3. 杭州康芯SOPC硬件开发平台
五、实验原理:
1.算法流程:
八选一数据选择器执行对8个数据源的选择,d0,d1,d2,d3,d4,d5,d
6,d7 定义为七个数据输入端口作为数据输入端。使用三位地址码产生8个地址信号,由a0a1a2选择信号,从而实现y的选择输出。真值表如下:
输入 输出
a 2 a 1 a 0 y
0 0 0 d0
0 0 1 d1
0 1 0 d2
0 1 1 d3
1 0 0 d4
1 0 1 d5
1 1 0 d6
1 1 1 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 is
begin
process(a,g,d0,d1,d2,d3,d4,d5,d6,d7)
begin
if g='0' then y<='0';
else
case a is
when"000"=>y<=d0;
when"001"=>y<=d1;
when"010"=>y<=d2;
when"011"=>y<=d3;
when"100"=>y<=d4;
when"101"=>y<=d5;
when"110"=>y<=d6;
when"111"=>y<=d7;
when others=>y<='0';
end case;
end if;
end process;
end architecture one;
七、实验结果与分析:
1.RTL Viewer
2. 功能仿真;
3.时序仿真
结果分析如下,对d0~d7端口赋予的值,当地址信号的取值变化时,输出相应的y不同。
3. 考代码的编译下载后的部分图例:
4.结果说明 键3输出高电平,数据选择器输出使能。8位输入数据分别是d7~d0:1、0、1、0、1、0、1、0,此时地址信号a[2..0]为“001”选通d1,LED12输出(灯亮)指示d1为高电平
若 地址信号a[2..0]为“111”选通d7,LED12输出(灯亮)指示d7为高电平。
八、讨论和回答问题及体会:
1.实验室的QuartusII在第一次不能进行下载调试。通过安装相应的证书文件解决了上述问题。
2.使用qartusII安装目录中的\drivers\usb-blaster安装相应的驱动程序。
3对八选一数据选择器编译下载时,注意采用模式0的输入方式。引脚指定过程中参照了开发系统所给的I/O端口映射表,找到开发平台上每个I/O器件附近的I/O编号,在映射表中找到相应的引脚名,仔细正确定义引脚,得出显示结果。
4.通过本实验对八选一数据选择器有了更深刻的了解,通过使用VHDL对数据选择器的编写可以更加形象的看到其功能。在编写过程中对VHDL语言程序得到了加深和熟悉,巩固了所学的知识。