硬件描述语言实验五.docx
- 文档编号:23607586
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:12
- 大小:235.41KB
硬件描述语言实验五.docx
《硬件描述语言实验五.docx》由会员分享,可在线阅读,更多相关《硬件描述语言实验五.docx(12页珍藏版)》请在冰豆网上搜索。
硬件描述语言实验五
硬件描述语言实验
题目:
四位加法器实验
学院计算机科学与技术
学科门类xxxxxxxxxx
专业xxxxxxxxxx
学号xxxxxxxxxx
姓名宁剑
指导教师xxxx
20xx年x月x日
硬件描述语言
一、实验题目:
四位加法器
二、实验目的和要求
实验目的:
进一步练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言三种描述方法。
实验要求:
设计一个四位加法器,实体名称为“adder4_3”,其引脚及其功能如下表。
端口模式
端口名
数据类型
说明
in
(输入)
A
std_logic_vector(3downto0)
加数
B
加数
Ci
std_logic
低位进位
out
(输出)
S
std_logic_vector(3downto0)
和
Co
std_logic
高位进位
要求应用一位全加器(实验二中所实现的)按如下电路图通过结构描述方式构造四位加法器。
本实验用实验二“full_adder”的实体作为元件,用portmap语句描述出来将下图的电路,实现四位加法器,并与实验三、实验四的加法器进行比较。
三、实验内容
1、打开altera软件,建立一个名为adder4_3的vhdl工程。
2、要求调用实验二中的一位加法器,按照如下电路图通过结构描述方式构造一个四位加法器。
3、编译及修改错误。
4、建立波形并仿真。
5、根据仿真结果分析设计是否正确。
附录:
实验二中一位加法器的引脚及功能如下图:
设计一个一位加法器,实体名称为“full_adder”,其引脚与功能如下表。
端口模式
端口名
数据类型
功能逻辑表达式
说明
in(输入)
a
std_logic
加数
b
加数
ci
低位进位
out(输出)
s
s<=axorbxorci
和
co
co<=(aandb)or(aandci)or(bandci)
高位进位
附录:
实验三中四位加法器的引脚及功能如下图:
设计一个四位加法器,实体名称为“adder4”,其引脚与功能如下表。
端口模式
端口名
数据类型
功能逻辑表达式
说明
in
输入
a
std_logic_vector
(3downto0)
加数
b
加数
ci
std_logic
来自低位进位
out
输出
s
std_logic_vector
(3downto0)
s(0)<=a(0)xorb(0)xorci
c0<=(a(0)andb(0))or(a(0)andci)or(b(0)andci)
…
和
co
std_logic
co<=(a(3)andb(3))or(a(3)andc2)or(b(3)andc2)
向高位的进位
附录:
实验四中四位加法器的引脚及功能如下图:
设计一个四位加法器,实体名称为“adder4_2”,其引脚与功能如下表。
端口模式
端口名
数据类型
说明
in
(输入)
a
std_logic_vector(3downto0)
加数
b
加数
ci
std_logic
自低位进位
out
(输出)
s
std_logic_vector(3downto0)
和
co
std_logic
向高位进位
四、实验结果
部分代码截图:
通过此图我们得知编写的代码全部通过编译。
实验的RTL结构图:
由编译器所绘出的RTL结构图与实验所示的结构图完全吻合,达到了实验要求。
波形图及仿真结果:
可以看到,在两个加数A、B不超过15的情况下,共测试了13组数据,四位加法器的计算正确,实验得以验证。
附录:
实验三仿真图(波形仿真图略)
附录:
实验四仿真图(波形仿真图略)
五、实验总结
通过此次实验,我们运用了COMPONENT语句和PORTMAP语句调用实验二中的full_adder逻辑描述模块,无需在本次实验的构造体中再次对其进行定义和描述,大大缩短了实验周期,提高了效率,同时保证了实验结果的准确性。
VHDL语言对硬件系统的描述可以用3种不同风格的描述方式进行描述,即行为描述方式、寄存器传输(RTL)描述方式和结构描述方式。
这3种描述方式从不同的角度对硬件系统的行为和功能进行了描述。
其中,RTL和结构描述下的程序可进行逻辑综合,而行为描述程序大多用于系统仿真。
我们对这3种方式各自的特点总结如下:
(1)行为描述方式:
①行为描述方式是对系统数学模型的描述,其抽象程度比其他两种描述方式都高。
②在这种高层次抽象的行为描述中,不需要描述硬件电路的具体逻辑关系,而是采用算术运算、关系运算等类数学公式的语句来描述器件行为。
但是这些语句大都难以进行逻辑综合,因此行为描述方式不能进行逻辑综合。
③这种描述方式主要用于系统数学模型的仿真和系统工作原理的仿真。
(2)寄存器传输(RTL)描述方式:
①RTL描述方式是一种明确规定寄存器描述的方法。
②RTL描述方式是真正可以进行逻辑综合的描述方式。
③在采用该方式进行编程时,所使用的VHDL语句有一定的限制。
(3)结构体描述方式:
①结构体描述方式可较方便地进行多层次的结构设计,增加了代码的重用性。
②这种描述方式能提高设计效率,并将已有的设计成果方便的用到新的设计中。
六、附录
本次实验(四)的代码部分:
libraryieee;
useieee.std_logic_1164.all;
useieee.numeric_std.all;
entityfull_adderis
port
(
a,b,ci:
inSTD_LOGIC;
s,co:
outSTD_LOGIC
);
endentity;
architecturertloffull_adderis
begin
s<=axorbxorci;
co<=(aandb)or(aandci)or(bandci);
endrtl;
libraryieee;
useieee.std_logic_1164.all;
useieee.numeric_std.all;
entityadder4_3is
port
(
A,B:
instd_logic_vector(3downto0);
Ci:
instd_logic;
S:
outstd_logic_vector(3downto0);
Co:
outstd_logic
);
endentity;
architecturertlofadder4_3is
COMPONENTfull_adderIS
port
(
a,b,ci:
inSTD_LOGIC;
s,co:
outSTD_LOGIC
);
ENDCOMPONENT;
SIGNALC0,C1,C2:
STD_LOGIC;
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;
实验二中一位加法器full_adder的代码如下:
libraryieee;
useieee.std_logic_1164.all;
entityfull_adderis
port
(
a,b,ci:
inSTD_LOGIC;
s,co:
outSTD_LOGIC
);
endentity;
architecturertloffull_adderis
begin
s<=axorbxorci;
co<=(aandb)or(aandci)or(bandci);
endrtl;
实验三中四位加法器adder4代码:
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);
endarchitecturertl;
实验四中四位加法器adder4_2代码:
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);
endarchitecturertl;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 描述 语言 实验