EDA实验六8位二进制全加法器的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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、上机之前由于对实验没有仔细研究,因此编入程序时没有多大感悟,所以以后应该提前预习。

相关文档
最新文档