实验一 半加器和全加器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 半加器和全加器的设计
一、 实验目的
1、掌握图形的设计方式;
2、掌握自建元件及调用自建元件的方法;
3、熟练掌握MAXPLUS II 的使用。
二、实验内容
1、熟练软件基本操作,完成半加器和全加器的设计;
2、正确设置仿真激励信号,全面检测设计逻辑;
3、综合下载,进行硬件电路测试。
三、实验原理
1、半加器的设计
半加器只考虑了两个加数本身,没有考虑由低位来的进位。 半加器真值表:
半加器逻辑表达式:B A B A B A S ⊕=+=;AB C = LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT(
A:IN STD_LOGIC; B:IN STD_LOGIC;
SO:OUT STD_LOGIC;
CO:OUT STD_LOGIC
);
END ENTITY h_adder;
ARCHITECTURE fh1 OF h_adder IS
BEGIN
SO <= A XOR B;
CO <= A AND B;
END ARCHITECTURE fh1;
A:60ns B:30ns
2.全加器的设计
全加器除考虑两个加数外,还考虑了低位的进位。全加器真值表:
全加器逻辑表达式:
1-⊕⊕=i i i i C B A S ;AB C B A C i i i i +⊕=-1)(
3、利用半加器元件完成全加器的设计 (1)图形方式
其中HADDER 为半加器元件。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder IS
PORT(ain,bin,cin:IN STD_LOGIC; cout,sum:out STD_LOGIC); END ENTITY f_adder;
ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder PORT(
A:IN STD_LOGIC; B:IN STD_LOGIC;
SO:OUT STD_LOGIC;
CO:OUT STD_LOGIC
);
END COMPONENT;
COMPONENT or2a
PORT(
a:IN STD_LOGIC;
b:IN STD_LOGIC;
c:OUT STD_LOGIC
);
END COMPONENT;
SIGNAL net1,net2,net3:STD_LOGIC;
BEGIN
u1:h_adder port MAP(A=>ain,B=>bin,CO=>net2,SO=>net1); u2:h_adder port MAP(net1,cin,net3,sum);
u3: or2a port MAP(a=>net2,b=>net3,c=>cout);
END ARCHITECTURE fd1;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY or2a IS
PORT(a,b:IN STD_LOGIC;
c:out STD_LOGIC);
END ENTITY or2a;
ARCHITECTURE one OF or2a IS
BEGIN
c <= a OR b;
END ARCHITECTURE one;
ain:60ns bin:50ns cin:40ns
四、实验步骤
1.对文件进行建立,是txt
2.添加相关程序,保存文件位vhd
3.设置工程为底层
4.对程序进行编译
5.没有错后对波形图进行新建
6.设置输入得出输出波形,与真值表进行对照
五、实验小结:
本次实验针对半加器和全加器的设计与仿真相对简单,而半加器可以说是全加器的重要组成部分,实验过程从建立文件对程序进行编写到波形的仿真验证都相对容易,其中在全加器中出现问题,由于对程序的理解不到位,并没有建立调用声明门元件的相关程序。经此次实验以及对相关知识的回顾,对于VHDL设计更加明了。