八选一数据选择器

  • 格式: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语言程序得到了加深和熟悉,巩固了所学的知识。