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

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

一、实验目的

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;

结果如下:

相关文档
最新文档