8位加法器电路设计全加器设计word格式word格式

合集下载

8位全加器设计

8位全加器设计

实验报告
系别电子信息工程系课程名称《EDA技术及其应用》实验
班级1班实验名称8位全加器设计
姓名×××实验时间××××年××月××日
学号××××××××指导教师×××
报告内容
一、实验目的和任务
学习使用QuartusⅡ9.0软件,熟悉EDA设计流程。

学习用图形输入法设计八位全加器,并对其进行分析和测试。

二、实验原理介绍
学习用四位全加器设计八位全加器,第1片74283(四位全加器)的进位输出信号应该和第2片74283的进位输入信号相连。

三、设计代码、仿真波形及分析
任务1:学习使用QuartusⅡ软件,熟悉EDA设计流程(主要为软件设计部分)。

步骤:
编辑输入图形、编译设计文件、仿真设计文件
仿真波形如下图所示:
任务2:硬件验证8位全加器的功能。

步骤:
引脚锁定、编译、下载、硬件测试
可选实验电路模式1;
键2、键1和键3、4分别负责输入两个加数A和B;且能在数码管1、2和3、4上显示;两个加数的和在数码管5、6显示;发光管D1显示进位输出。

编译下载后进行硬件测试;
实验室演示
四、实验结论与心得。

8位加法器设计

8位加法器设计

目录第1章概述 (1)第2章设计总体思路 (3)第3章单元电路设计 (5)3.1 八位二进制加法器 (5)3.2 译码显示电路 (8)第4章波形仿真结果分析 (11)第5章安装调试步骤 (12)第6章故障分析与改进 (13)第7章心得体会 (14)参考文献 (15)附录:整体电路图 (16)第1章概述随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。

随着技术市场与人才市场对EDA的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。

因此学好EDA技术对我们有很大的益处。

EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

VHDL系统优势:(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。

强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。

(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。

8位串行全加器设计

8位串行全加器设计

8位串行全加器设计一.实验目的1.掌握ISE开发工具的使用,掌握FPGA开发的基本步骤;2.掌握8位串行全加器电路设计的一般办法;3.掌握程序下载的办法;4.初步了解开发板资源,掌握开发板的使用方法,重点掌握按键,开关,LCD,LED的使用方法。

二.实验内容1.用VHDL实现8位串行全加器8位串行全加器顶层模块电路如下图所示。

图 8位串行全加器顶层模块其中a_in,b_in:数据输入,使用板上开关(S0~S15);sum_out:运算结果输出,使用LED显示运算结果。

2.将程序下载到FPGA并进行检验资源使用要求用开关(S0~S15)输入加数,被加数。

用 LED(D8~D15)显示运算结果。

三.实验步骤1.启动ISE,新建工程文件;2.编写8位串行全加器模块Hadder,其原理图如上图所示。

3.编写完加法器模块之后,在顶层文件上实现映射;4.新建UCF文件,输入位置约束;5.完成综合,实现,生成下载文件;6.连接开发板USB下载线,开启开发板电源;7.下载FPGA;8.输入数据,验证结果。

四.关键代码entity add_one isPort ( a_in : in STD_LOGIC;b_in : in STD_LOGIC;cin : in STD_LOGIC;si : out STD_LOGIC;cout : out STD_LOGIC);end add_one;architecture Behavioral of add_one isbeginsi<=(a_in xor b_in)xor cin;cout<=(a_in and b_in)or(cin and a_in)or(cin and b_in); end Behavioral;-- 一位加entity add_eight isPort ( a : in STD_LOGIC_VECTOR (7 downto 0);b : in STD_LOGIC_VECTOR (7 downto 0);sum : out STD_LOGIC_VECTOR (7 downto 0);c_out :out STD_LOGIC);end add_eight;architecture Behavioral of add_eight is component add_oneport( a_in,b_in,cin:in STD_LOGIC;si,cout:out STD_LOGIC);end component;signal c: STD_LOGIC_VECTOR (7 downto 0);signal c_in:STD_LOGIC:='0';beginu0: add_one port map(a(0),b(0),c_in,sum(0),c(0)); u1: add_one port map(a(1),b(1),c(0),sum(1),c(1)); u2: add_one port map(a(2),b(2),c(1),sum(2),c(2)); u3: add_one port map(a(3),b(3),c(2),sum(3),c(3)); u4: add_one port map(a(4),b(4),c(3),sum(4),c(4)); u5: add_one port map(a(5),b(5),c(4),sum(5),c(5)); u6: add_one port map(a(6),b(6),c(5),sum(6),c(6)); u7: add_one port map(a(7),b(7),c(6),sum(7),c_out); end Behavioral;--八位加。

EDA技术实用教程 设计8位全加器

EDA技术实用教程  设计8位全加器
Q<=Q+1;
END IF;
END PROCESS;
END BHV;
4. h_adder
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY h_adder IS
PORT ( a , b : IN STD_LOGIC ;
co, so : OUT STD_LOGIC );
component or2a
PORT ( a , b : IN STD_LOGIC ;
c : OUT STDຫໍສະໝຸດ LOGIC );END component ;
component CNT4
PORT ( CLK : IN BIT ;
Q : BUFFER INTEGER RANGE 7 DOWNTO 0);
END component ;
signal d,e,f : std_logic;
begin
u1:h_adder port map (a=>ain, b=>bin, co=>d,so=>e);
u2:h_adder port map (a=>e, b=>cin, co=>f,so=>sum);
u3:or2aport map (a=>d, b=>f, c=>cout);
ENTITY E_adder IS
PORT ( CLK1,LOAD1: IN STD_LOGIC ;
A :IN STD_LOGIC_VECTOR(7 DOWNTO 0):="00000000";
B :IN STD_LOGIC_VECTOR(7 DOWNTO 0);
COUNTOUT,E : OUT STD_LOGIC );

实验六 8位全加器的设计

实验六 8位全加器的设计

实验六8位全加器的设计实验报告一、实验要求1、GW48实验箱;2、用原理图输入方式设计8位全加器,并进行编译、仿真、下载;3、总结实验步骤和实验结果。

二、实验内容1、本设计中的8位二进制并行加法器即是由两个4位二进制并行加法器级联而成的,其电路原理图如图所示2、完成4位全加器ADDER4B的设计,并将此全加器电路设置成一个硬件符号入库。

建立一个更高的原理图设计层次,可以取名为ADDER8B。

利用以上获得的4位全加器构成8位全加器,并完成编译,仿真和硬件测试。

3、硬件逻辑验证:选择实验电路结构图NO.1和上图确定引脚的锁定。

如可取实验电路结构图的PIO3~PIO0接A[3..0],PIO7~PIO4接A[7..4],PIO11~PIO8接B[3..0],PIO15~PIO12接B[7..4],PIO49接CIN。

此加法器的被加数A和加数B分别由键2与键1、键4与键3输入,加法器的最低位进位CIN由键8输入,计算和S将分别通过PIO23~PIO20,PIO19~PIO16输出并显示于数码管6(高四位)和数码管5(低四位),溢出进位COUT由PIO39输出,当有进位时,结果显示于发光管D8上。

参考源程序:4位二进制并行加法器的源程序ADDER4Bmodule ADDER4B(A,B,CIN,S,CONT);output [3:0]S;output CONT;input [3:0]A,B;input CIN;assign {CONT, S}=A+B+CIN;endmodule三、实验步骤1、创建文件Max-plus->text editor源代码2、创建缺省符号(Creat Default Symbol)然后添加到框图中:3、连线并标注接口4、编译5、仿真6、下载1)引脚锁定2)开始下载四、实验结果选择实验电路结构图NO.1,此加法器的被加数A和加数B分别由键2与键1、键4与键3输入,加法器的最低位进位CIN由键8输入,当有进位时,结果显示于发光管D8上。

八位全加器原理图设计实验报告

八位全加器原理图设计实验报告

南通大学计算机科学与技术学院课程实验报告
课程名称:计算机组成原理年级:2012级上机日期:11月6日姓名:学号:班级:信管122
实验名称:八位全加器设计教师:陈越成绩:
上图为n个1位的全加器FA级联成的n位的行波进位加减器。

M为方式控制输入线,当M=0时,做加法运算;当M=1时,做减法运算。

图中左边还表示出单符号位法的溢出检测逻辑:当C n=C n-1时,运算无溢出;而当C n≠C n-1时,运算有溢出,经异或门产生溢出信号,0无溢出,1表示溢出。

四、内容及步骤(包括程序流程及说明)
1.建立add8项目
2.建立一位全加器原理图,输入如下
3.将一位全加器封装成芯片FA,如图
4.将FA级联成8位全加器如图,至此8位全加器原理图设计完毕
四、运行结果
建立波形文件,验证8位全加器。

8位全加器

目录一、设计目的和要求 (1)1.课程设计目的 (1)2.课程设计的基本要求 (1)3.课程设计类型 (1)二、仪器和设备 (1)三、设计过程 (1)1.设计内容和要求 (1)2.设计方法和开发步骤 (2)3.设计思路 (2)4.设计难点 (4)四、设计结果与分析 (4)1.思路问题以及测试结果失败分析 (4)2.程序简要说明 (5)五、心得体会 (9)六、参考文献 (9)一、设计目的和要求1.课程设计目的设计一个带进位的八位二进制加法计数器:要求在MAX+plusⅡ10.2软件的工作平台上用VHDL语言层次设计出一个带进位的八位二进制加法器,并通过编译及时序仿真检查设计结果。

2.课程设计的基本要求全加器与带进位输入8位加法器设计要求我们通过8位全加器的设计掌握层次化设计的方法,充分理解全加器的设计过程,掌握一位全加器的程序,熟悉MAX+plusⅡ10.2软件的文本和原理图输入方法设计简单组合电路。

课程设计过程中要求能实现同步和异步的八位二进制全加器的设计。

3.课程设计类型EDA课程设计二、仪器和设备PC机、MAX+plusⅡ10.2软件三、设计过程1.设计内容和要求方法一:1.原理图输入完成半加器和1位全加器的设计,并封装入库2.层次化设计,建立顶层文件,由8个1位全加器串联构成8位全加器3.每一层次均需进行编译、综合、适配及仿真方法二:1. 原理图输入完成一个四位全加器的设计2.层次化设计,建立顶层文件,由2个4位全加器串联构成8位全加器3.每一层次均需进行编译、综合、适配及仿真2.设计方法和开发步骤加法器是数字系统中的基本逻辑器件。

例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。

但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面的问题。

多位加法器的构成有两种方式:并行进位和串行进位方式。

并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。

原题目:构建一个8位加法器电路。

原题目:构建一个8位加法器电路。

原题目:构建一个8位加法器电路
介绍
本文档将介绍如何构建一个8位加法器电路。

该电路可以用来
对两个8位二进制数进行加法运算。

所需材料
- 8个全加器芯片
- 连接线
- 电源
步骤
1. 首先,将8个全加器芯片连接在一起。

每个全加器芯片有三
个输入端(A,B,Carry In)和两个输出端(Sum,Carry Out)。

2. 将第一个全加器的A端连接到第一个输入二进制数的最低位,将B端连接到第二个输入二进制数的最低位。

3. 将第一个全加器的Carry In端连接到电源的地线。

4. 将第一个全加器的Sum端连接到输出线,用于输出加法结果的最低位。

5. 将第一个全加器的Carry Out端连接到第二个全加器的Carry In端。

6. 将第二个全加器的A端连接到第一个全加器的Sum端,将B端连接到第三个输入二进制数的最低位。

7. 将第二个全加器的Sum端连接到输出线,用于输出加法结果的次低位。

8. 将第二个全加器的Carry Out端连接到第三个全加器的Carry In端。

9. 重复以上步骤,将所有的全加器连接在一起,直到连接完所有的位。

10. 最后一个全加器的Sum端将是输出加法结果的最高位。

结论
通过按照上述步骤构建电路,我们可以实现一个8位加法器电路,用于对两个8位二进制数进行加法运算。

8位串行全加器设计

8位串行全加器设计串行全加器是一种基本的数字电路,用于实现两个二进制数的加法运算。

它可以将两个数位相同的二进制数相加,并将其和以及进位输出。

本文将详细介绍如何设计一个8位串行全加器。

首先,我们需要了解全加器的功能。

全加器由两个输入和两个输出组成。

输入包括两个要相加的二进制数位以及前一位的进位(Carry In),输出包括当前位的和(Sum)和当前位的进位(Carry Out)。

设计一个8位串行全加器时,我们需要将8个全加器连接在一起。

每个全加器的输入为两个二进制数位和前一位的进位,输出为当前位的和和当前位的进位。

具体设计步骤如下:1.首先,我们需要设计一个单个全加器电路。

全加器电路可以通过将两个半加器连在一起来实现。

半加器接收两个输入,并输出当前位的和和当前位的进位。

2.设计一个半加器电路。

半加器电路由两个输入和两个输出组成。

输入包括两个要相加的二进制数位,输出包括当前位的和和当前位的进位。

3.实现半加器电路的真值表。

半加器的真值表如下:输入A,输入B,输出S,进位--------,--------,--------,-------0,0,0,0,1,1,1,0,1,1,1,0,根据真值表可知,半加器的和输出为输入A和输入B的异或运算结果,进位输出为输入A和输入B的与运算结果。

4.通过使用逻辑门来实现半加器电路。

可以使用异或门实现和输出,使用与门实现进位输出。

5.设计一个完整的全加器电路。

一个全加器电路由一个半加器和一个或门构成。

半加器负责计算两个输入位的和和进位,而或门负责计算前一位的进位和当前位的进位的和。

全加器电路的输入为两个要相加的二进制数位和前一位的进位,输出为当前位的和和当前位的进位。

6.将8个全加器连在一起。

将第一个全加器的输入连接到待相加的两个8位二进制数的最低位和前一位的进位,将第二个全加器的输入连接到待相加的两个8位二进制数的次低位和第一个全加器的进位,以此类推。

最后一个全加器的输出即为所求的和。

8位全加器的设计

二、实验原理:一个8位全加器可以由2个4位全加器构成,加法器间的进位可以用串行方式实现,即将低位加法器的进位输出与相临的高位加法器的低进位输入信号相接。

4位全加器采用VHDL语言输入方式进行设计,将设计的4位全加器变成一个元件符号,在8位全加器的设计中进行调用。

三、实验内容和步骤:1. 采用VHDL语言输入方式设计4位全加器(1)打开QuartusII,执行File|New,在New窗口中的Device Design Files 中选择VHDL Files,然后在VHDL文本编译窗中输入程序。

执行File|Save As,找到已设立的文件夹,存盘文件名应该与实体名一致。

(2)将设计项目设置成可调用的元件选择File→create/update→create symbol Files for current file命令,将转换好的元件存在当前工程的路径文件夹中。

2.采用原理图输入方式设计8位全加器(1)打开QuartusII,执行File|New,选择block diagram/schematic file,在原理图编辑窗口中连接好8位全加器电路图(注意元件的调用),存盘。

(2)创建工程:执行File|New Project Wizard,选择目标芯片。

(3)编译:执行Processing|Start Compilation命令,进行编译。

(4)引脚锁定:在菜单Assignments中选Assignments Editor按钮,先单击右上方的Pin,再双击下方最左栏的“New”选项,弹出信号名栏,锁定所有引脚,进行编译,存盘。

选择编程模式1,键2、键1输入8位加数,键4、键3输入8位被加数,键8输入进位cin,数码管6/5显示和,D8显示进位cout。

5. 编程下载及验证:执行Tool|Programmer命令,选择program/config;执行start,进行验证,记录结果。

4位全加器的参考源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder4b ISPORT(cin:IN STD_LOGIC;a,b:IN STD_LOGIC_VECTOR(3 DOWNTO 0);s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);cout:OUT STD_LOGIC);END ENTITY adder4b;ARCHITECTURE art OF adder4b ISSIGNAL sint,aa,bb:STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINaa<='0'&a;bb<='0'&b;sint<=aa+bb+cin;s<=sint(3 downto 0);cout<=sint(4);END art;触发器功能的模拟实现三、实验内容:基本RS触发器、同步RS触发器、集成JK触发器和D触发器同时集成在一个芯片上,实现的原理图如下:输入信号Sd、Rd对应的管脚接按键开关,CLK1、CLK2接时钟源(频率<5Hz);J,K,D,R,S对应的管脚分别接拨码开关;输出信号QRS,NQRS,QRSC,NQRSC,QJK,NQJK,QD,NQD对应管脚分别接LED灯。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

项目四8位加法器电路设计
1.实训目标
1)通过8位加法器的设计,掌握组合逻辑电路的设计方法。

2)分别使用原理图和文字编辑的方法实现8位加法器的设计,通过电路的仿真和硬件
验证,进一步掌握原理图设计与文本设计的过程。

2.实训步骤
1)采用原理图编辑法,采用Altera MAX+PLUS II的MF函数里面调用8位全加器宏函
数8fadd实现电路设计。

编程器件型号选择ACE1k系列的EP1K30TC144-3。

完成项目编辑及功能仿真。

2)采用文本编辑法,即利用VHDL语言描述8位加法器,4位加法器的参考代码如下。

然后对其进行编译,编程器件型号选择ACE1k系列的EP1K30TC144-3,完成程序仿真,记录仿真数据。

3)由两个并行的4位加法器级联而成。

选用原理图编辑发或者文本编辑法实现8位全
加器电路。

并通过仿真验证。

3.实训数据1)原理图编辑法设计的8位加法器的电路。

2)原理图编辑法仿真结果。

简述仿真波形的意义。

A[8..1]B[8..1]—输出端Cout—进位端
3)步骤2、步骤3选做一种,记录电路图或程序。

library ieee;
use adder8bit is
port(cin:in std_logic;
a,b:in std_logic_vector(7 downto 0);
s:out std_logic_vector(7 downto 0);
cout:out std_logic);
end adder8bit;
architecture beh of adder8bit is
signal sint:std_logic_vector(8 downto 0);
signal aa,bb:std_logic_vector(8 downto 0);
begin
aa<='0'&a(7 downto 0);--
bb<='0'&b(7 downto 0);
sint<=aa+bb+cin;
s(7 downto 0)<=sint(7 downto 0);
cout<=sint(8);
end beh;
4)对设计的8位全加器进行仿真验证,记录仿真结果。

简述仿真波形的意义
4、思考题
根据步骤2中4位加法器的参考程序,设计一个4位减法器,并记录其仿真数据。

程序:
library ieee;
use psubadd4 is
port(cin:in std_logic;
a,b:in std_logic_vector(3 downto 0);
s:out std_logic_vector(3 downto 0);
cout:out std_logic);
end ;
architecture beh of psubadd4 is
signal sint:std_logic_vector(4 downto 0);
signal aa,bb:std_logic_vector(4 downto 0);
begin
aa<='0'&a(3 downto 0);
bb<='0'&b(3 downto 0);
sint<=cin+aa-bb;
s(3 downto 0)<=sint(3 downto 0);
cout<=sint(4);
end beh;
仿真数据:
本文来自网络,版权归原作者所有,请下载后,尽快删除。

相关文档
最新文档