16位全加器

16位全加器
16位全加器

四川理工大学

课程设计任务书设计题目:采用门电路设计一个16位的全加器电路

院系:计算机学院

专业:计算机科学与技术

班级:2008级6班

指导教师:朱文忠

学生姓名:赵******************

目录:

一引言 (1)

1.1 设计背景 (1)

1.2 设计分工 (1)

二设计目的 (2)

2.1 设计目的 (2)

2.2 设计内容 (2)

三设计过程 (2)

3.1 硬件方案 (2)

3.1.1 一位全加器的原理及设计 (2)

3.1.2 四位全加器的原理及设计 (4)

3.1.3 十六位全加器的原理及设计 (7)

3.2 软件方案 (9)

3.3 可行性论证 (13)

3.4 结论 (15)

四参考文献 (16)

引言

1. 设计背景

随着计算机科学技术的发展,人们获得信息的途径更加多样,获取信息的速度更加快捷。硬件的发展允许程序员编出很多精彩的使用软件,也使得计算机更加普及。中央处理器CP U的好坏是影响和制约计算机速度和性能的关键因素。而加法器是组成C PU的的重要部件,一般运算速度的快慢就取决与每秒执行加法的次数,加法器是算术逻辑单元中的基本逻辑器件。例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面的问题。

多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。并行进位的并行加法器又可以分为组内并行、组间串行的进位链和组内并行、组间并行的进位链。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。它们的目的就是要进位信号的产生尽可能的快,因此产生了二重进位链或更高重进位链,显然进位速度的提高是以硬件设计的复杂化为代价来实现的。

2. 设计分工

赵**(081010*****):硬件方案、排版

吴**(081010*****):可行性论证、结论

王**(081010*****):软件方案、找资料

设计目的

1.设计目的

(1)掌握1位全加器的形成;

(2)掌握4位片SN74LS181的原理;

(3)用4片SN74LS181以并/串形成16位字长的ALU;

(4)形成16位运算器数据通路结构;

(5)将设计结果下载到实验板上,进行验证。

2.设计内容

了解计算机的硬件系统,了解一位全加器的组成原理,深入讨论计算机的组成原理,在熟悉常用的门电路的组成和工作过程的基础上,要求设计出一个16位的全加器。其中要求设计并写出产生求和结果的逻辑表达式,需要写出利用快速进位链产生进位的逻辑表达式,同时还要实现时需要用一个时钟信号控制运算的执行,如第一拍给出输入数据,第二拍给出运算控制信号,第三拍送输出数据,然后又回到第一拍,循环往复,直到运算全部结束。

根据要求设计出针对具体指令所对应的流程图;根据流程及门电路设计出相应的全加器。编写出VHDL程序,在仿真软件上运行并检验所设计的微程序的正确性。

设计过程

1.硬件方案

1.1 一位全加器的原理及设计

1.1.1 一位全加器的原理

全加器是实现两个一位二进制数及低位来的进位数相加即将三个一位二进制数相加,求得和数及向高位进位的逻辑电路。

全加器是组合逻辑电路中最常见也最实用的一种,考虑低位进位的加法运算就是全加运算,实现全加运算的电路称为全加器。它主要实现加法的运算,其中分为并行全加器和串行全加器,所谓并行就是指向高位进位时是并行执行的,而串行就是从低位到高位按顺序执行,为了提高运算,必须设法减小或消除由于进位信号逐级传递所消耗的时间,为了提高运算速度,制成了超前进位加法器,这是对全加器的一种创新。

1.1.2 一位全加器的设计

要使全加器进行加法运算,也需要用各种门电路设计出相应的逻辑电路,根据组合逻辑电路设计的步骤,我们先设计一位全加器的设计。

(1)根据全加器所需要的功能,我们可以设计出一位全加器的组合逻辑框图。如图3.1所示。

图3.1 一位全加器的逻辑结构

(2)根据逻辑图我们可以写出各个器件的逻辑功能。

C i = X i Y i C i-1+X i Y i C i-1+X i Y i C i-1+X i Y i C i-1 = (X i ○+Y i)C i-1+X i Y i

F i = X i Y i C i-1 + X i Y i C i-1 +X i Y i C i-1 + X i Y i C i-1 = X i○+Y i○+C i-1

(3)由上面可得。X i和Y i为两个输入的一位二进制书,C i-1为

低位二进制数相加的进位输出到本位的输入,则F i为本位二进制

数X i、Y i和低位进位输入C i-1的相加之和,C i为X i、Y i和低位进

位输入C i-1相加向高位的进位输出。因此,该电路可以完成一位二

进制数全加的功能,称为全加器。此电路的真值表如表3-1所示。

表3-1一位全加器真值表

X i Y i C i-1F i C i

0 0 0 0 0

0 1 0 1 0

1 0 0 1 0

1 1 0 0 1

0 0 1 1 0

0 1 1 0 1

1 0 1 0 1

1 1 1 1 1

1.2 四位全加器的原理及设计

1.2.1 四位全加器的工作原理

加法器是数字系统中的基本逻辑器件。例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面的问题。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。

四位全加器可对两个多位二进制数进行加法运算,同时产生进位。当两个二进制数相加时,较高高位相加时必须加入较低位的进位项(Ci),以得到输出为和(S)和进位(C0)。

1.2.2 四位全加器的设计

设计四位全加器有两种方案,一种利用串行进位方式设计,另一种是利用并行进位方式进行设计。但是这两种方式设计的电路的工作效率是恨不一样的,串行进位是需要等待低位计算的所得的进位后才能进行高位的运算的,而并行进位也就是先进位方式,每个进位只需要经历一个与非门和一个与或门的延时,这样和串行进位相比,大大提高了运算速度。所以我们这里选择先进位全加器。

四位先行进位全加器的真值表如表3-2所示。表中的C0 为低位向高位的进位,P1 ~P4 以及G1~G4 为输入端,C1~C4 为输出端。

表3-2 四位先行进位全加器真值表

C0P1G1P2G2P3G3P4G4C1C2C3C4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 0

0 1 1 1 1 1 1 1 1 1 1 1 1

1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1

1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

四位加法器可以采用四个一位全加器级连成串行进位加法器,如图3.2所示,其中CSA为一位全加器。

图3.2 四位先行进位加法器逻辑结构

如图3.3 所示,四位先行进位全加器各个进位信号的产生只需要经历一级与非门和一级与或非门的延迟时间,所以比逐位进位全加器大大缩短了时间。

图3.3 四位先行进位加法器原理

1.3 十六位全加器的原理及设计

1.3.1 十六位全加器的原理

16位全加器设计的基本思想,就是仿照通常的解组合逻辑电路的方法,先把原理图画出来,然后通过原理图把各个信号量描述出来,最后再根据各个器件的逻辑功能列出真值表。当全加器工作时,先一个一个二进制数全部按位输入,从而在4位先行进位的加法器中进行运算,使相应部件执行所规定的操作。

1.3.2十六位全加器的设计

设计16位全加器,这里使用的方法是把4个四位全加器串联起来。16位全加器主要由输入、输出、进位和4位先行进位的加法器这四部分组成,其原理如图3.4所示。

图3.4 十六位全加器组成原理图

16位全加器总共有16位输入,而每四位为一组输入到4位先行进位加法器中进行加法运算,一般输入是两位二进制数,如图是:Y4-1 X4-1 一直到Y16-13 X16-13 为输入;输出为F,共16位输出,而和输出一样四位为一组一起经过运算后输出,不同的是输入有两个二进制数,而输出只有一个二进制数;C表示进位,C0初始值为1,后面的C4,C8,C12,C16分别是每个四位加法器运算后的进位。

2. 软件方案

用VHDL编写代码验证:

在对真值表进行分析和各个功能设计完成之后,就可以使用VHDL编写程序,运用MAX-PLUSⅡ进行模拟仿真,以验证其正确性。如下就是四位先行进位全加器和16位全加器的VHDL代码。

//导入各种所需要的库

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

-- Uncomment the following lines to use the declarations that are

-- provided for instantiating Xilinx primitive components.

--library UNISIM;

--use UNISIM.VComponents.all;

entity test is

port(

a,b:in std_logic_vector(3 downto 0); //a,b为输入,为4位标准逻辑矢量类型

cin:in std_logic; //cin为输入,为标准矢量类型s:out std_logic_vector(3 downto 0); //s为输出,为4位标准逻辑矢量类型

cout:out std_logic); //cout为输出,为标准矢量类型end test;

architecture Behavioral of test is

signal d,t:std_logic_vector(3 downto 0); //信号量d,t为4位标准逻辑矢量

signal c:std_logic_vector(4 downto 0); //信号量c为5位标准逻辑矢量

begin

as_add: for i in 0 to 3 generate //i从0循环到3,循环4次

d(i)<=a(i) and b(i); //把a,b相与的结果赋给d t(i)<=a(i) or b(i); //把a,b相或的结果赋给t

s(i)<=a(i) xor b(i) xor c(i); //把a,b,c进行异或的结果赋给s

end generate;

//以下为赋值语句

c(0)<=cin;

c(1)<=d(0) or (t(0) and c(0));

c(2)<=d(1) or (t(1) and d(0)) or (t(1) and t(0) and c(0));

c(3)<=d(2) or (t(2) and d(1)) or (t(1) and t(2) and d(0)) or (t(1) and t(2) and t(0) and c(0)) ;

c(4)<=d(3) or (t(3) and d(2)) or (t(3) and t(2) and d(1)) or (t(1) and t(2) and t(3) and d(0)) or (t(3) and t(2) and t(1) and t(0) and c(0));

cout<=c(4);

end Behavioral;

如下是16位全加器的VHDL代码。

library IEEE;

use IEEE.std_logic_1164.all; //导入各种需要的库

entity adder16 is

generic(n : integer := 16);

port (a : in std_logic_vector(16 downto 1); //a为16位标准逻辑矢量类型的输入

b : in std_logic_vector(16 downto 1); //b为16位标准逻辑矢量类型的输入

cin : in std_logic; //c为标准逻辑类型的输入

sum : out std_logic_vector(16 downto 1); //sum 为16位标准逻辑矢量类型的输入

cout : out std_logic);

end adder16;

-- structural implementation of the 16-bit adder

architecture structural of adder16 is

component adder

//以下a,b,cin,sum,cout都为标准逻辑类型,其中a,b,cin为输入,sum,cout为输出

port (a : in std_logic;

b : in std_logic;

cin : in std_logic;

sum : out std_logic;

cout : out std_logic);

end component;

signal carry : std_logic_vector(0 to 16);

begin

carry(0) <= cin; //把信号量cin 的值赋给carry(0) cout <= carry(16); //把信号量carry(16)的值赋给cout

-- instantiate a single-bit adder 16 times

gen: for I in 1 to 16 generate //I从1循环至16,循环16次

add: adder port map(

//以下为赋值语句

a => a(I),

b => b(I),

cin => carry(I - 1),

sum => sum(I),

cout => carry(I));

end generate;

end structural;

-- behavioral implementation of the 16-bit adder

architecture behavioral of adder16 is //定义结构体begin

p1: process(a, b, cin) //过程开始

variable vsum : std_logic_vector(16 downto 1);

variable carry : std_logic;

begin

carry := cin;

for i in 1 to 16 loop //I从1循环至16,循环16次vsum(i) := (a(i) xor b(i)) xor carry; //变量vsum(i)的赋值

carry := (a(i) and b(i)) or (carry and (a(i) or b(i))); //变量carry的赋值

end loop;

sum <= vsum; //把vsum赋给信号量sum

cout <= carry; //把carry赋给信号量cout

end process p1; //进程结束

end behavioral;

3.可行性论证

根据4位先行进位全加器VHDL的代码,用MAX-PLUSⅡ进行模拟,得到仿真图,如图3.5所示。

图3.5 四位先行进位全加器仿真图

根据表3-2和图3.5,可以进行分析四位先行进位全加器的正

确性,用表中的数据和图中所表示出来的数据段进行对比分析,如图3.5,第一行为cin的输入值,对应表中的C0 ;第二行为cout 进位信号量的输出;第三行是a的输入值,对应表中的G i ;第四行为b的输入值,对应表中的P i;第五行为s的输出值,对应表中的C i 。由分析可得,四位先行进位全加器的设计和仿真以及真值表的建立的过程都是正确的。

根据十六位全加器的VHDL代码,用MAX-PLUSⅡ进行模拟,得到仿真图,如图3.6所示。

图3.6 十六位全加器仿真图

图3.6中,第一行cin为信号量初试值,第二行cout为信号量进位的输出,第三行和第四行中的a和b都为输入,第五行sum 为16位的结果输出,从图中分析可得,十六位全加器的设计是正确的,能准确的执行十六位二进制数的加法运算。

总结

这次计算机组成原理课程设计,我们设计的是采用门电路设计一个16位的全加器电路,才开始感觉难度相当的大,因为当中要设计到许许多多的知识,包括数字电路,计算机组成原理,VHDL 硬件描述语言等等,这些课我们三个人学得都不是怎么好,尤其是VHDL硬件描述语言,这是我们这几天才刚学习的一门知识,在还没有这个课程设计之前,我们都还不知道这是什么,所以花的大量的时间去查资料,先设计一位全加器,再设计四位全加器,最后再设计十六位全加器,在每一个环节,我们都碰到了许多难题,然后又带着这些问题去查找资料,问老师同学,才能得到解决,最后通过接近一周的时间才完成这个课程设计,由于时间有限,水平也有限,所以当中难免会有许多不当之处。

通过本次课程设计对十六位全加器的设计,确实积累和总结了不少的经验,锻炼了我们的独立和合作工作,也锻炼了实际动手能力,加深了对计算机中的全加器工作原理的认识,提高了对复杂的综合性实践环节具有分析问题、解决问题、概括总结的实际工作能力,对涉及全加器项目的开发、设计过程有初步认识。

这也让我们真正的理解到,理论与实践之间还是有很大的距离,这会让我们在以后的学习中,会更加注意理论与实践的有机结合。

参考文献

[1] 陈书开、王毅等.计算机组成与系统结构[M]. 武汉:武汉大学出版社,2006

[2] 王炜、李清宝、赵秋霞. 计算机组成原理与设计[M].北京:科学出版社,2006.6

[3] 张庸一. 计算机组成原理实验及课程设计指导[M].重庆:重庆

大学出版社,2001.3

[4] 王毓银、陈鸽、杨静、赵亦松.数字电路逻辑设计. 北京:高等教育出版社,2006

[5]贾金铃、田永红、陈光建,计算机组成原理. 重庆:重庆大学出版社,2010.2

[6]侯伯亨,顾新. VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,1998.5

FPGA4位全加器的设计

目录 一、设计原理 (2) 二、设计目的 (3) 三、设计容 (3) 四、设计步骤 (3) 五、总结与体会 (7)

4位全加器设计报告 一、设计原理 全加器是指能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位。 4位加法器可以采用4个以为全加器级连成串行进位加法器,如下图所示,其中CSA为一位全加器。显然,对于这种方式,因高位运算必须要等低位进位来到后才能进行,因此它的延迟非常可观,高速运算无法胜任。 A和B为加法器的输入位串,对于4位加法器其位宽为4位,S为加法器输出位串,与输入位串相同,C为进位输入(CI)或输出(CO)。 实现代码为:全加器真值表如下: module adder4(cout,sum,ina,inb,cin); output[3:0]sum; output cout; input[3:0]ina,inb; 输入输出Xi Yi Ci-1 Si Ci 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

input cin; assign {count,sum}=ina+inb+cin; endmodule 二、设计目的 ⑴熟悉ISE9.1开发环境,掌握工程的生成方法。 ⑵熟悉SEED-XDTK XUPV2Pro实验环境。 ⑶了解Verilog HDL语言在FPGA中的使用。 ⑷了解4位全加器的Verilog HDL语言实现。 三、设计容 用Verilog HDL语言设计4位全加器,进行功能仿真演示。 四、设计步骤 1、创建工程及设计输入。 ⑴在E:\progect\目录下,新建名为count8的新工程。

8位全加器的设计

课程设计报告 课程名称数字逻辑课程设计 课题8位全加器的设计 专业计算机科学与技术 班级1202 学号34 姓名贺义君 指导教师刘洞波陈淑红陈多 2013年12月13日

课程设计任务书 课程名称数字逻辑课程设计 课题8位全加器的设计 专业班级计算机科学与技术1202 学生姓名贺义君 学号34 指导老师刘洞波陈淑红陈多审批刘洞波 任务书下达日期:2013年12月13日 任务完成日期:2014年01月21日

一、设计内容与设计要求 1.设计内容: 本课程是一门专业实践课程,学生必修的课程。其目的和作用是使学生能将已学过的数字电子系统设计、VHDL程序设计等知识综合运用于电子系统的设计中,掌握运用VHDL或者Verilog HDL设计电子系统的流程和方法,采用Quartus II等工具独立应该完成1个设计题目的设计、仿真与测试。加强和培养学生对电子系统的设计能力,培养学生理论联系实际的设计思想,训练学生综合运用数字逻辑课程的理论知识的能力,训练学生应用Quartus II进行实际数字系统设计与验证工作的能力,同时训练学生进行芯片编程和硬件试验的能力。 题目一4线-16线译码器电路设计; 题目二16选1选择器电路设计; 题目三4位输入数据的一般数值比较器电路设计 题目四10线-4线优先编码器的设计 题目五8位全加器的设计 题目六RS触发器的设计; 题目七JK触发器的设计; 题目八D触发器的设计; 题目九十进制同步计数器的设计; 题目十T触发器的设计; 每位同学根据自己学号除以10所得的余数加一,选择相应题号的课题。 参考书目 1 EDA技术与VHDL程 序开发基础教程 雷伏容,李俊,尹 霞 清华大学出版 社 978-7-302-22 416-7 201 TP312VH/ 36 2 VHDL电路设计雷伏容清华大学出版 社 7-302-14226-2 2006 TN702/185 3 VHDL电路设计技术王道宪贺名臣? 刘伟 国防工业出版 社 7-118-03352-9 2004 TN702/62 4 VHDL 实用技术潘松,王国栋7-8106 5 7-81065-290-7 2000 TP312VH/1 5 VHDL语言100 例详解 北京理工大学A SIC研究所 7-900625 7-900625-02-X 19 99 TP312VH/3 6 VHDL编程与仿真王毅平等人民邮电出版 社 7-115-08641-9 20 00 7 3.9621/W38V 7 VHDL程序设计教程邢建平?曾繁泰清华大学出版 社 7-302-11652-0 200 5 TP312VH/27 /3

半加器和全加器及其应用

实验二半加器和全加器及其应用 一、实验目的 1.掌握全加器和半加器的逻辑功能。 2.熟悉集成加法器的使用。 3.了解算数运算电路的结构。 二、实验设备 1.数字电路试验箱; 2.74LS00,74SL86。 三、实验原理 半加器(m =0半加,m=1为半减) 能实现两个一位二进制数的算术加法及向高位进位,而不考虑低位进位的逻辑电路。 它有两个输入端,两个输出端。 半加器电路是指对两个输入数据位进行加法,输出一个结果位和高位的进位,不考虑输入数据的进位的加法器电路。 是实现两个一位二进制数的加法运算电路。数据输入A 被加数、B加数,数据输出S和数(半加和)、进位C0。 同理,能对两个1位二进制数进行相减不考虑低位来的借位求得差及借位的逻辑电路称为半减器.设减数和被减数分别用A和B,表示差用S,表示向高位的借位用C0。

全加器,全减器(m =0为全加,m=1为全减) 全加器是实现两个一位二进制数及低位来的进位数相加(即将三个一位二进制数相加),求得和数及向高位进位的逻辑电路。根据全加器功能,其真值表如下表所示。表中A及B分别代表被加数及加数,C1是低位来的进位,S代表相加后得到的和位,C0代表向高位的进位。图中C1是进位输入端,C0是进位输出端。 同理,能对两个1位二进制数进行相减并考虑低位来的借 位求得差及借位的逻辑电路称为全减器.设减数和被减数 分别用A和B表示低位来的借位用C1,表示差用S,表 示向高位的借位用C0。 四、实验内容 实验一、实现半加器,半减器,当M为0时实现逻辑 变量A、B的半加功能,当M为1时实现逻辑变量A、 B的半减功能。 实验二、实现全加器,全减器,当M为0时实现逻辑 变量A、B的全加功能,C i为进位值。 当M为1时实现逻辑变量A、B的全减功能,C i为借 位值。 五、实验数据 1实现半加、半减器 (1)真值表

实验一1位二进制全加器的设计

龙岩学院实验报告 班级学号姓名同组人 实验日期室温大气压成绩 实验题目:基于原理图输入法的1位二进制全加器的设计 一、实验目的 1、学习、掌握QuartusⅡ开发平台的基本使用。 2、学习基于原理图输入设计法设计数字电路的方法,能用原理图输入设计法 设计1位二进制半加器、1位二进制全加器。 3、学习EDA-V型实验系统的基本使用方法。 二、实验仪器 装有QuartusⅡ软件的计算机一台、EDA系统实验箱、导线若干 三、实验原理 半加器只考虑两个1位二进制数相加,而不考虑低位进位数相加。半加器的逻辑函数 为 式中A和B是两个相加的二进制数,S是半加和,C是向高位的进位数。表1为半加器真值表。 表1 A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 显然,异或门具有半加器求和的功能,与门具有进位功能。 其逻辑图跟逻辑符号如下图:

全加器除了两个1位二进制数相加以外,还与低位向本位的进位数相加。表2为全加器的真值表。 表2 A i B i C I-1 C i S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 由真值表可得出逻辑函数式 式中,A i 和B i 是两个相加的1为二进制数,C i-1 是由相邻低位送来的进位数, S I 是本位的全加和,C I 是向相邻高位送出的进位数。其逻辑图跟逻辑符号如下图所示: 四、实验内容 1、根据1位二进制半加器、1位二进制全加器的真值表,设计并画出1位二进制半加器的原理框图,由半加器及门电路设计并画出1位二进制全加器的原理框图(最终设计的是1位二进制全加器)。

实验一 4位全加器的设计

实验一4位全加器的设计 一、实验目的: 1 熟悉QuartusⅡ与ModelSim的使用; 2 学会使用文本输入方式和原理图输入方式进行工程设计; 3 分别使用数据流、行为和结构化描述方法进行四位全加器的设计; 4 理解RTL视图和Technology Map视图的区别; 5 掌握简单的testbench文件的编写。 二、实验原理: 一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。 三、实验内容: 1.QuartusII软件的熟悉 熟悉QuartusⅡ环境下原理图的设计方法和流程,可参考课本第4章的内容,重点掌握层次化的设计方法。 2.设计1位全加器原理图 设计的原理图如下所示:

VHDL源程序如下(行为描述):-- Quartus II VHDL Template -- Unsigned Adder library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity f_add is port ( a : in std_logic; b : in std_logic; ci : in std_logic; y : out std_logic; co : out std_logic ); end entity; architecture rtl of f_add is begin (co,y)<=('0',a)+('0',b)+('0',ci); end rtl;

全加器与半加器原理及电路设计

全加器与半加器原理及电路设计 在数字系统中,加法器是最基本的运算单元。任何二进制算术运算,一般都是按一定规则通过基本的加法操作来实现的。 1.二进制 十进制中采用了0,1,2,…,9十个数码,其进位规则是“逢十进一”。当若干个数码并在一起时,处在不同位置的数码,其值的含义不同。例如373可写成 二进制只有0和1两个数码,进位规则是“逢二进一”,即1+1=10(读作“壹零”,而不是十进制中的“拾”)。0和1两个数码处于不同数位时,它们所代表的数值是不同的。例如10011这个二进制数,所表示的大小为 这样,就可将任何一个二进制数转换为十进制数。 反过来,如何将一个十进制数转换为等值的二进制数呢?由上式可见 ,,,,分别为相应位的二进制数码1或0。它们可用下法求得。 19用2去除,得到的余数就是;其商再连续用2去除,得到余数,,,,直到最后的商等于0为止,即 2 1 9 余数 ……………………………….余1(d0) ………………………………余1(d1) ……………………………….余0(d2) ……………………………….余0(d3) 0 …………………………… …余1(d4) 所以 可见,同一个数可以用十进制和二进制两种不同形式表示,两者关系如表8-13所示。 表8-13 十进制和二进制转换关系

由表8-14可直接写出 半加器可以利用一个集成异或门和与门来实现,如图8-40(a)所示。图8-40(b)是半加器的逻辑符号。 表8-14 半加器真值表 1101 由真值表可分别写出输出端Si和Ci的逻辑表达式 和的逻辑表达式中有公用项,因此,在组成电路时,可令其共享同一异或门,从而使整体得到进一步简化。一位全加器的逻辑电路图和逻辑符号如图8-41所示。 图8-41 全加器逻辑图及其逻辑符号 多位二进制数相加,可采用并行相加、串行进位的方式来完成。例如,图8-42所示逻辑电路可实现两个四位二进制数和的加法运算。

一位全加器

存档资料成绩: 华东交通大学理工学院 课程设计报告书 所属课程名称计算机组成原理 题目一位全加器的设计 分院电信分院 专业班级 15计算机科学与技术3班 学号20150210440313 学生姓名张子辰 指导教师王莉 2016 年 12 月 19 日

课程设计(论文)评阅意见 评阅人 王莉 职称 讲师 2016年12月19日 序号 项 目 等 级 优秀 良好 中等 及格 不及格 1 课程设计态度评价 2 出勤情况评价 3 任务难度评价 4 工作量饱满评价 5 任务难度评价 6 设计中创新性评价 7 论文书写规范化评价 8 综合应用能力评价 综合评定等级

目录 引言 (2) 一.全加器的介绍 (2) 1.1 全加器的基本概念 (2) 1.2全加器仿真设计分析 (3) 1.3 全加器的原理 (3) 二.课程设计目的 (3) 三.不同方法的一位全加器设计 (4) 3.1用逻辑门设计全加器 (4) 3.2 用74LS38译码器设计全加器 (6) 3.3用74LS153D数据选择器设计全加器 (8) 四.观测仿真电路 (10) 4.1逻辑门仿真电路的分析 (10) 4.2 74LS138译码器仿真电路的分析 (12) 4.3 74LS153D数据选择器仿真电路的分析 (13) 五.两位全加器的实现 (15) 5.1.原理 (15) 5.2创建电路 (18) 5.3 仿真电路的输出信号分析 (19) 六.收获与心得 (19) 参考文献 (20)

一位全加器的设计 引言 MAX+PLUS II是一个专门用于电路设计与仿真的工具软件。它以界面形象直观、操作方便、分析功能强大、易学易用等突出优点,迅速被推广应用。MAX+PLUS II仿真软件能将电路原理图的创建、电路的仿真分析及结果输出都集成在一起,并具有绘制电路图所需的元器件及其仿真测试的仪器,可以完成从电路的仿真设计到电路版图生成的全过程,从而为电子系统的设计、电子产品的开发和电子系统工程提供一种全新的手段和便捷的方法。 数字系统的基本任务之一就是进行算术运算。而常见的加、减、乘、除等运算均可以利用加法运算来实现。所以,加法器就成为数字系统中最基本的运算单元,可广泛用于构成其它逻辑电路。 一.全加器的介绍 1.1 全加器的基本概念 加法器是一种常见的组合逻辑部件,有半加器和全加器之分。半加器是只考虑两个加数本身,而不考虑来自低位进位的逻辑电路,就是两个相加数最低位的加法运算。全加器不仅考虑两个一位二进制数相加,还要考虑与低位进位数相加的运算电路。两个数相加时,除最低位之外的其余各位均是全加运算

利用全加器电路创建四位二进制加法器

一.课程设计的目的: 1、学习并了解MATLAB软件。 2、尝试用Simulink建模。 3、实现对数字电路的防真设计。 4、利用全加器电路创建四位二进制加法器。 二.课程设计题目描述及要求: 利用所学的数字电路的基本知识和MUTLAB软件中Simulink的应用学习,完成对数字电路的仿真设计。用各种各样的组合逻辑电路设计全加器,输出曲线,再利用全加器设计电路创建四位二进制加法器电路图,给出输出。 三.MATLAB软件简介: MATLAB是MathWorks公司于1984年推出的一套高性能的数值计算可视化软件,集数值分析、矩阵运算、信号处理和图形显示于一体。MATLAB是由Matrix 和Laboratory单词的前三个字母组合而成的,其含义是矩阵实验室。 Simulink是MATLAB最重要的组件之一,是实现动态系统建模、仿真的一个集成环境。它支持线性和非线性系统,连续时间、离散时间,或者两者的相结合的仿真,而且系统是多进程的。Simulink是从底层开发的一个完整的仿真环境和图形界面,它把MATLAB的许多功能都设计成一个个直观的功能模块,把需要的功能模块连接起来就可以实现所需要的仿真功能。Simulink仿真应用于数字电路、数字信号处理、通信仿真、电力系统仿真、宇航仿真等领域。由于数字系统中高低电平分别用0和1表示,因此数字电路问题往往可以转化为一个数字上的逻辑问题。MATLAB提供了逻辑运算模块和各种触发器模块,可以方便的进行数字电路的设计和仿真。借助于组合电路仿真常用模块Logic and Bit Operations子库中的Local Operator模块,将其拖到所建的untitled窗口中,然后鼠标左键双击该模块弹出的Block Parameters/Logical Operator对话框,按Operator栏后的黑三角来选择所需要的门电路标识符,如:AND、OR、NAND、NOR、XOR、NOT中的一个,并依次设置所需的输入、输出端子个数,之后按OK 键确定。利用这些基本门电路组成加法器逻辑电路。 四.课程设计的内容: 1、1位全加器的设计。 所谓全加器,就是带进位输入和进位输出的加法器。1位全加器有3个输入,分别是加

一位全加器电路版图设计-11页精选文档

目录 1 绪论 (1) 1.1 设计背景 (1) 1.2 设计目标 (1) 2一位全加器电路原理图编辑 (2) 2.1 一位全加器电路结构 (2) 2.2 一位全加器电路仿真分析波形 (2) 2.3 一位全加器电路的版图绘制 (3) 2.4一位全加器版图电路仿真并分析波形 (3) 2.5 LVS检查匹配 (3) 总结 (4) 参考文献 (4) 附录一:电路原理图网表 (5) 附录二:版图网表 (6)

1 绪论 1.1 设计背景 Tanner集成电路设计软件是由Tanner Research 公司开发的基于Windows 平台的用于集成电路设计的工具软件。早期的集成电路版图编辑器L-Edit在国内已具有很高的知名度。Tanner EDA Tools 也是在L-Edit的基础上建立起来的。整个设计工具总体上可以归纳为电路设计级和版图设计级两大部分,即以S-Edit为核心的集成电路设计、模拟、验证模块和以L-Edit为核心的集成电路版图编辑与自动布图布线模块。Tanner软件包括S-Edit,T-Spice, L-Edit与LVS[1]。 L-Edit Pro是Tanner EDA软件公司所出品的一个IC设计和验证的高性能软件系统模块,具有高效率,交互式等特点,强大而且完善的功能包括从IC设计到输出,以及最后的加工服务,完全可以媲美百万美元级的IC设计软件。L-Edit Pro包含IC设计编辑器(Layout Editor)、自动布线系统(Standard Cell Place & Route)、线上设计规则检查器(DRC)、组件特性提取器(Device Extractor)、设计布局与电路netlist的比较器(LVS)、CMOS Library、Marco Library,这些模块组成了一个完整的IC设计与验证解决方案。L-Edit Pro丰富完善的功能为每个IC设计者和生产商提供了快速、易用、精确的设计系统。 1.2 设计目标 1.用tanner软件中的原理图编辑器S-Edit编辑一位全加器电路原理图 2.用tanner软件中的TSpice对一位全加器的电路进行仿真并分析波形 3.用tanner软件中的版图编辑器L-Edit进行一位全加器电路的版图绘制,并进行DRC验证 4.用tanner软件中的TSpice对一位全加器的版图进行仿真并分析波形 5.用tanner软件的layout-Edit中的lvs功能对一位全加器进行LVS检验观察原理图与版图的匹配程度

半加器全加器的工作原理和设计方法实验报告

一、实验目的 1、学习和掌握半加器全加器的工作原理和设计方法。 2、熟悉EDA工具Quartus II的使用,能够熟练运用Vrilog HDL语言在 Quartus II下进行工程开发、调试和仿真。 3、掌握组合逻辑电路在Quartus Ⅱ中的图形输入方法及文本输入方法, 掌握层次化设计方法。 4、掌握半加器、全加器采用不同的描述方法。 二、实验容 1、完成半加器全加器的设计,包括原理图输入,编译、综合、适配、仿真等。并将半加器电路设 置成一个硬件符号入库 2、建立更高层次的原理图设计,利用1位半加器构成1位全加器,并完成编译、综合、适配、仿 真并硬件测试 3、采用图形输入法设计1位加法器分别采用图形输入和文本输入方法,设计全加器 4、实验报告:详细叙述1位全加法器的设计流程,给出各层次的原理图及其对应的仿真波形图, 给出加法器的上时序分析情况,最后给出硬件测试流程和结果。 三、实验步骤 1、建立一个Project。 2、编辑一个VHDL程序,要求用VHDL结构描述的方法设计一个半加器 3、对该VHDL程序进行编译,修改错误。 4、建立一个波形文件。(根据真值表) 5、对该VHDL程序进行功能仿真和时序仿真 四、实验现象 任务1:半加器真值表描述方法 代码如下: 半加器是只考虑两个加数本身,而不考虑来自低位进位的逻辑电路 S=A B+A B CO=AB

代码如下: LIBRARY IEEE; --行为描述半加器 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT(a,b:IN STD_LOGIC; so,co:OUT STD_LOGIC); END h_adder; Architecture FH1 OF h_adder IS Signal abc:STD_LOGIC_vector(1 downto 0); Begin abc<=a&b; --并 Process(abc) --进程 begin case abc is WHEN "00"=>SO<='0';CO<='0'; WHEN "01"=>SO<='1';CO<='0'; WHEN "10"=>SO<='1';CO<='0'; WHEN "11"=>SO<='0';CO<='1'; WHEN OTHERS =>NULL; END CASE; END PROCESS; END ARCHITECTURE FH1; 结果如下: 逻辑图 半加器真值表 A i B i S i C i 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 1

一位全加器的设计

课程设计任务书 学生:袁海专业班级:电子1303班 指导教师:封小钰工作单位:信息工程学院 题目: 一位全加器的设计 初始条件: 计算机、ORCAD软件,L-EDIT软件 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1、课程设计工作量:1周 2、技术要求: (1)学习ORCAD软件,L-EDIT软件。 (2)设计一个一位全加器电路。 (3)利用ORCAD软件对该电路进行系统设计、电路设计,利用L-EDIT软件进行版图设计,并进行相应的设计、模拟和仿真工作。 3、查阅至少5篇参考文献。按《理工大学课程设计工作规》要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规。 时间安排: 2016.12.30布置课程设计任务、选题;讲解课程设计具体实施计划与课程设计报告格式的要求;课程设计答疑事项。 2016.12.31-2017.1.2学习ORCAD软件和L-EDIT软件,查阅相关资料,复习所设计容的基本理论知识。 2017.1.3-2017.1.4对一位全加器电路进行设计仿真工作,完成课设报告的撰写。 2017.1.5 提交课程设计报告,进行答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要........................................................................ I ABSTRACT ................................................................... II 1绪论. (1) 1.1集成电路发展现状 (1) 1.2集成电路版图工具L-edit简介 (1) 2全加器原理及一位全加器原理图设计 (3) 2.1一位全加器原理简介 (3) 2.2实现一位全加器功能的原理图设计 (4) 2.2.1一位全加器原理图 (4) 2.2.2基于ORCAD的一位全加器设计 (4) 2.2.3 一位全加器的电路图仿真 (7) 3一位全加器的版图设计 (9) 3.1确定一位全加器版图结构 (9) 3.2源漏共享缩小版图面积 (10) 3.3 版图所需基础器件绘制编辑 (12) 3.3.1 PMOS、NMOS等基础器件编辑 (12) 3.3.2 两输入与非门与异或门的绘制编辑 (13) 3.3.3源漏共享得到版图 (14) 3.4 绘制最终一位全加器版图 (15) 4心得体会 (18) 5参考文献 (19)

4位全加器

四位全加器的VHDL实现 通信0704 王学申0120703490117 一、设计要求: 采用QuartusII或Max+PlusII集成开发环境,利用VHDL硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四位进位加法器。 二、设计分析 加法器是数字系统中的基本逻辑器件。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。 实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能(当然还有 0+0、0+1、1+0). 三、加法器的分类 (一)半加器 能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。图1为半加器的方框图。图2为半加器原理图。其中:A、B分别为被加数与加数,作为电路的输入端;S为两数相加产生的本位和,它和两数相加产生的向高位的进位C一起作为电路的输出。 图1 半加器

图2 半加器原理图 根据二进制数相加的原则,得到半加器的真值表如表1所列。 信号输入信号输出 A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 表1 半加器的真值表 由真值表可分别写出和数S,进位数C的逻辑函数表达式为: (1) C=AB (2) 由此可见,式(1)是一个异或逻辑关系,可用一个异或门来实现;式(2)可用一个与门实现。仿真结果如图3所示: 图3 半加器仿真图

半加器和全加器的设计

实验一.半加器,全加器的设计1,半加器的设计, 方法一 library ieee ; use ieee.std_logic_1164.all; entity h_adder1 is port(a,b :in std_logic; c,s :out std_logic); end entity h_adder1; architecture one of h_adder1 is begin s<=a xor b;c<=a and b; end architecture one; 运行结果: 方法二: 运行结果:

2,全加器的设计 方法一: library ieee; use ieee.std_logic_1164.all; entity f_adder1 is port(a,b,cin :in std_logic; sum,cout :out std_logic); end entity f_adder1; architecture arch of f_adder1 is component h_adder1 port( a,b :in std_logic; s,c :out std_logic); end component; component or23 port (a,b :in std_logic; c: out std_logic); end component; signal x:std_logic_vector(0 to 2); begin u1: h_adder1 port map(a,b,x(1),x(0)); u2: h_adder1 port map(x(1),cin,sum,x(2)); u3: or23 port map(a=>x(0),b=>x(2),c=>cout); end arch; 运行结果: 方法二:

1位全加器的设计max

实验三1位全加器的设计 一、实验目的: 熟悉Alter公司的Max+Plus II软件,掌握采用EDA技术进行设计的过程,学会使用原理图和VHDL语言的两种方法进行电路设计。 二、实验内容: 1、编写2输入或门的VHDL程序。 2、编写半加法器的VHDL程序。 3、采用原理图方法设计全加器。 4、进行逻辑编译、综合和优化。 5、进行软件仿真。 三、实验步骤: 1、建立新目录:如e:\example; 2、第一次运行MAX+PLUS II——进入MAX+PLUS II 双击MAX+PLUS II 图标: 或:开始→程序→Altera→ 3、创建VHDL源程序 A:创建2输入或门的VHDL源程序:ORM2.VHD (1)生成一个新的文本文件:按屏幕上方的按钮,或选择“file”→“new…”,

出现对话框: 选择Text Editor file(文本编辑方式),然后按下OK按钮,会出现一个无标题的文本编辑窗口——Untitled-Text Editor。 (2)在编文本辑窗口中输入2输入或门的VHDL源程序:ORM2.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ORM2 IS PORT (A,B: IN STD_LOGIC; C: OUT STD_LOGIC); END ORM2; ARCHITECTURE ART1 OF ORM2 IS BEGIN C<=A OR B; END ARCHITECTURE ART1; (3)保存文件:按工具栏中的按钮,或选择File→Save,出现对话 框:

在File Name(文件名)栏中输入文件名,如ORM2.vhd 在驱动器选择栏选刚刚建立的项目路径所在的驱动器,如e: 在路径栏选择所建立的项目路径,如:example 在Automatic Extension(自动扩展名)的下拉菜单中选择.vhd 按键,就把输入的文件存放在了目录e:\example中了。此时,所有的标识符都变色。 (4)创建元件图形符号:(为了能在图形编辑器中调用ORM2) (a)选择“File”→“Create Default Symbol”,出现对话框: (b)按确定后编辑器开始进行编译: 如果编译出现错误,要对源程序进行修改,重复上面的步骤,直到元件符号创建成功为止,成功后出现对话框。然后退出编辑器,回到主窗口。 B:创建半加器的VHDL源程序H_ADDER.VHD,及其并其元件符号:重复上面(1)~(4)步骤。【注】:必须将文件放在同一目录下。

用门电路设计一位的全加器

实验二组合逻辑设计 一、实验目的 1、掌握组合电路设计的具体步骤和方法; 2、巩固门电路的运用和电路搭建能力; 3、掌握功能表的建立与运用; 4、为体验MSI(中规模集成电路)打基础。 二、实验使用的器件和设备 四2输入异或门74LS86 1片 四2输入正与非门74LS00 1片 TDS-4数字系统综合实验平台1台 三、实验内容 1.测试四2输入异或门74LS86 一个异或门的输入和输出之间的逻辑关系。 2.测试四2输人与非门74LS00一个与非门的输入和输出之间的逻辑关系。 3.等价变换Si=Ai○十Bi○十Ci-1 Ci=AiBi +(Ai○十Bi)Ci-1 4.画出变换后的原理图和接线图。 四、实验过程 1、选择实验题目,分析逻辑功能 用门电路设计一位的全加器 一位全加器:在进行两个数的加法运算时不仅要考虑被加数和加数而且要考虑前一位(低位)向本位的进位的一种逻辑器件。 2、根据逻辑功能写出真值表;

3、根据真值表写出逻辑函数表达式; Si=Ai○十Bi○十Ci-1 Ci=AiBi +(Ai○十Bi)Ci-1 4、利用卡诺图法或布尔代数法对逻辑函数表达式进行化简; 不需化简 Si=Ai○十Bi○十Ci-1 Ci=AiBi +(Ai○十Bi)Ci-1 5、将化简的逻辑表达式等价变换,统计出实验所需芯片; Si=Ai○十Bi○十Ci-1 所需芯片: 四2输入异或门74LS86 1片 四2输入正与非门74LS00 1片 6、根据各芯片的引脚图,测试所有需用芯片的功能,画出各芯片的功能表; VCC VCC 74LS86接线图 74LS00接线图74LS 86芯片测试结果 74LS00 芯片测试结果

1位全加器的电路和版图设计

集成电路设计基础 论文题目:CMOS全加器设计学院:信息科学与工程学院专业:集成电路工程 姓名:耿烨亮 学号:1311082135

CMOS全加器设计 摘要:现代社会随着电路的集成度越来越高,功耗和信号延迟成为超大规模集成电路的关键。加法运算是数字系统中最基本的运算,为了更好地利用加法器实现减法、乘法、除法等运算,需要对全加器进行功能仿真设计和分析。另外通过全加器可以对其它相关电路有所了解。因此只有深刻理解了全加器的性能才能进一步减小功耗和信号延迟[1]。本文用对一位全加器进行了全面的分析。并且通过使用Cadence公司的工具IC 5141与Hspice来实现全定制的整个设计流程。 关键词:全加器;全定制;Cadence

As the circuit’s integration is increasing in the modern society,Power consumption and signal delay is crucial to the design of high-performance very large scale integration circuits. Addition operation is the basic operation of the digital system, In order to achieve much better use of the adder subtraction, multiplication, division and other operations, The need for full adder functional simulation design and analysis is necessary .what’s more, we can understand the other related circuitry through the full adder , Therefore, only a deep understanding of the performance of the full adder can we reduce the power consumption and signal delay.The paper has a comprehensive analysis to the full adder. And through the use of Cadence tool IC 5141 and Hspice to achieve full custom throughout the design process. Key words: the full adder ; Full – Custom; Cadence

实验一1 1位全加器的设计

实验一1位全加器的设计 一、实验目的 1.熟悉ISE软件的使用; 2.熟悉下载平台的使用; 3.掌握利用层次结构描述法设计电路。 二、实验原理及说明 由数字电路知识可知,一位全加器可由两个一位半加器与一个或门构成,其原理图如图1所示。该设计利用层次结构描述法,首先设计半加器电路,将其打包为半加器模块;然后在顶层调用半加器模块组成全加器电路;最后将全加器电路编译下载到实验板,其中a,b,cin 信号可采用实验箱上SW0,SW1,SW2键作为输入,输出sum,cout信号采用发光二极管LED3,LED2来显示。 图1 全加器原理图 三、实验步骤 1.在ISE软件下创建一工程,工程名为full_adder,工程路径在E盘,或DATA盘, 并以学号为文件夹,注意不要有中文路径,注意:不可将工程放到默认的软件安装 目录中。芯片名为Spartan3E系列的XC3S500E-PQG208 2.新建Verilog HDL文件,首先设计半加器,输入如下源程序; module half_adder(a,b,s,co); input a,b; output s,co;

wire s,co; assign co=a & b; assign s=a ^ b; endmodule 3.保存半加器程序为half_adder.v,通过HDL Bench画仿真波形,获得仿真用激励文 件,随后进行功能仿真、时序仿真,验证设计的正确性,观察两种仿真波形的差异。 4.在Design窗口中,选择Design Utilities→Create Schematic Symbol创建半加器模 块; 5.新建一原理图(Schematic)文件,在原理图中调用两个半加器模块、一个或门模块, 按照图1所示连接电路,并连接输入、输出引脚。完成后另保存full_adder.sch。 6.对设计进行综合,如出现错误请按照错误提示进行修改。 7.HDL Bench画仿真波形,获得仿真用激励文件,分别进行功能与时序仿真,验证全 加器的逻辑功能,观察两类波形的差异。 8.根据下载板的情况锁定引脚 9.下载,采用JATG方式进行下载,通过SW0,SW1,SW2输入,观察的LED2,LED3, 亮灭情况,验证全加器的逻辑功能。 四、思考题 1.为什么在实验步骤3中,将半加器保存为half_adder,可否保存为full_adder? 2.对电路进行功能仿真与时序仿真时,发现二者有什么样的区别? 3.为什么要进行引脚锁定? 4.采用层次结构法描述电路有什么样的优点?

半加器和全加器

《电子技术基础》实验报告 年级专业姓名学号 实验一数字钟实验 一、实验目的 1、初步了解数字电路的基本组成。 2、初步认识什么是数字信号、逻辑电平和逻辑关系,以及某些逻辑元件的基本逻辑功能。 3、初步接触数字电路的调试过程,以达到对数字电路有一个大体的感性认识。 二、实验任务 1、用74LS161型中规模计数器连接成一个十进制和一个六进制计数器。并 连接成一个六十进制的秒、分计数器。再用两片74LS161连接成一个二十 四进制计数器。与译码器、显示电路连接后将六十进制和二十四进制器连接 起来,完成能显示分、时的数字钟。 2、掌握译码器和计数器的大致工作原理 3、实验记录数码管的亮暗关系表,计数器、译码器输出与脉冲关系;并总结实验过程,绘 制好实验图表,体会译码器和计数器的大致工作原理,认真作好实验报告。 三、实验过程过程与结果 1、绘制数字钟电路:

实验二组合逻辑实验 实验目的: 1、掌握组合逻辑电路的功能测试方法及设计方法 2、熟悉几种典型组合逻辑电路的工作原理。 实验任务: 1、用与非门和非门(74LS00和74LS05型)设计一个半加器电路。只考虑被加数和加数的相应位相加,而不考虑相邻低位的进位,这种二进制数相加称为半加。因此,电路输入为被加数A和B加数,而输出为半加和S和向高位的进位C。要求设计出一个半加器单元。 2、用与非门和与-或-非门(74LS00和74LS54型)设计一个全加器电路。全加器与半加器相比较,输入信号多了一个低位的进位Ci-1,输出仍为全加和和向高位进位。设计一个全加器单元。 3、实验结束写出实验报告,必须包括各实验的电路图,测试后的真值表及有关数据。 三、实验过程过程与结果 1.绘制半加器电路和全加器电路: 半加器电路 全加器电路

四位全加器设计

四位全加器设计 The design of 4 bit full_adder4 摘要通过EDA软件,利用VHDL硬件描述语言,与原理图来完成四位全加器设计,此设计由简单到复杂,先合成一个半加器,再通过元件例化语句编写一位全加器,然后用四个全加器采用原理图便可合成此设计,并进行时序仿真,硬件下载 Abstrct Making use of VHDL and EDA soft-ware complete a four-f_adder design,It is a simple way tranffering to a complex way.At first,we are able to make up a h_adder,then making full use of it and an component sentence carry out a f_adder,at last ,we can adopt the picture of theory,then the design is on my eyes. 关键词 VHDL语言、半加器、全加器、原理图四位全加器设计 Key words VHDL language ,h_adder,f_adder,principium_ picture,full_adder4 引言VHDL于1983年由美国国防部发起创建,由IEEE进一步发展,从此,VHDL 成为硬件描述语言的业界标准之一, VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行描述和建模,从而大大简化了硬件设计任务,提高了设计效率和可靠性,现今已得到广泛应用,此时利用它的优势来实现四位全加器设计. 1 掌握基本知识 1.1电路的VHDL描述有两大部分组成 1.1.1以关键词ENTITY引导,END ENTITY mux21a结尾的语句部分,称为实体。VHDL的实体描述了电路器件的外部情况及各信号端口的基本性质. 1.1.2以关键词ARCHITECTURE引导,END ARCHITECTURE one 结尾的语句部分,成为结构体。结构体负责描述电路器件的内部逻辑功能或电路结构。 1.2原理图的相关知识 这是一种类似于传统的原理图编辑输入方式,即在EDA软件的图形编辑界面上绘制能完成特定功能的电路原理图。原理图由逻辑器件

一位全加器元件例化四位全加器

. 西华大学实验报告(计算机类) 开课学院及实验室: 机械学院实验室 实验时间 : 年 月 日 一、实验目的 学习加法器的功能与定义,学习VHDL ,学习用元件例化方法设计多层次结构的VHDL 设计。 二、内容与实验原理 内容 :编写一个一位全加器和一个四位全加器的VHDL 代码,用元件例化方法建立一个四位全加器并编译,仿真。 实验原理: 算术运算式数值系统的基本功能,更是计算机中不可缺少的组成单元。 1、全加器 全加法是算术运算电路中的基本单元,它们是完成1位二进制相加的一种组合逻辑电路。一位加法器的真值表见下表;由表3-1中可以看见,这种加法考虑低位来的进位,所以称为全加。一位全加器就是实现下表中逻辑关系的电路。 表3-1 一位半加器真值表 被加数A 加数B 低位进位Ci 和数S 进位Co 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1

1 0 1 0 1 1 1 1 1 1 2、四位全加器 按照串行进位方式,采用四个一位全加器级联可以得到四位加法器。 三、使用环境 计算机、Modelsim软件。 四、核心代码及调试过程 (1) library IEEE; USE IEEE.std_logic_1164.all; ENTITY full IS PORT (a,b,cin:IN STD_LOGIC; sum,Co: OUT STD_LOGIC); END full ; architecture rtl of full is SIGNAL u0_Co,u0_s,u1_c0,c,d,e,f:STD_LOGIC; BEGIN c <= a OR b; d <= a NAND b; u0_Co <= NOT d; u0_s <= c AND d; e <= u0_s OR cin; f <= u0_s NAND cin; u1_c0 <= NOT f; sum <= e and f; Co <= u0_Co OR u1_c0; end rtl; (2) full library IEEE; USE IEEE.std_logic_1164.all; ENTITY full IS

相关文档
最新文档