文档库 最新最全的文档下载
当前位置:文档库 › 半加器全加器的工作原理和设计方法实验报告[精品文档]

半加器全加器的工作原理和设计方法实验报告[精品文档]

半加器全加器的工作原理和设计方法实验报告[精品文档]
半加器全加器的工作原理和设计方法实验报告[精品文档]

一、实验目的

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; 结果如下:

逻辑图

任务2:二进制加法运算规则描述

代码如下:

LIBRARY IEEE;--行为描述(抽象描述结构体的功能) USE IEEE.STD_LOGIC_1164.ALL;

ENTITY h_adder2 is --半加器

PORT(A,B:IN STD_LOGIC;

S,C0:OUT STD_LOGIC);

END h_adder2;

ARCHITECTURE be_half_adder OF h_adder2 IS BEGIN

PROCESS(A,B)

BEGIN

IF(A='0' AND B='0') THEN S<='0';C0<='0';

ELSIF(A='0' AND B='1') THEN

S<='1';C0<='0';

ELSIF(A='1' AND B='0') THEN S<='1';C0<='0'; ELSE

S<='0';C0<='1';

END IF;

END PROCESS;

END be_half_adder;

结果如下:

任务3:按逻辑表达式设计

代码如下:

LIBRARY IEEE; --行为描述半加器(按逻辑表达式)USE IEEE.STD_LOGIC_1164.ALL;

ENTITY h_adder3 IS

PORT(a,b:IN STD_LOGIC;

so,co:OUT STD_LOGIC);

END h_adder3;

Architecture FH1 OF h_adder3 IS

Begin

so<=a XOR b ;

co<=a AND b;

END ARCHITECTURE FH1;

结果如下:

任务4:用基本单元电路与或非描述半加器

代码如下:

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity h_adder4 is

port(a:in STD_LOGIC;

b:in STD_LOGIC;

sum:out STD_LOGIC;

co:out STD_LOGIC );

end h_adder4;

architecture ch4 of h_adder4 is

signal c,d:std_logic;

begin

c<=a or b;

d<=a nand b;

co<=not d;

sum<=c and d;

end architecture ch4;

结果如下:

任务5 :结构描述

代码如下:

--h_adder5

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY h_adder5 IS

PORT(A,B:IN STD_LOGIC;

co,s: OUT STD_LOGIC);

END ENTITY h_adder5;

ARCHITECTURE mix OF h_adder5 IS COMPONENT xor21 IS

PORT(i0,i1:IN STD_LOGIC;

q:OUT STD_LOGIC);

END COMPONENT;

BEGIN

co<=A AND B;

u1: xor21 PORT MAP(i0=>A,i1=>B,q=>s); --例化END ARCHITECTURE mix;

--xor21

--half_adder半加器,结构描述

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY xor21 IS

PORT(i0,i1:IN STD_LOGIC;

q: OUT STD_LOGIC);

END ENTITY xor21;

ARCHITECTURE behav OF xor21 IS

BEGIN

q<=i0 XOR i1;

END ARCHITECTURE behav;

结果如下:

五、实验体会

通过这次实验,复习了VHDL语言的应用,通过五种不同的方式,进行半加器的设计,加深了对半加器的理解,及对五种方法的运用,真值表描述方法、二进制加法运算规则描述、按逻辑表达式设计、用基本单元电路与或非描述半加器、结构描述。尤其在结构描述,元件例化部分,有了更好的理解和掌

握。

半加器全加器的工作原理和设计方法实验报告[精品文档]

一、实验目的 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; 结果如下: 逻辑图

4位全加器实验报告

四位全加器 11微电子黄跃21 【实验目的】 采用modelsim集成开发环境,利用verilog硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四位进位加法器。 【实验内容】 加法器是数字系统中的基本逻辑器件。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。 实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能(当然还有 0+0、0+1、1+0). 【实验原理】

表2 全加器逻辑功能真值表 图4 全加器方框图 图5 全加器原理图 多位全加器连接可以是逐位进位,也可以是超前进位。逐位进位也称串行进位,其逻辑电路简单,但速度也较低。 四位全加器 如图9所示,四位全加器是由半加器和一位全加器组建而成: 图9 四位全加器原理图 【实验步骤】 (1)建立新工程项目: 打开modelsim软件,进入集成开发环境,点击File→New project建立一

个工程项目adder_4bit。 建立文本编辑文件: 点击File→New在该项目下新建Verilog源程序文件 并且输入源程序。 (2)编译和仿真工程项目: 在verilog主页面下,选择Compile— Compile All或点击工具栏上的按钮启动编译,直到project出现status栏全勾,即可进行仿真。 选择simulate - start simulate或点击工具栏上的按钮开始仿真,在跳出来的 start simulate框中选择work-test_adder_4bit测试模块,同时撤销Enable Optimisim前的勾,之后选择ok。 在sim-default框内右击选择test_adder_4bit,选择Add Wave,然后选择simulate-run-runall,观察波形,得出结论,仿真结束。 四位全加器 1、原理图设计 如图9所示,四位全加器是由半加器和一位全加器组建而成: 图9 四位全加器原理图 【仿真和测试结果】 下图为四位全加器的仿真图:

一位全加器VHDL的设计实验报告

EDA技术及应用实验报告 ——一位全加器VHDL的设计 班级:XXX 姓名:XXX 学号:XXX

一位全加器的VHDL设计 一、实验目的: 1、学习MAX+PLUSⅡ软件的使用,包括软件安装及基本的使用流程。 2、掌握用VHDL设计简单组合电路的方法和详细设计流程。 3、掌握VHDL的层次化设计方法。 二、实验原理: 本实验要用VHDL输入设计方法完成1位全加器的设计。1位全加器可以用两个半加器及一个或门连接构成,因此需要首先完成半加器的VHDL设计。采用VHDL层次化的设计方法,用文本编辑器设计一个半加器,并将其封装成模块,然后在顶层调用半加器模块完成1位全加器的VHDL设计。 三、实验内容和步骤: 1、打开文本编辑器,完成半加器的设计。 2、完成1位半加器的设计输入、目标器件选择、编译。

3、打开文本编辑器,完成或门的设计。 4、完成或门的设计输入、目标器件选择、编译。 5、打开文本编辑器,完成全加器的设计。

6、完成全加器的设计输入、目标器件选择、编译。 7、全加器仿真 8、全加器引脚锁定

四、结果及分析: 该一位加法器是由两个半加器组成,在半加器的基础上,采用元件的调用和例化语句,将元件连接起来,而实现全加器的VHDL编程和整体功能。全加器包含两个半加器和一或门,1位半加器的端口a和b分别是两位相加的二进制输入信号,h是相加和输出信号,c是进位输出信号。构成的全加器中,A,B,C分别是该一位全加器的三个二进制输入端,H是进位端,Ci是相加和输出信号的和,下图是根据试验箱上得出的结果写出的真值表: 信号输入端信号输出端 Ai Bi Ci 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

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

全加器与半加器原理及电路设计 在数字系统中,加法器是最基本的运算单元。任何二进制算术运算,一般都是按一定规则通过基本的加法操作来实现的。 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所示逻辑电路可实现两个四位二进制数和的加法运算。

实验一四位串行进位加法器的设计实验报告

实验一四位串行进位加法器的设计 一、实验目的 1.理解一位全加器的工作原理 2.掌握串行进位加法器的逻辑原理 3.进一步熟悉Quartus软件的使用,了解设计的全过程, 二、实验内容 1.采用VHDL语言设计四位串行进位的加法器 2.采用画原理图的方法设计四位串行进位加法器 三、实验步骤 1、使用VHDL语言设计 1.打开File—>New Project Wizard输入文件名adder4保存在D盘内,打开File—>New—>VHDL File,从模版中选择库的说明,use语句的说明,实体的说明,结构体的说明,编写VHDL代码,然后保存、编译。打开File—>New—>Other File—>Vector Waveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。从Assignments—>Settings—>Simulator Settings —>Functional 然后Processing—>Generate Functional Simnlation Netlist —>确定。选择Start Simulation保存最后的波形图,打开File —>close关闭工程。 底层文件: LIBRARY ieee;

USE fadder IS PORT ( a, b,cin : IN STD_LOGIC; s, co : OUT STD_LOGIC ); END fadder; ARCHITECTURE arc1 OF fadder IS BEGIN s<=a xor b xor cin; co<=((a xor b)and cin)or(a and b); END arc1; 顶层文件: LIBRARY ieee; USE adder4 IS PORT ( c0: IN STD_LOGIC; a,b : IN STD_LOGIC_VECTOR(3 DOWNTO 0); s : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); c4 : OUT STD_LOGIC );

实验二 组合逻辑电路(半加器、全加器)

《数字电子技术B》实验报告 班级:姓名学号: 实验二组合逻辑电路(半加器、全加器) 一、实验目的 1.掌握组合逻辑电路的功能测试。 2.验证半加器和全加器的逻辑功能。 3.学会二进制数的运算规律。 二、实验仪器及材料 74LS00 二输入端四与非门 3片 74LS86 二输入端四异或门 1 片 74LS54 四组输入与或非门 1片 三、实验内容(如果有可能,附上仿真图) 1.组合逻辑电路功能测试。 (1).用2片74LS00组成图2.1所示逻辑电路。为便于接线和检查,在图中要注明芯片编号及各引脚对应的编号。 (2).图中A、B、C接电平开关,Y1,Y2接发光管电平显示。 (3).接表2.1要求,改变A、B、C的状态填表并写出Y1,Y2逻辑表达式。 (4).将运算结果与实验比较。 表2.1

Y1=A+B Y2=(A’*B)+(B’*C) 2.测试用异或门(74LS86)和与非门组成的半加器的逻辑功能。 根据半加器的逻辑表达式可知,半加器Y是A、B的异或,而进位Z是A、B相与,故半加器可有一个集成异或门和二个与非门组成如图2.2。 图2.2 (1).在实验仪上用异或门和与门接成以上电路。A、B接电平开关K,Y,Z接电平显示。(2).按表2.2要求改变A、B状态,填表。 表2.2 3. (1).写出图2.3电路的逻辑表达式。 (2).根据逻辑表达式列真值表。

表2.3 (5)按原理图选择与非门并接线进行测试,将测试结果记入表2.4,并与上表进行比较看逻辑功能是否一致。 4. 测试用异或、与或和非门组成的全加器的逻辑功能。 全加器可以用两个半加器和两个与门一个或门组成,在实验中,常用一块双异或门、一个与或非门和一个与非门实现。 (1).画出用异或门、与或非门和非门实现全加器的逻辑电路图,写出逻辑表达式。 (2).找出异或门、与或非门和与门器件按自己画出的图接线。接线时注意与或非门中不用的与门输入端接地。 (3).当输入端A i、B i及C i-1为下列情况时,用万用表测量S i和C i的电位并将其转为逻辑状态填入下表。 表2.4

FPGA一位全加器设计实验报告

题目:1位全加器的设计 一.实验目的 1.熟悉QUARTUSII软件的使用; 2.熟悉实验硬件平台的使用; 3.掌握利用层次结构描述法设计电路。 二.实验原理 由于一位全加器可由两个一位半加器与一个或门构成,首先设计半加器电路,将其打包为半加器模块;然后在顶层调用半加器模块组成全加器电路;最后将全加器电路编译下载到实验箱,其中ain,bin,cin信号可采用实 验箱上SW0,SW1,SW2键作为输入,并将输 入的信号连接到红色LED管 LEDR0,LEDR1,LEDR2上便于观察,sum,cout 信号采用绿色发光二极管LEDG0,LEDG1来 显示。 三.实验步骤 1.在QUARTUSII软件下创建一工程,工程名为full_adder,芯片名为EP2C35F672C6; 2.新建Verilog语言文件,输入如下半加器Verilog语言源程序; 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.保存半加器程序为,进行功能仿真、时序仿真,验证设计的正确性。 其初始值、功能仿真波形和时序仿真波形分别如下所示

4.选择菜单File→Create/Update→Create Symbol Files for current file,创建半加器模块; 5.新建一原理图文件,在原理图中调用半加器、或门模块和输入,输出引脚,按照图1所示连接电路。并将输入ain,bin,cin连接到FPGA的输出端,便于观察。完成后另保存full_adder。 电路图如下 6.对设计进行全编译,锁定引脚,然后分别进行功能与时序仿真,验证全加器的逻辑功能。其初始值、功能仿真波形和时序仿真波形分别如下所示

4位全加器实验报告.doc

四位全加器 11微电子黄跃1117426021 【实验目的】 采用modelsim集成开发环境,利用verilog硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四位进位加法器。 【实验内容】 加法器是数字系统中的基本逻辑器件。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。 实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能(当然还有 0+0、0+1、1+0). 【实验原理】 全加器 除本位两个数相加外,还要加上从低位来的进位数,称为全加器。图4为全 加器的方框图。图5全加器原理图。被加数A i 、加数B i 从低位向本位进位C i-1 作 为电路的输入,全加和S i 与向高位的进位C i 作为电路的输出。能实现全加运算 功能的电路称为全加电路。全加器的逻辑功能真值表如表2中所列。 信号输入端信号输出端 A i B i C i S i C i 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

表2 全加器逻辑功能真值表 图4 全加器方框图 图5 全加器原理图 多位全加器连接可以是逐位进位,也可以是超前进位。逐位进位也称串行进位,其逻辑电路简单,但速度也较低。 四位全加器 如图9所示,四位全加器是由半加器和一位全加器组建而成: 图9 四位全加器原理图 【实验步骤】 (1)建立新工程项目: 打开modelsim软件,进入集成开发环境,点击File→New project建立一

计组-加法器实验报告

半加器、全加器、串行进位加法器以及超前进位加法器 一、实验原理 1.一位半加器 A和B异或产生和Sum,与产生进位C 2.一位全加器 将一位半加器集成封装为halfadder元件,使用两个半加器构成一位的全加器 3.4位串行进位加法器 将一位全加器集成封装为Fulladder元件,使用四个构成串行进位加法器

4.超前进位加法器(4位) ⑴AddBlock 产生并行进位链中的ti(即Cthis)和di(即Cpass),以及本位结果Sum ⑵进位链(Cmaker) 四位一组并行进位链,假设与或非门的级延迟时间为1.5ty,与非门的延迟时间为1ty,在di和ti产生之后,只需2.5ty就可产生所有全部进位

⑶超前进位加法器 将以上二者结合起来即可完成,A和B各位作为各个AddBlock的输入,低一位的进位Ci-1作为本位AddBlock的C-1的输入。各个AddBlock输出的C_this和C_pass作为对应的Cmaker的thisi和passi的输入。

二、实验器材 QuartusII仿真软件,实验箱 三、实验结果 1.串行进位加法器结果 2.超前进位加法器结果

四、实验结果分析 1.实验仿真结果显示串行加法器比超前进位加法器快,部分原因应该是电路结构优化 不到位。另外由于计算的位数比较少,超前进位加法链结构较复杂,所以优势没体现出来,反倒运作的更慢一点。当位数增加的时候,超前进位加法器会比串行的更快。 2.波形稳定之前出现上下波动,应该与“竞争冒险”出现的情况类似,门的延迟和路径 的不同导致了信号变化时到达的时间有先有后,因此在最终结果形成前出现了脉冲尖峰和低谷;另外也可能部分原因由于电路结构优化的不到位所致

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

一、实验目 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 逻辑图 半加器真值表 A i B i S i C i 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 1

八位加法器设计实验报告

实验四:8位加法器设计实验 1.实验目的:熟悉利用quartus原理图输入方法设计简单组合电路,掌握层次化设计方法。 2.实验原理:一个八位加法器可以由八个全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相接。 3.实验任务:完成半加器,全加器,八位加法器设计,使用例化语句,并将其设计成一个原件符号入库,做好程序设计,编译,程序仿真。 1)编译成功的半加器程序: module h_adder(a,b,so,co); input a,b; output so,co; assign so=a^b; assign co=a&b; endmodule 2)编译成功的全加器程序: module f_adder(ain,bin,cin,cout,sum); output cout,sum;input ain,bin,cin; wire net1,net2,net3; h_adder u1(ain,bin,net1,net2); h_adder u2(.a(net1),.so(sum),.b(cin),.co(net3));

or u3(cout,net2,net3); endmodule 3)编译成功的八位加法器程序: module f_adder8(ain,bin,cin,cout,sum); output [7:0]sum; output cout;input [7:0]ain,bin;input cin; wire cout0, cout1, cout2 ,cout3, cout4,cout5,cout6; f_adder u0(.ain(ain[0]),.bin(bin[0]),.cin(cin),.sum(sum[0]) ,.cout(cout0)); f_adder u1(.ain(ain[1]),.bin(bin[1]),.cin(cout0),.sum(sum[1 ]),.cout(cout1)); f_adder u2(.ain(ain[2]),.bin(bin[2]),.cin(cout1),.sum(sum[2 ]),.cout(cout2)); f_adder u3(.ain(ain[3]),.bin(bin[3]),.cin(cout2),.sum(sum[3 ]),.cout(cout3)); f_adder u4(.ain(ain[4]),.bin(bin[4]),.cin(cout3),.sum(sum[4

半加器和全加器的设计

实验一.半加器,全加器的设计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位二进制全加器的设计

龙岩学院实验报告 班级学号姓名同组人 实验日期室温大气压成绩 实验题目:基于原理图输入法的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位二进制全加器)。

组合逻辑电路设计之全加器半加器

班级姓名学号 实验二组合电路设计 一、实验目的 (1)验证组合逻辑电路的功能 (2)掌握组合逻辑电路的分析方法 (3)掌握用SSI小规模集成器件设计组合逻辑电路的方法 (4)了解组合逻辑电路集中竞争冒险的分析和消除方法 二、实验设备 数字电路实验箱,数字万用表,74LS00, 74LS86 三、实验原理 1 ?组合逻辑概念 通常逻辑电路可分为组合逻辑电路和时序逻辑电路两大类。组合逻辑电路又称组合电路,组合电路的输出只决定于当时的外部输入情况,与电路的过去状态无关。因此,组合电路的 特点是无“记忆性”。在组成上组合电路的特点是由各种门电路连接而成,而且连接中没有反馈线存在。所以各种功能的门电路就是简单的组合逻辑电路。 组合电路的输入信号和输出信号往往不只一个,其功能描述方法通常有函数表达式、真值表,卡诺图和逻辑图等几种。 实验中用到的74LS00和74LS86的引脚图如图所示。 00 四2输入与非门 4B 4A 4Y 3B 3A 3Y 1A 1B 1Y 2A 2B 2Y GND 2?组合电路的分析方法。 组合逻辑电路分析的任务是:对给定的电路求其逻辑功能,即求出该电路的输出与输入之间的关系,通常是用逻辑式或真值表来描述,有时也加上必须的文字说明。分析一般分为

(1)由逻辑图写出输出端的逻辑表达式,简历输入和输出之间的关系。 (2)列出真值表。 (3)根据对真值表的分析,确定电路功能。 3?组合逻辑电路的设计方法。 组合逻辑电路设计的任务是:由给定的功能要求,设计出相应的逻辑电路。 一般设计的逻辑电路的过程如图 (1)通过对给定问题的分心,获得真值表。在分析中要特别注意实际问题如何抽象为几个输入变量和几个 输出变量直接的逻辑关系问题,其输出变量之间是否存在约束关系,从而过得真值表或简化真值表。 (2)通过卡诺图化简或逻辑代数化简得出最简与或表达式,必要时进行逻辑式的变更,最后画出逻辑图。 (3)根据最简逻辑表达式得到逻辑电路图。 四?实验内容。 1?分析,测试半加器的逻辑功能。 (1 )用74LS00组成半加器电路如图所示。写出逻辑表达式,验证逻辑关系。 (2 )用异或门74LS86和74LS00组成半加器,自己画出电路,将测试结果填入自拟表格中, 验证逻辑关系。 所以的卡诺图为:

实验一 半加器设计

实验一半加器设计 一、实验目的 1、了解和学习Quartus II 5.1软件设计平台。 2、了解EDA的设计过程。 3、通过实例,学习和掌握Quartus II 5.1平台下的图形输入法 4、学习和掌握半加器的工作和设计原理。 二、实验仪器 PC机,操作系统为Windows2000/XP,本课程所用系统均为WindowsXP(下同),Quartus II 5.1设计平台。 三、实验原理 加法器是构成算术运算器的基本单元,有来自低位的进位将两个1位二进制数相加,称为半加。实现半加运算的电路叫做半加器。 按照二进制加法运算规则可以列出如表1-1所示的半加器真值表。其中A、B是两个加数,S是相加的和,CO是相加高位的进位。将S、CO、和A、B的关系写成逻 辑表达式如下: S⊕ = + A = A B B B A CO= AB 表1-1 半加器的真值表 四、实验步骤 1、启动Quartus II 5.1:在Windows操作系统下,单击“开始”,选择“程序”,再选择“altera”选项下的“Quartus II 5.1”命令。 2、新建工程:在File菜单中选择New Project Wizard…,弹出对话框如图1-1所示

图1-1 在这个对话框中,第一行是需要你指定项目保存的路径,支持含中文字符的路径,第二行是需要你为这个项目取一个名称,第三行是需要你为这个项目的顶层实体取个名称,如实验不需要使用芯片,这三个设定好后,点击“finish”。(如何使用芯片及各参数设定将在实验3中讲到)出现如下界面

3、新建文件在File菜单中选择New,出现一个对话框如图 1-2 图1-2 选择Block Diaqram/Schematic File ,然后点击“OK”。 图1-3 4、保存文件:选菜单File\Save,在弹出的Save As对话窗口中,指定存放文件类型、 文件夹和文件名。这一步也可以放在图形设计完成后进行。 5、原理图设计输入: (1)元器件符号放置 通过Edit->Insert Symbol插入元器件或点击图板左侧的快捷键Symbol,或双击图板

实验一 半加器和全加器的设计

实验一 半加器和全加器的设计 一、 实验目的 1、掌握图形的设计方式; 2、掌握自建元件及调用自建元件的方法; 3、熟练掌握MAXPLUS II 的使用。 二、实验内容 1、熟练软件基本操作,完成半加器和全加器的设计; 2、正确设置仿真激励信号,全面检测设计逻辑; 3、综合下载,进行硬件电路测试。 三、实验原理 1、半加器的设计 半加器只考虑了两个加数本身,没有考虑由低位来的进位。 半加器真值表: 半加器逻辑表达式:B A B A B A S ⊕=+=;AB C = LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT( A:IN STD_LOGIC; B:IN STD_LOGIC;

SO:OUT STD_LOGIC; CO:OUT STD_LOGIC ); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder IS BEGIN SO <= A XOR B; CO <= A AND B; END ARCHITECTURE fh1; A:60ns B:30ns 2.全加器的设计 全加器除考虑两个加数外,还考虑了低位的进位。全加器真值表:

全加器逻辑表达式: 1-⊕⊕=i i i i C B A S ;AB C B A C i i i i +⊕=-1)( 3、利用半加器元件完成全加器的设计 (1)图形方式 其中HADDER 为半加器元件。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder IS PORT(ain,bin,cin:IN STD_LOGIC; cout,sum:out STD_LOGIC); END ENTITY f_adder; ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder PORT( A:IN STD_LOGIC; B:IN STD_LOGIC;

一位半加器设计与前仿

集成电路课程设计一位半加器设计与前仿 专业:电子科学与技术 学号: 姓名: 指导老师:

一、半加器的电路设计和前仿 1.1熟习schematic 设计环境 1.2掌握半加器电路原理图输入方法 1.3掌握逻辑符号创建方法 1.4熟习电路设计的思想 1.5 熟习集成电路设计仿真工具的使用 1.6 熟习集成电路设计的流程 1.7 熟习集成电路前仿真的设计 一位半加器输入有两个输入端有两个,分别是两个一位二进制数:A 、B ;两个输出端C 代表进位S 表示和。 A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 C=A ∩ B B A B +=A s 三、试验内容和步骤 1.调用cadence 软件 输入icfb 命令调用candence 软件

2.创建模型库与单元视图 1.1在ciw窗口file→new→library,将库文件路径设置在cadence 目录下,name自定义,technology file选第二个;点击file→new →cellview生成单元视图,library name选之前自定义的此处为chen,cell name自定义,viewname设置shcemetic,tool为composer schematic点击ok,就弹出绘制原理图窗口: 快捷键: I,add instance W,add wire P,add pin U,undo M,stretch Del,delete 按照原理图一次添加元件,连线,check and save,无误后进行下一步。

3.创建符号 生成符号 design→create cellview→from cellview弹出cell from cellview窗口,默认设置,ok→ok。这时候会显示一个长方形symbol 符号,将其绘画成反相器的形状,如下图;

8位全加器实验报告

实验1 原理图输入设计8位全加器 一、实验目的: 熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行电子线路设计的详细流程。 二、原理说明: 一个8位全加器可以由8个1位全加器构成,加法器间的进位可以串行方式实现。即将低位加法器的进位输出cout与其相邻的高位加法器的最低进位输入信号cin相接。而一个1位全加器可以按照本章第一节介绍的方法来完成。 三、实验内容: 1:完全按照本章第1节介绍的方法与流程,完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真。 2:建立一个更高的原理图设计层次,利用以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真和硬件测试。 四、实验环境: 计算机、QuartusII软件。 五、实验流程: 实验流程: 根据半加器工作原 理,建立电路并仿 真,并将元件封装。 ↓ 利用半加器构成一位 全加器,建立电路并 仿真,并将元件封 装。 ↓ 利用全加器构成8位全 加器,并完成编译、综 合、适配、仿真。 图1.1 实验流程图

六、实验步骤: 1.根据半加器工作原理建立电路并仿真,并将元件打包。(1)半加器原理图: 图1.2 半加器原理图(2)综合报告: 图1.3 综合报告: (3)功能仿真波形图4: 图1.4 功能仿真波形图

时序仿真波形图: 图1.5 时序仿真波形图 仿真结果分析:sout为和信号,当a=1,b=0或a=0,b=1时,和信号sout为1,否则为0.当a=b=1时,产生进位信号,及cout=1。 (4)时序仿真的延时情况: 图1.6 时序仿真的延时情况 (5)封装元件: 图1.7 元件封装图 2. 利用半加器构成一位全加器,建立电路并仿真,并将元件封装。 (1)全加器原理图如图: 图2.1 全加器原理图

四位全加器

《计算机组成原理》 实验报告 题目:四位全加器的设计与实现 1、实验内容 四位全加器的设计与实现。 2、实验目的与要求 利用MAX+plusII实现四位全加器并且验证实验内容。

3、实验环境 MAX+plus II 10.1 4、设计思路分析(包括需求分析、整体设计思路、概要设计) 一个4位全加器可以由4个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相接。 半加器描述: 5、详细设计 A) 半加器设计: 1)新建一个设计文件,使用原理图设计方法设计。 2)将所需元件全部调入原理图编辑窗,所需元件依次为:input 2个;output 2个;and2 1个;xnor 1个;not 1个。 3)依照下图连接好各元件 4)保存为h-adder将当前设计文件设置成工程文件。 5)编译

B) 一位全加器的实现: 1)一位全加器可以由两个半加器和一个或门连接而成,因而可以根据半加器的电路原理图或真值表写出1位全加器的VHDL描述。. 2)依照以下原理图连接好全加器: 其中有两个原件(h-adder)为刚刚设计好的半加器.其他原件为:input 3个, output 2个, or2 1个. 3)保存为f-adder设置成工程文件并选择目标器件为EPF10K20TC144.4 4)编译 C) 四位全加器的实现 1) 4位全加器可以看做四个1位全加器级联而成,首先采用基本逻辑门设计一位全加器,而后通过多个1位全加器级联实现4位全加器。 2) 依照以下原理图连接好全加器。、

其中有四个元件为一位全加器(f-adder),其余为九个input元件;五个output 元件。、 4)编译通过。 6、实验结果与分析 1)建立波形图进行半加器、一位全加器和四位全加器的波形观察, 2)设定仿真时间为60.0us。 3)运行仿真器得到下面波形图: 半加器:

实验八全加器的设计分析实验报告

实验八全加器的设计分析实验报告 姓名:孙时佳学号:3110102935 专业:计算机科学与技术 课程名称:逻辑与计算机设计基础实验同组学生姓名:无 实验时间:2012-11-6 实验地点:紫金港东4-509 指导老师:蒋方炎 一、实验目的和要求 1.掌握一位全加器的工作原理和逻辑功能 2.掌握串行进位加法器的工作原理和进位延迟 3.掌握超前进位的工作原理 4.掌握减法器的实现原理 5.了解加法器在CPU中的地位 6.掌握FPGA开发平台进行简单的I/O数据交互 二、实验内容和原理 实验内容: 1.实现16位加减器的调试仿真 2. 16位计算器设计 实验原理: 2.1 一位全加器(FA) 全加器是一个能对一位二进制数及来自低位的进位进行相加,产生本位和及向高位进位的逻辑电路。该电路有3个输入变量,分别是2个加数Ai 和Bi,低位进位输入Ci ,2个输出变量,分别是全加和Si,进位输出Ci+1。 一位全加器的逻辑表达式:Si = Ai⊕Bi⊕Ci 、Ci+1=Ai Bi+BiCi+CiAi 图表1:一位全加器真值表

由一位全加器的输入输出关系,得到电路图: 2.2多位串行进位全加器 多位全加器可由一位全加器将进位串接构成。高位进位生成速度慢,每一位的相加结果都必须等到低一位的进位产生以后才能建立起来,所以位数越多时间越长。 module adder_8bits(A, B, Ci, S, Co); // port and variable declaration adder_1bit A1_1(A[1], B[1], Ci, A1_2(A[2], B[2], Ctemp[1], A1_3(A[3], B[3], Ctemp[2], A1_4(A[4], B[4], Ctemp[3], A1_5(A[5], B[5], Ctemp[4], A1_6(A[6], B[6], Ctemp[5], A1_7(A[7], B[7], Ctemp[6], A1_8(A[8], B[8], Ctemp[7], endmodule module adder_32bits(A, B, Ci, S, Co); // port and variable declaration adder_8bits A8_1(A[ 8: 1], B[ 8: 1], Ci, A8_2(A[16: 9], B[16: 9], Ctemp[1], A8_3(A[24:17], B[24:17], Ctemp[2], A8_4(A[32:25], B[32:25], Ctemp[3], endmodule 图表3多位串行进位全加器示意图及代码

组合逻辑电路的设计及半加器、全加器

实验四组合逻辑电路的设计及半加器、全加器 一、实验目的 1.掌握组合逻辑电路的设计与测试方法 2.掌握半加器、全加器的工作原理。 二、实验原理和电路 1、组合逻辑电路的设计 使用中、小规模集成电路来设计组合电路是最常见的逻辑电路。设计 组合电路的一般步骤如图1.4.1所示。 图1.4.1 组合逻辑电路设计流程图 根据设计任务的要求建立输入、输出变量,并列出真值表。然后用逻辑代数或卡诺图化简法求出简化的逻辑表达式。并按实际选用逻辑门的类型修改逻辑表达式。根据简化后的逻辑表达式,画出逻辑图,用标准器件构成逻辑电路。最后,用实验来验证设计的正确性。 1.半加器 根据组合电路设计方法,首先列出半加器的真值表,见表1.4.1。 写出半加器的逻辑表达式 S=AB+AB=A⊕B C=AB 若用“与非门”来实现,即为 半加器的逻辑电路图如图1.4.2所示。 在实验过程中,我们可以选异或门74LS86及与门74LS08实现半加器的逻辑功能;也可用全与非门如74LS00反相器74LS04组成半加器。

(a)用异或门组成的半加器 (b )用与非门组成的半加器 图1.4.2 半加器逻辑电路图 2.全加器 用上述两个半加器可组成全加器,原理如图1.4.3所示。 图1.4.3由二个半加器组成的全加器 表1.4.2 全加器逻辑功能表 表1.4.1 半加器逻辑功能 三、实验内容及步骤 1.测试用异或门(74LS86)和与非门组成的半加器的逻辑功能。 根据半加器的逻辑表达式可知,相加的和Y 是A 、B 的异或,而进位Z 是A 、B 相与,故半加器可用一个集成异或门和二个与非门组成如图1.4.4。 图1.4.4 用一个集成异或门和二个与非门组成半加器 ⑴ 在实验仪上用异或门和与门接成以上电路。A 、B 接逻辑开关,Y 、Z 接发光二极管显示。 ⑵ 按表1.4.3要求改变A 、B 状态,将相加的和Y 和进位Z 的状态填入下表中。 表1.4.3 ⑴写出图1.4.5电路的逻辑表达式。S i = C i = ⑵根据逻辑表达式列真值表,并完成表1.4.4,实验证之。 ⑶根据真值表画逻辑函数SiCi 的卡诺图。完成图1.4.6

相关文档
相关文档 最新文档