实验一 组合逻辑电路的VHDL实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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语言。这提醒我,要认真对待眼前的困难,只要认真实践、掌握诀窍,困难就会一步步蚕食,将会变成简单!