加法器实验报告 - 范文中心

加法器实验报告

01/29

实验三 加法器的设计与仿真

一、实验目的 熟悉quartus ⅱ仿真软件的基本操作,用逻辑图和vhdl 语言设计加法器并验证。

二、实验内容

1、熟悉quartus ⅱ软件的基本操作,了解各种设计输入方法(原理图设计、文本设计、 波形设计)

2、用逻辑图和vhdl 语言设计全加器并进行仿真验证; 3、用设计好的全加器组成串行

加法器并进行仿真验证; 4、用逻辑图设计4位先行进位全加器并进行仿真验证;

三、实验原理

1. 全加器

全加器英文名称为full-adder ,是用门电路实现两个二进制数相加并求出和的组合线路,

称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进

行级联可以得到多位全加器。

用途:实现一位全加操作 逻辑图 真值表 第 1 页 共 7 页 利用与或门设计的全加器,它只能做一位的加法,先预想好它的功能,写出真值表,就

可以根据这些来设计电路了。

2.四位串行加法器 逻辑图 利用全加器的组合实现4位串行加法器,全加器只能对一位进行操作,将每一位的结果

传给下一位,就可以实现4位的加法器。

3.74283:4位先行进位全加器(4-bit full adder) 利用74283芯片实现的4位先行进位全加器比前两者功能更完善,它可以实现进位功能,

这个自己设计难度比较大,可以参照74283的功能表加深对它的理解, 第 2 页 共 7 页 按照如下的逻辑图实现进位全加器。 逻辑框图 逻辑功能表 注:1、输入信号和输出信号采用两位对折列表,节省表格占用的空间,如:[a1/a3]对

应的列取值相同,结果和值[σ1/σ3]对应的运算是σ1=a1+b1和σ3=a3+b3。请自行验证一

下。

2、c2是低两位相加产生的半进位,c4是高两位相加后产生的进位输出,c0是低位级加

法器向本级加法器的进位输入。

四、实验方法与步骤

实验方法:

第 3 页 共 7 页 采用基于fpga 进行数字逻辑电路设计的方法。 采用的软件工具是quartusii 软件仿真平台,采用的硬件平台是altera

epf10k20ti144_4的fpga 试验箱。 实验步骤: ? 全加器

1、 编写源代码。打开quartus ⅱ软件平台,点击file 中得new 建立一个文件。编写的

文件

名与实体名一致,点击file/save as以“.vhd ”为扩展名存盘文件。vhdl 设计源代码

如下:

数据流描述:

2、按照实验箱上fpga 的芯片名更改编程芯片的设置。点击assign/device,选取芯片的

类型, 选择“altera 的epf10k20ti144_4”

4、波形仿真及验证。在编译成功后,点击waveform 开始设计波形。点击“insert the node ”,

按照程序所述插入节点,设置输入信号的波形,给予适当的信号激励,点击保存按钮保存。

然后进行功能仿真,选择菜单processing->generate functional netlist 命令产生功能

仿真网表,选择菜单assignments-->setting下拉列表中选择simulator input , 在右侧

的simulation mode 下拉列表中选择functional ,完成设置;选择菜单中的

processing->start simulation启动功能仿真,然后查看波形报告中的结果 第 4 页 共 7 页

(2)编程下载及硬件测试:将实验板连接都电脑上,选择tools-->programmer命令

进入下载窗口,单击start 进行下载当process 栏中出现100%则下载成功。 ? 4位串行加法

1、 新建一个工程,工程名与文件名相同,将全加器的vhd 文件复制到该工程下,在工

程中

打开,并产生bsf ,以将全加器作为一个子模块在该工程中调用。

2、 绘制逻辑图。打开quartus ⅱ软件平台,点击file 中得new 建立一个文件,按照原

理中

所述的逻辑图进行连接,点击file/save as以“.bdf ”为扩展名存盘文件。 3、 进行

全编译。

【注】:后面的步骤与全加器相同,这里不再赘述。 ? 4位先行进位全加器

1、 绘制逻辑图。打开quartus ⅱ软件平台,点击file 中得new 建立一个文件,按照原

中所述的逻辑图进行连接,点击file/save as以“.bdf ”为扩展名存盘文件。 2、 进

行全编译。

【注】:后面的步骤与全加器相同,这里不再赘述

五、实验结果与分析

? 全加器 1、 编译过程 a)编译过程、调试结果 首先是选择processing-->analyze current file命令进行语法检查 然后选择processing-->start-->start analysis&synthesis命令进行综合

分析

b)结果分析及结论:代码的书写、结构及逻辑都是正确的,编译成功。 2、 功能仿真 a)功能仿真过程及仿真结果 功能仿真过程:点击processing →generate functional simulation netlist 产生仿真

网表,点击assignments →settings →simulator settings,在simulation mode下拉选项

中选择functional, 点击ok 。点击processing →start simulation进行功能仿真。 第 5 页 共 7 页篇二:加法器 数电实验报告三 实验三 加法器

一、 实验目的

1、掌握用ssi 器件实现全加器的方法。

2、掌握用msi 组合逻辑器件实现全加器的方法。 3、掌握集成加法器的应用。

二、 实验设备及器件

1、数字逻辑电路实验板1块

2、74hc(ls)00(四二输入与非门) 1片 3、74hc(ls)86(四二输入异或门) 1片 4、74hc(ls)153(双四选一数据选择器) 1片 5、74hc(ls)283(4位二进制全加器) 1

三、 实验原理

组合逻辑电路是数字电路中最常见的逻辑电路之一。组合逻辑电路的特点,就是在任意

时刻电路的输出仅取决于该时刻的输入信号,而与信号作用前电路所处的状态无关。本实验

是根据给定的逻辑功能,设计出实现这些功能的组合逻辑电路。 不考虑低位进位,只本位相

加,称半加。实现半加的电路,为半加器。考虑低位进位的加法称为全加。实现全加的电路,

为全加器。实现三个输入变量(一位二进制数)全加运算功能的电路称为1位全加器。实现

多位二进制数相加有串行多位加法和并行多位加法两种形式,其中比较简单的一种电路是采

用多个1位全加器并行相加,逐位进位的方式。 实验用器件管脚介绍: 1、74hc(ls)00(四二输入与非门)管脚如下图所示。 2、74hc(ls)86(四二输入异或门)管脚如下图所示。 3、74hc(ls)153(双四选一数据选择器)管脚如下图所示 。 4、74hc(ls)283(4位二进制全加器)管脚如下图所示 。

四、 实验内容与步骤

1、用门电路实现全加器(基本命题) 参照表达式si=a i ? bi ?ci ci+1 = ( a i ?bi )ci+a i bi其中为本位和,si 为

低位向本位的进位, ci+1为本位向高位进位,设计用与非门74hc(ls)00及异或门74hc(ls)86

实现1位全加器的实验电路图,搭接电路,用led 显示其输出,并记录结果在下表: 1

2、依次由abc 输入信号,观察led 的工作情况并记录 注意:由于led 是低电平有效,当输出0是灯亮,输出1时灯灭.

2、用数选器实现全加器(基本命题) 是否与设计功能一致。

注意:由于led 是低电平有效,当输出0是灯亮,输出1时灯灭

3、用全加器实现代码转换电路(扩展命题) 设计用全加器74hc(ls)283实现8421码到余三码转换的实验电路图,搭接电路,用led

显示其输出,并记录结果在下表中。 b.依次由abc 输入信号,观察led 的工作情况并记录并与实验一中对比看逻辑功能 是

否与设计功能一致。

注意:由于led 是低电平有效,当输出0是灯亮,输出1时灯灭

五、实验总结

通过本次试验已经掌握门电路器件实现全加器的方法,并对集成加法器的应用有初步了

解,在实验过程中由于需要连接的线比较多,所以要格外小心。 在实验一中需要经过反演规

则将异或逻辑表达式反演为或非式。 实验二主要是用另一个方法实现全加器,注意数选器的

数据选择规律,输入的被选择项中最小项确定输出项 实验三注意到输入信号的顺序问题和输出信号接入led 的顺序,否则信号灯的显示会与

理论不符。这时候不能急,重新确认一下输入和输出的信号是否对应 tips:这次试验学会了很多,首先万用表很万能,要习惯用万用表检测线路 其次

做实验的正确方法是先画好电路图,按图接线,最后检测,所以元件问题根本不是问题,就

把他当个开关好了

最后做实验需要小心谨慎,思维敏捷。这个对万事都是准则。篇三:八位加法器的设计

实验报告 八位加法器的设计实验报告 学号: u200915272 班级: 信息安全 0901 姓名: 方 浏 洋

日期: 2011-5-2 目录

一、实验概

述 .............................................................................

.......................................... - 2 -

二、设计思

路 .............................................................................

.......................................... - 3 -

2.1 quartus ⅱ中74181的功能分

析 ....................................................................... - 3 -

2.2 8位先行加法器的设

计 .............................................................................

......... - 3 -

2.3 8位行波进位加法器的设

计 ..............................................................................

- 4 -

三、实验内

容 .............................................................................

.......................................... - 5 -

3.1 8位先行加法

器 .............................................................................

..................... - 5 -

3.2 8位行波加法

器 .............................................................................

..................... - 7 -

3.3 对先行进位和行波进位的时序分

析 ................................................................. - 9 -

四、心得体

会 .............................................................................

........................................ - 11 - - 1 -

一、实验概述

利用eda 软件分别设计一个先行进位和行波进位的8位加法器,分别对它们进行时序分

析,比较先行进位和行波进位在时间上的差异。 eda是电子设计自动化(electronic design automation)的缩写。在eda 平台上,设

计者可以用硬件描述语言完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、

综合、优化、布局、布线和仿真,直至对特定目标芯片的适配编译、逻辑映射和编程下载等

工作。利用eda 工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作

可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出ic 版图或pcb 版图

的整个过程的计算机上自动处理完成。 本次实验将利用目前在国内比较流行的eda 软件工具quartus ⅱ。quartus ⅱ是altera

公司提供的fpga/cpld开发集成环境,界面友好,使用便捷,是最易用、易学的eda 软件。

在quartus ⅱ上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,

它提供了一种与结构无关的设计环境。借助它,设计者能方便地进行设计输入、快速处理和

器件编程。

实验中,我通过原理图输入的方法来设计输入,然后对其进行仿真,验证器件的正确性,

最后对其进行时序分析,比较两种进位加法器在时间上的差异。 - 2 -

二、设计思路

2.1 quartusⅱ中74181的功能分析 要求设计一个8位的加法器,为了方便,我采用了两个74181进行组合来实现8位加法

器的功能。在quartus ⅱ中,74181元件的输入输出引脚与书上的略有不同。 图1示出了quartus ⅱ的元件库中的74181方框图。 与书上的相比,它的a 、b 、f 、p 、g 和a=b都是工作于负 操作数,那么,要进行算术加法运算,则s3s2s1s0=hllh, m=l,cn=h。输入a3n 、a2n 、a1n 、a0n 、b3n 、b2n 、b1n 、 b0n得到gn 、pn 、f0n 、f1n 、f2n 、f3n 、cn4。类似于正 操作数的74181,fn=an+bn,cn4的非为进位,gn 为进位 产生函数,pn 为进位传递函数。 2.2 8位先行加法器的设计 先行进位即高位进位和低位进位同时产生的进位。由于74181内部就是采取的先行进位,

因此,只需考虑两片74181之间的进位关系。 将操作数分成低4位和高4位,利用一片74181提供的低4位的进位传输输出pn 和进位

发生输出gn 来产生另一片的进位。则进位关系为: c’=gn+c·pn

式中,c ’对应高4位74181的初始进位,c 对应低4位74181的初始进位,gn 和pn 对

应低4位74181的相应引脚。结构框图如下: - 3 - 图 2 8位先行进位加法器

2.3 8位行波进位加法器的设计 行波进位也就是串行进位,每一位的进位都是由相邻的低位送来。实验中,采取用8个

一位全加器来实现。结构如图3所示: 图 3 8位行波进位加法器 可是,在元件库中没有一位全加器。那就需要先设计一个一位全加器。根据fa 的本位和

及进位表达式:

si = ai?bi?ci-1

ci+1=aibi+(bi+ai)ci-1 做出一位全加器的逻辑电路图,通过quartus ⅱ来生成元件,方便调用。 最后,将

8个fa 串行连接起来就成了8位行波进位加法器。 - 4 - 篇四:四位加法器实验报告 四位加法器实验报告

1.实验目的:

掌握组合逻辑电路的基本分析与设计方法; 理解半加器和全加器的工作原理并掌握利用全加器构成不同字长加法器的各种方法; 学

习元件例化的方式进行硬件电路设计; 学会利用软件仿真实现对数字电路的逻辑功能进行验证和分析。

2.实验仪器:

数字逻辑实验箱

3.实验内容:

a. 设计实现逐次进位加法器,进行软件仿真并在实验平台上测试。 b. 设计实现超前进位加法器,进行软件仿真并在实验平台上测试。 c.使用vhdl 自带加法运算实现一个4位全加器。

4.实验代码:

a. 逐次进位加法器: library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fdfa is

port(

a,b:in std_logic_vector(3 downto 0); ci:in std_logic;

s:out std_logic_vector(3 downto 0); co:out std_logic);

end entity; architecture struct of fdfa is port(

a,b,ci:in std_logic; s,co:out std_logic);

signal c0,c1,c2:std_logic; begin

u0:fadder port map(a(0),b(0),ci,s(0),c0); u1:fadder port map(a(1),b(1),c0,s(1),c1); u2:fadder port map(a(2),b(2),c1,s(2),c2); u3:fadder port map(a(3),b(3),c2,s(3),co); end architecture struct; #定义串行加法器总体接口 #基于一位全加器 library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fadder is

port(

a,b,ci:in std_logic; s,co:out std_logic);

end entity; architecture func of fadder is begin

co<=(a and b) or (ci and ( a xor b));

s<=a xor b xor ci;

end architecture func; b. 超前进位加法器: library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity lac is

port(

a,b:in std_logic_vector(3 downto 0); ci:in std_logic;

co:out std_logic;

s:out std_logic_vector(3 downto 0) );

end entity;

#定义一位全加器 #定义超前进位加法器总体接口 architecture struct of lac is signal wirep, wireg:std_logic_vector(3 downto 0); signal wirec:std_logic_vector(2 downto 0); port( ); ai,bi:in std_logic; c:in std_logic; si:out std_logic; pi:out

std_logic; gi:out std_logic #基于一位全加器 port( ); ci:in std_logic; p:in std_logic_vector(3 downto 0); g:in

std_logic_vector(3 downto 0); c:out std_logic_vector(3 downto 0) #ker总理进

位传递信号p 与进位产生信号g ,以及进位信号c begin u0:fadder port

map(ai=>a(0),bi=>b(0),c=>ci,si=>s(0),pi=>wirep(0),gi=>wireg(0)

); u1:fadder port

map(ai=>a(1),bi=>b(1),c=>wirec(0),si=>s(1),pi=>wirep(1),gi=>wi

reg(1)); u2:fadder port

map(ai=>a(2),bi=>b(2),c=>wirec(1),si=>s(2),pi=>wirep(2),gi=>wi

reg(2)); u3:fadder port

map(ai=>a(3),bi=>b(3),c=>wirec(2),si=>s(3),pi=>wirep(3),gi=>wi

reg(3)); l:ker port

map(ci=>ci,p(0)=>wirep(0),p(1)=>wirep(1),p(2)=>wirep(2),p(3)=>wir

ep(3),g(0)=>wireg(0),g(1)=>wireg(1),g(2)=>wireg(2),g(3)=>wireg(3),c(

0)=>wirec(0),c(1)=>wirec(1),c(2)=>wirec(2),c(3)=>co); end architecture struct; library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fadder is port( ai,bi:in std_logic; c:in std_logic;

si:out std_logic;

gi:out std_logic

);

end entity; architecture func of fadder is begin

pi<=ai xor bi;

gi<=ai and bi;

si<=ai xor bi xor c;

end architecture func; library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity ker is port( ci:in std_logic;

p:in std_logic_vector(3 downto 0); g:in std_logic_vector(3 downto 0); c:out

std_logic_vector(3 downto 0) ); #定义一位全加器 #定义ker 篇五:加法器的基本原理

实验报告

一、实验目的

1、了解加法器的基本原理。掌握组合逻辑电路在quartus ⅱ中的图形输入方法及文本

输入方法。

2、学习和掌握半加器、全加器的工作和设计原理

3、熟悉eda 工具quartus ii和modelsim 的使用,能够熟练运用vrilog hdl语言在

quartus ii下进行工程开发、调试和仿真。

4、掌握半加器设计方法

5、掌握全加器的工作原理和使用方法

二、实验内容

1、建立一个project 。

2、图形输入设计:要求用vhdl 结构描述的方法设计一个半加器

3、进行编译,修改错误。

4、建立一个波形文件。(根据真值表)

5、对该vhdl 程序进行功能仿真和时序仿真simulation

三、实验步骤

1、启动quartus ⅱ

2、建立新工程 new project

3、设定项目保存路径\项目名称\顶层实体名称

4、建立新文件 blok diagram/schematic file

5、保存文件 file /save

6、原理图设计输入

元件符号放置 通过edit_>symbol 插入元件或点击图标 元件复制

元件移动

元件转动

元件删除

元件之间连线(直接连接,引线连接)

7、保存原理图

8 、编译: 顶层文件设置,project_>set as top_level 编译有两种:全编译包括分析与综合(analysis&synthesis)、适配(fitter)、编程

(assembler )时序分析(classical timing analysis)4个环节,而这4个环节各自对应

相应菜单命令,可单独发布执行也可以分步执行 9 、逻辑符号生成 file\creat/_update_>create symbol file forcurrent file 10 、仿真

建立仿真wenjian

添加需要的输入输出管脚 设置仿真时间

设置栅格的大小

设置输入信号的波形

保存文件,仿真

功能仿真:主要检查逻辑功能是否正确,功能仿真方法如下: 1tool/simulator tool,在simulator mode下选择 functional,在simulation input

栏中指定波形激励文件,单击gencrator functional simulator netist,生成功能仿真网表

文件。

四、实验现象

任务1 : 逻辑符号生成 任务2:采用基本逻辑门电路设计,异或设计半加器 任务3、全加器设计

逻辑符号: 原理图: 结果: 任务4、用半加器,设计全加器

五、实验体会

通过这次实验,初步熟悉了vhdl 语言的原理图设计输入。


相关内容

  • 交通灯控制器课程设计实验报告
    2011级课程设计实验报告 交 通 灯 控 制 器 专业年级: 2011级通信工程一班 姓 名: 谢仙 学 号: 20114505 指导教师: 杨菊秋 院(系): 计算机与信息工程学院 2013年06月25日 目 录 1 引言------- ...
  • [设计一个四位可逆二进制计数器]的实验报告
    实验七 设计一个四位可逆二进制计数器 一.实验目的 掌握中规模集成计数器的使用方法及功能测试方法. 二.实验内容及要求 用D 触发器设计一个异步四位二进制可逆计数器. 三.设计过程 (1)根据题意列出加计数状态表和驱动表,如下表所示. (2 ...
  • 电路与电子技术试题
    电路与电子技术复习提纲(与部分思考题) 要求学生能熟练使用示波器观测被测点波形,并定量读取波形幅值与周期,熟练使用数字.模拟电路实验装置.电工台实验装置.信号发生器.交流毫伏表.数字万用表,要求能自行检测电路出现的故障(如导线通断检查.芯片 ...
  • 四人抢答器电路设计1
    广东石油化工学院 课程设计说明书 课程名称: 数字电子技术课程设计 题 目: 抢答器电路设计 学生姓名: 专 业: 班 级: 学 号: 指导教师: 李新超 日 期: 2010 年 6 月 30日 茂 名 学 院 课 程 设 计 任 务 书 ...
  • 傅立叶分析
    脉搏.语音及图像信号的傅里叶分析 一.实验简介 任何波形的周期信号均可用傅里叶级数来表示.傅里叶级数的各项代表了不同频率的正弦或余弦信号,即任何波形的周期信号都可以看作是这些信号(谐波)的叠加.利用不同的方法,可以从周期信号中分解出它的各次 ...
  • 实验十一 同步计数器的逻辑功能测试及应用
    实验十一 计数器74LS161的逻辑功能测试及应用 一. 实验目的 1.熟悉集成计数器触的逻辑功能和各控制端作用. 2.掌握集成计数器逻辑功能测试方法. 3.掌握计数器使用方法. 二. 实验设备与器件 1.实验设备:DLBS 系列数字逻辑实 ...
  • 人教版小学四年级数学下册教学计划
    人教版小学四年级数学下册教学计划 一. 教学内容和教学目标 本册教材包括下面一些内容:小数的意义与性质,小数的加法和减法,四则运算,运算定律与简便计算,三角形,位置与方向,折线统计图,数学广角和数学综合运用活动等. 小数的意义与性质,小数的 ...
  • 五年级下册数学[分数的加减法]练习题(1)
    异分母分数强化训练 一.异分母分数加减法计算题,能简算的必须简算. 127531 8+15+8 6+4-3 11 - ( 1 + 1 ) 1268 11- 73731133- - ( - ) - ) [1**********] 411329 ...
  • 加法的初步认识 说课稿(例稿)
    分层递进,高效课堂 <加法的初步认识> 说课稿 尊敬的各位评委,大家好,我是7号选手,今天我说课的内容是<加法的初步认识>,这是全日制聋校实验教材数学第一册第一单元的内容.下面我从教材.教法学法.教学程序.板书设计等 ...