VHDL硬件描述语言四位加法器实验报告.docx

上传人:b****3 文档编号:3893510 上传时间:2022-11-26 格式:DOCX 页数:7 大小:48.50KB
下载 相关 举报
VHDL硬件描述语言四位加法器实验报告.docx_第1页
第1页 / 共7页
VHDL硬件描述语言四位加法器实验报告.docx_第2页
第2页 / 共7页
VHDL硬件描述语言四位加法器实验报告.docx_第3页
第3页 / 共7页
VHDL硬件描述语言四位加法器实验报告.docx_第4页
第4页 / 共7页
VHDL硬件描述语言四位加法器实验报告.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

VHDL硬件描述语言四位加法器实验报告.docx

《VHDL硬件描述语言四位加法器实验报告.docx》由会员分享,可在线阅读,更多相关《VHDL硬件描述语言四位加法器实验报告.docx(7页珍藏版)》请在冰豆网上搜索。

VHDL硬件描述语言四位加法器实验报告.docx

VHDL硬件描述语言四位加法器实验报告

题目:

硬件描述语言实验四:

四位加法器

姓名:

*****学号:

******

地点:

主楼402时间:

3月21日

一、实验目的:

进一步练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言基本设计实体的编写方法。

二、实验环境:

PC个人计算机、WindowsXP操作系统、QuartusII集成开发环境软件。

三、设计要求:

采用三种方式设计一个四位加法器,实体名称分别为“adder4”、“adder4_2”、和“adder_3”,四位加法器的引脚与功能如下表。

端口模式

端口名

数据类型

说明

in

(输入)

a

std_logic_vector(3downto0)

加数

b

加数

ci

std_logic

低位进位

out

(输出)

s

std_logic_vector(3downto0)

co

std_logic

高位进位

四、实验步骤:

1、采用寄存器传输的描述方式:

首先新建一个工程,命名为“adder4”,然后编辑代码。

注意在模块内部(构造体说明部分)需要定义三个连接线,定义语句为:

signalc0,c1,c2:

std_logic

代码如下:

libraryieee;

useieee.std_logic_1164.all;

entityadder4is

port

a,b:

instd_logic_vector(3downto0);

ci:

instd_logic;

s:

outstd_logic_vector(3downto0);

co:

outstd_logic

);

endentity;

architecturertlofadder4is

signalc0,c1,c2:

std_logic;

begin

s(0)<=a(0)xorb(0)xorci;

c0<=(a(0)andb(0))or(a(0)andci)or(b(0)andci);

s

(1)<=a

(1)xorb

(1)xorc0;

c1<=(a

(1)andb

(1))or(a

(1)andc0)or(b

(1)andc0);

s

(2)<=a

(2)xorb

(2)xorc1;

c2<=(a

(2)andb

(2))or(a

(2)andc1)or(b

(2)andc1);

s(3)<=a(3)xorb(3)xorc2;

co<=(a(3)andb(3))or(a(3)andc2)or(b(3)andc2);

endrtl;

仿真波形图如下:

仿真电路图如下:

由上图可知设计是正确的。

2、采用行为描述方式:

首先新建一个工程,命名为“adder4_2”,然后编辑代码。

在编写代码过程中应注意以下几个要点:

1、VHDL语言可以进行高层次抽象的行为描述,而不用描述硬件电路的具体逻辑关系。

例如在描述加法器时,可以用如下语句:

s<=a+b+ci;

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

2、为了能够生成进位,四位加法器在内部应得到五位的和,因此两个加数也应扩充为五位。

扩充字长可应用并置运算完成。

如下语句将四位信号a在最高端并置一个’0’而成为五位信号aa:

aa<=‘0’&a;

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

s<=ss(3downto0);

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

代码如下:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityadder4_2is

port

a,b:

instd_logic_vector(3downto0);

ci:

instd_logic;

s:

outstd_logic_vector(3downto0);

co:

outstd_logic

);

endentity;

architecturertlofadder4_2is

signalaa,bb,ss:

std_logic_vector(4downto0);

begin

aa<='0'&a;

bb<='0'&b;

ss<=aa+bb+ci;

s<=ss(3downto0);

co<=ss(4);

endrtl;

仿真波形图如下:

仿真电路图如下:

由上图可知设计是正确的。

3、采用构造体的结构描述方式:

首先新建一个工程,命名为“adder4_3”,然后编辑代码。

(附加要求:

应用一位全加器按如下电路图通过结构描述方式构造四位加法器)

代码如下:

libraryieee;

useieee.std_logic_1164.all;

entityfull_adderis

port

a:

instd_logic;

b:

instd_logic;

ci:

instd_logic;

s:

outstd_logic;

co:

outstd_logic

);

endentity;

architecturertloffull_adderis

begin

s<=axorbxorci;

co<=(aandb)or(aandci)or(bandci);

endrtl;

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityadder4_3is

port

A,B:

instd_logic_vector(3downto0);

Ci:

instd_logic;

S:

outstd_logic_vector(3downto0);

Co:

outstd_logic

);

endentity;

architecturertlofadder4_3is

signalC0,C1,C2:

std_logic;

componentfull_adderis

port

a,b:

instd_logic;

ci:

instd_logic;

s:

outstd_logic;

co:

outstd_logic

);

endcomponentfull_adder;

begin

U0:

full_adderportmap(A(0),B(0),Ci,S(0),C0);

U1:

full_adderportmap(A

(1),B

(1),C0,S

(1),C1);

U2:

full_adderportmap(A

(2),B

(2),C1,S

(2),C2);

U3:

full_adderportmap(A(3),B(3),C2,S(3),Co);

endrtl;

仿真波形图如下:

仿真电路图如下:

由上图可知设计是正确的。

5、三种描述方式的比较:

这三种描述方式是从不同的角度对硬件系统进行行为和功能的描述。

行为方式描述是对整个系统数学模型的描述,并不真正考虑其实际的操作,用行为方式描述的系统结构的程序其抽象程度高,很难直接映射到具体的逻辑元件的实现。

要想得到具体的元件实现,必须将行为描述的VHDL语言程序改写为RTL方式描述的程序。

采用RTL方式描述才能导出系统的逻辑表达式,才能直接得到逻辑元件之间的链接关系。

构造体的结构描述方式是RTL方式描述的一种特殊的形式,它可以将已有的设计成果应用到新的设计中,提高了设计的效率。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1