硬件描述语言实验四:四位加法器实验

1、实验目的:进一步练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言行为描述的编写方法。

2、实验环境:PC个人计算机、Windows操作系统、Quartus II集成开发环境软件。

3、实验要求:设计一个四位加法器,实体名称为“adder4_2”,其引脚及其功能如下表。

端口模式

端口名

数据类型

说明

in

(输入)

a

std_logic_vector(3 downto 0)

加数

b

加数

ci

std_logic

自低位进位

out

(输出)

s

std_logic_vector(3 downto 0)

co

std_logic

向高位进位

4、实验步骤:①建立工程、②编辑代码、③编译及修改错误、④建立仿真波形并仿真、⑤根据仿真结果分析设计是否正确。

提示:

1、VHDL语言可以进行高层次抽象的行为描述,而不用描述硬件电路的具体逻辑关系。例如在描述加法器时,可以用如下语句:

s <= a + b + ci;

上述描述方法需要用到ieee库中的ieee.std_logic_unsigned.all。

2、为了能够生成进位,四位加法器在内部应得到五位的和,因此两个加数也应扩充为五位。扩充字长可应用并置运算完成。如下语句将四位信号a在最高端并置一个’0’而成为五位信号aa:

aa <= ‘0’ & a;

将五位信号ss的低四位赋值给四位信号s的语句如下:

s <= ss(3 downto 0);

和的最高位作为加法器的进位输出。

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity adder4_2 is
port(a,b :in std_logic_vector(3 downto 0);
     ci  :in std_logic;
	  s   :out std_logic_vector(3 downto 0);
	  co  :out std_logic);
end entity;

architecture rtl of adder4_2 is
signal aa,bb,ss:std_logic_vector(4 downto 0);
begin
  aa<='0' &a;
  bb<='0' &b;
  ss<=aa+bb+ci;
  s<=ss(3 downto 0);
  co<=ss(4);
end rtl;

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值