VHDL实验三:一位全加器、四选一多路选择器

一、实验目的

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版权协议,转载请附上原文出处链接和本声明。