EDA实验六8位二进制全加法器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《电子设计自动化》实验报告
实验六实验名称:8位二进制全加法器的设计
专业及班级:姓名:学号:
一、实验目的:
1.掌握VHDL语言的基本结构。
2.掌握全加器原理,能进行多位加法器的设计。
3.掌握VHDL语言的基本描述语句特别是元件例化语句的使用方法。
二、实验内容
设计并实现一个由两个4位二进制并行加法器级联而成的8位二进制并行加法器。要求编写4位加法器的VHDL语言程序,顶层8位加法器的设计要求利用元件例化语句进行设计,并利用开发工具软件对其进行编译和仿真,最后通过实验开发系统对其进行硬件验证。
三、实验步骤(附源代码及仿真结果图):
1.根据4位二进制加法器的原理,利用VHDL语言的基本描述语句编写出4位加法器的VHDL语言程序。
--ADDER4B.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ADDER4B IS
PORT( C4: IN STD_LOGIC;
A4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
B4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
S4: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
CO4: OUT STD_LOGIC);
END ENTITY ADDER4B;
ARCHITECTURE ART OF ADDER4B IS
SIGNAL S5:STD_LOGIC_VECTOR(4 DOWNTO 0);
SIGNAL A5,B5:STD_LOGIC_VECTOR(4 DOWNTO 0);
BEGIN
A5<='0'& A4;
B5<='0'& B4;
S5<=A5+B5+C4;
S4<=S5(3 DOWNTO 0);
CO4<=S5(4);
END ARCHITECTURE ART;
2.对所设计的4位二进制加法器的VHDL程序进行编译,然后对其进行仿真,初步验证程序设计的正确性。
编译成功后,出现如图2-10所示界面:
仿真图片:
3.采用元件例化语句设计8位加法器,并对其进行编译和仿真,初步验证设计的正确性。
--ADDER8B.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ADDER8B IS
PORT( C8:IN STD_LOGIC;
A8:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
B8:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
S8:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
CO8:OUT STD_LOGIC);
END ENTITY ADDER8B;
ARCHITECTURE ART OF ADDER8B IS
COMPONENT ADDER4B IS
PORT(C4:IN STD_LOGIC;
A4:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
B4:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
S4:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
CO4:OUT STD_LOGIC);
END COMPONENT ADDER4B;
SIGNAL SC:STD_LOGIC;
BEGIN
U1:ADDER4B PORT MAP(C4=>C8,A4=>A8(3 DOWNTO 0),B4=>B8(3 DOWNTO 0),S4=>S8(3 DOWNTO 0),CO4=>SC);
U2:ADDER4B PORT MAP(C4=>SC, A4=>A8(7 DOWNTO 4), B4=>B8(7 DOWNTO 4),S4=>S8 (7 DOWNTO 4),CO4=>CO8);
END ARCHITECTURE ART;
仿真图片:
4.利用开发工具软件,选择所用可编程逻辑器件,并对8位加法器进行管脚配置。
5.通过下载电缆将编译后的*.sof文件下载到目标器件之中,并利用实验开发
装置对其进行硬件验证。
四、实验中发现的问题:
1、程序代码输入后,但是编译有错误,多次检查后未发现错误,询问老师后得知需要改一个实体名称,保证实体名与文件名一致才可编译,修改完毕编译,错误得以解决,程序正常运行;
2、没有用U盘将程序文件提前拷贝好,导致实验过程中将程序代码一个一个输入,浪费了大量时间,下次应将代码提前弄好放在U盘里,上课直接复制程序调试,那样可以有大量时间去做实验的一些拓展,或者请教老师一些问题。
3、当下载到芯片中,发现所有LED灯都亮,按以下步骤进行处理后成功:
a. 点击Assignments->Device,在弹出的对话框中点击Device and Pin Options;
b. 选择Unused Pins,在Reserve all unused pins下拉菜单中选择As input tri-stated。点击ok两次关闭对话框。
c. 重新编译,下载。
4、上机之前由于对实验没有仔细研究,因此编入程序时没有多大感悟,所以以后应该提前预习。