一、实验目的
1.掌握简单的VHDL程序设计。
2.掌握用VHDL对基本组合逻辑电路的建模。
二、实验原理
1. 数据选择器(Multiplexer)
在数字系统设计时,需要从多个数据源中选择一个, 这时就需要用到多路选择器。以2选1多路选择器为例,在控制端的作用下可以从2路并行的输入信号中选择一路信号作为输出。
2.全加器 (Adder)
加法器是最基本的运算单元。加法器中最小的单元是一位全加器,一位全加器(Adder)的真值表如下所示:
3.四选一选择器
真值表如图所示:
三、实验内容
1、一位全加器
(1)实验代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY lab3 IS
PORT (a,b,ci: IN BIT;
S,CO: OUT BIT
);
END;
ARCHITECTURE f_add OF lab3 IS
BEGIN
s<=(a XOR b)XOR ci;
co<=((a XOR b)AND ci)OR(a AND b);
END;
(2)波形仿真图:
分析:
- 前8个intervals按真值表设值,输出结果符合真值表;
- 后面的intervals为随机设值,输出结果也符合真值表。
- s的结果为a、b全加的结果,ci为进位标志,从仿真波形可以看出,s满足两个二进制数a、b相加,并且输出co加法进位,符合实验预期的逻辑功能。
2、思考题:四选一多路选择器
(1)实验代码
library ieee;
use ieee.std_logic_1164.all;
entity mux1_4 is
port(a,b,c,d: in std_logic;
s1,s0: in std_logic;
y: out std_logic);
end mux1_4;
architecture one of mux1_4 is
signal sel: std_logic_vector(1 downto 0);
begin
sel <= s1&s0;
with sel select
y<= a when "00",
b when "01",
c when "10",
d when "11",
'X' when others;
end one;
(2)波形仿真图
分析:
由图中波形可以明显地看出,
当s0=0且s1=0时,y=a;当s1=0且s0=1时,y=b;
当s1=1且s0=0时,y=c;当s1=1且s0=1时,y=d。
符合真值表的逻辑功能。
四、实验总结
在本次实验中,完成了一位全加器和四选一多路选择器的文本层次设计和波形仿真,熟悉了全加器和数据选择器的逻辑功能,同时复习了数电里的基础知识,对EDA软件功能的了解程度有所加深。并且,初步掌握以文本编辑的方式设计电路的方法,学习了VHDL语言中库,实体,结构体等基本语法的使用。
错误整理:实体的命名要与实体所在的.vhd文件名保持一致。
版权声明:本文为White__Sun原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。