实验一 组合逻辑电路的VHDL实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一组合逻辑电路的VHDL实现

一、实验目的

掌握使用VHDL语言进行组合逻辑电路设计的方法。

二、实验设备及器件

IBM PC机一台

三、实验内容

按照Quartus II 软件的使用说明进行Quartus II 集成开发环境的仿真调试练习,然后按照以下内容建立文件并编译仿真调试。

(1)用VHDL 语言设计一个2选1多路选择器,对程序进行编译和仿真,并记录仿真波形。

提示:如右图所示,a和b分别为两个数据输入端,s 为通道选择控制信号输入端。当s为低电平时,a输入端的信号传送至y;当s为高电平时,b输入端的信号传送至y。

实验代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY mux21a IS

PORT( a, b : IN BIT ;

s : IN BIT;

y : OUT BIT) ;

END ENTITY mux21a ;

ARCHITECTURE one OF mux21a IS

BEGIN

y <= a WHEN s = '0' ELSE

b ;

END ARCHITECTURE

one ;

(2)用VHDL 语言设计一个1位半

加器,对程序进行编译和仿真,并

记录仿真波形。

提示:半加器真值表如右所示。

实验代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

ENTITY h_adder IS

PORT(a,b:IN STD_LOGIC;

so,co:OUT STD_LOGIC); END h_adder;

ARCHITECTURE example2 OF h_adder IS

BEGIN

so<=a XOR b;

co<=a AND b;

END example2;

(3)用VHDL 语言设计一个三态缓冲器,对程序进行编译和仿真,并记录仿真波形。

提示:三态缓冲器电路如右图所示,如果

缓冲器的使能端en 为1,缓冲器的输入端

in1的信号值被复制到输出端;如果使能端

en 为其它数值,缓冲器的输出为高阻态。

实验代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY Threestategate IS

PORT(IN1,EN:IN STD_LOGIC;

半加器真值表

OUT1:OUT STD_LOGIC);

END Threestategate;

ARCHITECTURE ARC_BUFFER OF Threestategate IS

BEGIN

PROCESS(IN1,EN)

BEGIN

IF EN='1' THEN

OUT1<=IN1;

ELSE

OUT1<='Z'; END IF;

END PROCESS;

END ARC_BUFFER;

四、 实验要求

熟练掌握运用VHDL 语言进行组合逻辑电路设计的基本方法。

五、 实验结果

(1)2选1多路选择器

在Quartus II 建立工程并输入代码,经编译后波形图如下所示:

实验分析:

如图所示,a 和b 分别为两个数据输入端,s 为通道选择控制信号输入端。

2选1多路选择器波形图

以看到,当s 为低电平时,a 输入端的信号传送至y ;当s 为高电平时,b 输入端的信号传送至y ,则设计的程序基本符合要求。

(2)1位半加器

在Quartus II 建立工程并输入代码,经编译后波形图如下所示:

实验分析:

如图所示,a ,b 为半加器的两个输入端,co 是进位输出端,so 是和输出端。 在0~10ns ,只有b 端输入信号为“1”,因此,进位输出端co 为“0”,和位输出端so 为“1”;在10ns~15ns ,此时输入端只有a 为“1”,b 端为“0”,因此,so 、co 的输出情况和0~10ns 内一致;在15ns~20ns 内,此时a 、b 输入端均为“1”,故进位输出端co 为“1”,和位输出端为“0”.

(3)三态缓冲器

在Quartus II 建立工程并输入代码,经编译后波形图如下所示:

如图所示,EN 为三态门的使能端,IN1为输入端,OUT1为输出端。观察可知,在0~10ns 内,IN1的输入为“1”,但此时使能端EN

没有使能信号,因此

1位半加器波形图

三态缓冲器波形图

三态门的输出OUT1为初始状态;在10ns~20ns内,在这个周期内,使能信号始终加载在EN上,因此,三态门的输出OUT1随着输入端IN1的变化而变化。

六、实验总结

本次实验的主要内容是组合逻辑电路的VHDL实现,要求我们掌握VHD语言进行逻辑电路设计的方法,同时熟悉Quartus II软件的使用。但由于个人原因申请了免听《EDA技术》课程的理论课,加上平时没有及时地查阅课本资料,导致进行实验操作时无从入手,拖慢了实验进度。

在课后继续完成实验内容时,发现虽然没有系统地在课堂上学习理论知识,但通过进行实验操作,还是可以较为容易地读懂VHDL语言。这提醒我,要认真对待眼前的困难,只要认真实践、掌握诀窍,困难就会一步步蚕食,将会变成简单!

相关文档
最新文档