您的当前位置:首页正文

组合逻辑实验报告模板

2020-10-17 来源:星星旅游


石家庄经济学院

实 验 报 告

学 院: 信息工程学院 专 业: 计算机应用

信息工程学院计算机实验中心制

学号 XXXXX 姓名 实设验备日编期 号 实验室 计算机软件技术实验 实验内容 数据选择器 一、实验题目

数据选择器的设计 二、实验目的

1.掌握数据选择器的逻辑功能和特点; 2.熟悉VHDL实现数据选择器的方法; 3.进一步熟悉Quartus的使用。 三、实验要求

数据选择器又叫多路开关,它在选择控制(地址码)的控制下,从几个数据输入中选择一个并将其送到一个公共的输出端。数据选择器的功能类似一个多掷开关。4选1数据选择器原理示意图如图1所示。在VHDL语言中,可以用case语句来生成一个数据选择器。

图1 数据选择器的原理图

设计4路数据选择器,要求: (1)输入:

4个数据,每个数据是4位的二进制数(用std_logic_vector(3 downto 0)数据类型定义)。 选择控制端2位,根据控制端的二进制编码,从4个输入数据中选择一个需要的数据送到输出端。

使能端,当使能端有效时,输入的4个数据中的某个数据输送到输出端,当使能端无效时,输出为高阻态“ZZZZ”。

(2) 输出:一个4位的二进制数。 四、实验步骤

1. 真值表

要设计的数据选择器的真值表如表1所示。

表1 数据选择器的真值表

E_1’ 0 0 0 0 1 A1 A0 D0 D1 D2 D3 0 0 1 1 × 0 1 0 1 × D0 × × × × × D1 × × × × × D2 × × × × × D3 × F D0 D1 D2 D3 “ZZZZ” 指导教师 邹 惠 2. 示意图

图2为设计结果的外部引脚示意图。

图2 数据选择器的外部引脚示意图

3. VHDL实现

完整的VHDL设计及必要的注释说明: library ieee;

use ieee.std_logic_1164.all; entity data_selector is port(

d0,d1,d2,d3:in std_logic_vector(3 downto 0); --分别为4路4位输入

a0,a1:in std_logic; --根据a0a1组合的不同选择f要输出的数据 f:out std_logic_vector(3 downto 0); --4位的输出 e_1:in std_logic); --使能端 end data_selector;

architecture data_selectorp of data_selector is --结构体 signal sel:std_logic_vector(1 downto 0); begin

sel<=a1&a0;

process(d0,d1,d2,d3,sel,e_1) begin

if e_1='1' then f(3 downto 0)<=\"ZZZZ\"; elsif sel=\"00\" then f(3 downto 0)<=d0; elsif sel=\"01\" then f(3 downto 0)<=d1; elsif sel=\"10\" then f(3 downto 0)<=d2; elsif sel=\"11\" then f(3 downto 0)<=d3; end if;

end process;

end data_selectorp;

采用文本编辑的方法,将每一路的输入定义为4位的数据,使能端e_1为1时,实现高阻态输出,为0时,实现的是正常的4选1的输出,a0、a1是控制选择哪路输出的信号,由sel的不同决定输出。在process语句中嵌套if语句实现该数据选择器的功能。

4. 测试及分析

完整的仿真图如图3所示。

图3 完整的仿真图

仿真结果分析:

e_1=0时,a0 a1的输入为:00、01、10、11时,f的值分别为:d0(0001)、d2(0111)、d1(0011)、d3(1111);

e_1=1时,输出为高阻态。

证明该仿真结果完全正确,说明该4位4路数据选择器编写正确。 五、总结

在本次4位4选1数据选择器的代码编写过程中,我对理论教材上数据选择器的学习有了一个更加清楚明白的认识,而且学会了使能端的应用,并且了解了什么是高阻态的输出,与如何设定电路的高阻态的输出。

1.在设计的过程中主要出项的问题就是不明白什么是高阻态输出,而且不知道如何在程序中运用高阻态进行程序的编写,通过向老师询问以及课本知识的仔细查阅,我理解了,高阻态时,也就是该数据选择器被禁用时的状态,当然还有“ZZZZ”的输出代表高阻态;

2.通过此次实验的完成,我对课本上数据选择器有了一个更加深刻的认识,而不只是停留在理论层面上的认识,我理解了,虽然是4位选择器,但是每一位可以设计成4位的输入,这样也就可以实现4路4位数据选择器的功能。

因篇幅问题不能全部显示,请点此查看更多更全内容