VHDL硬件描述语言四位加法器实验报告Word文件下载.docx
《VHDL硬件描述语言四位加法器实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《VHDL硬件描述语言四位加法器实验报告Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
采用三种方式设计一个四位加法器,实体名称分别为“adder4”、“adder4_2”、和“adder_3”,四位加法器的引脚与功能如下表。
端口模式
端口名
数据类型
说明
in
(输入)
a
std_logic_vector(3downto0)
加数
b
ci
std_logic
低位进位
out
(输出)
s
和
co
高位进位
四、实验步骤:
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
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的语句如下:
=ss(3downto0);
和的最高位作为加法器的进位输出。
useieee.std_logic_unsigned.all;
entityadder4_2is
port
a,b:
instd_logic_vector(3downto0);
ci:
s:
outstd_logic_vector(3downto0);
co:
architecturertlofadder4_2is
signalaa,bb,ss:
std_logic_vector(4downto0);
aa<
='
0'
&
a;
bb<
b;
ss<
=aa+bb+ci;
s<
=ss(4);
3、采用构造体的结构描述方式:
首先新建一个工程,命名为“adder4_3”,然后编辑代码。
(附加要求:
应用一位全加器按如下电路图通过结构描述方式构造四位加法器)
entityfull_adderis
a:
b:
ci:
s:
outstd_logic;
co:
architecturertloffull_adderis
=axorbxorci;
co<
=(aandb)or(aandci)or(bandci);
entityadder4_3is
A,B:
Ci:
S:
Co:
architecturertlofadder4_3is
signalC0,C1,C2:
std_logic;
componentfull_adderis
a,b:
endcomponentfull_adder;
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);
5、三种描述方式的比较:
这三种描述方式是从不同的角度对硬件系统进行行为和功能的描述。
行为方式描述是对整个系统数学模型的描述,并不真正考虑其实际的操作,用行为方式描述的系统结构的程序其抽象程度高,很难直接映射到具体的逻辑元件的实现。
要想得到具体的元件实现,必须将行为描述的VHDL语言程序改写为RTL方式描述的程序。
采用RTL方式描述才能导出系统的逻辑表达式,才能直接得到逻辑元件之间的链接关系。
构造体的结构描述方式是RTL方式描述的一种特殊的形式,它可以将已有的设计成果应用到新的设计中,提高了设计的效率。