全减器

全减器
全减器

南昌大学实验报告

学生姓名: 学 号: 专业班级: 实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩:

实验一 一位二进制全减器设计

(一)实验目的

1.熟悉PH-1V 型实验装置和Quartus Ⅱ软件的使用;

2.熟悉和掌握EDA 设计流程;

3.学习简单组合的EDA 设计;

4.学习PH-1V 型实验装置上发光二极管和按键的使用方法。 设计要求

1.完成设计、仿真、调试、下载、硬件测试等环节,在PH-1V 型EDA 实验装置上实现一位二进制全加/减器功能,具体要求如下:

2.设置一个按键控制改变加/减模式,另用按键输入作为运算输入,发光二极管作为运算输出。 (二)主要仪器设备 1.微机

1台

2.QuartusII 集成开发软件 1套

3.PH-1V 型EDA 实验装置

1套

(三)实验总体设计

根据下面的真值表,用变量m 来作为控制键,m=0时进行全加器功能,m=1时进行全减器功能。VHDL 语言描述,采用if m=0,if=1,两个情况,两者根据各自的真值表采用case when 语句即可。 一.全减器真值表 ai 为被减数; bi 为减数;

ci 为低位向本位的借位; so 为本位向高位的借位; co 为本位;

(四)实验重难点设计

用文本输入法设计全加全减器

(1) 打开Quartus II 软件,进入编辑环境。

(2) 创建新的文本文件,命名为updown ,根据其真值表写出相应的语句如下: library ieee;

输入 输出 ai bi ci so co 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1

1

1

1

1

use ieee.std_logic_1164.all;

entity updown is

port(ai,bi,ci,m:in std_logic;

so,co:out std_logic);

end entity updown;

architecture one of updown is

signal abc:std_logic_vector(2 downto 0);

begin

abc<=ai&bi&ci;

process(abc)

begin

if m='0' then

case abc is

when "000"=>so<='0';co<='0';

when "001"=>so<='1';co<='0';

when "010"=>so<='1';co<='0';

when "011"=>so<='0';co<='1';

when "100"=>so<='1';co<='0';

when "101"=>so<='0';co<='1';

when "110"=>so<='0';co<='1';

when "111"=>so<='1';co<='1';

when others=>null;

end case;

end if;

if m='1' then

case abc is

when "000"=>so<='0';co<='0';

when "001"=>so<='1';co<='1';

when "010"=>so<='1';co<='1';

when "011"=>so<='1';co<='0';

when "100"=>so<='0';co<='1';

when "101"=>so<='0';co<='0';

when "110"=>so<='0';co<='0';

when "111"=>so<='1';co<='1';

when others=>null;

end case;

end if;

end process;

end one;

3.对照引脚绑定表,绑定好引脚,下载到实验芯片中,进行硬件测试。4.Updown的仿真结果如下:

(五)实验结果

对照仿真波形图和真值表可以确定a=0,b=0,c=0时,co=0,so=0;

a=0,b=0,c=1时, co=1,so=1;

a=0,b=1,c=0时, co=1,so=1;

a=0,b=1,c=1时, co=1,so=0;

a=1,b=1,c=1时, co=1,so=1;

a=1,b=1,c=0时, co=0,so=0;

a=1,b=0,c=0时, co=0,so=1;

a=1,b=0,c=1时, co=0,so=0;

实验与真值表一致说明实验成功。

(五)实验体会和对实验的改进

通过本实验使我熟悉Quartus II的实用方法和用软件设计元件的基本过程。在实验过程中遇到多一些问题如:下载测试步骤中出现的问题(像下载不了)。仿真时波形有延时和毛刺现象都属于正常现象,是对真实环境的模拟。

实验要做好预习工作,并保留好预习报告,实验完后及时完成实验报告,因为这样自己在写实验报告时能进行的更加准确更加高效。同时通过自己暑假来对电子通信专业的学习了解,让自己的学习态度和学习方法大有改进,通过各EDA 实验项目设计的挑战,让自己更加懂得学习的意义和学习的精神。

实验还可以将输出结果由发光二极管改为数码管显示,从而更好更直观的验证实验结果。

半加器和全加器及其应用

实验二半加器和全加器及其应用 一、实验目的 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)真值表

四位二进制全加全减器

数字逻辑设计及应用课程设计报告

组合逻辑设计 题目:使用74LS83构成4位二进制全加\全减器。 具体要求:1)列出真值表; 2)画出逻辑图; 3)用Verilog HDL 进行仿真; 1.设计思路及原理分析 全加器是除本位数字相加外,还考虑进位输入和进位输出的加法器,全减器同理,考虑借位输入和借位输出。本次主要应用74LS83来实现设计要求,74LS83是四位二进制先行进位加法器,可以直接接入输入获得全加器,所以设计重点在于四位全减器的设计。 对于串行进位加法器,可略加改进获得相应的减法器,基本原理如下式: 2'2'2'2'[]s s s s X Y X Y -=+- '2'2[]2n s s Y Y -=- 这里利用了补码的基本性质,具体实现时可以将减数逐位取反,然后最低位加1。又因为全加器时in C 为为进位输入,全减器时应变为借位输入,所以要减去in C ,且全加器的输出端out C 为进位输出,而全减法器应该输出借位输出,而进位输出与借位输出恰好是反向的关系,所以将0S 取反后即得到全减器的借位输出out B ,据此,可以在全加器的基础上设计全减器。

其中表中输出部分上行为全加输出,下行为全减输出。 2 逻辑电路图 3 电路实现和仿真 3.1 verilog HDL设计代码如下: module add(s,out,a,b,in,EN); output[0:3] s; output out; input[0:3] a,b; input in; input EN; reg out; reg[0:3] s,c; always@(*) if (EN==0) begin {out,s}=a+b+in; end else begin c=10000-b; {out,s}=a+c-in; out=~out; end endmodule 3.2 仿真波形图

一位全减器

实验一 1位二进制全减器设计 一、实验目的 1.熟悉Quartes II集成开发软件的使用; 2.初步熟悉PH-1V型实验装置的使用; 3 . 学习用原理图输入法和文本输入法进行简单的数字电路设计,掌握系统仿真,学会分析硬件测试结果。 二、实验内容与要求 1.采用原理图输入法和文本输入法分别实现,分层设计,底层由半减器(也用原理图输入法)和逻辑门组成; 2.建立波形文件,并进行系统仿真,用软件验证设计结果; 3. 在仿真正确的情况下,对1位二进制半加/减器分别下载到实验箱中做硬件测试 三、实验原理及设计思路 根据一位二进制全减器的工作原理,可得其真值表为(如下:cin表示低位向本位借位。cout 表示本位向高位借位)

由EDA教程中全加器的顶层设计描述及半加器调用可类比到全减器的设计,可由先对半减器进行描述,然后进行两次调用。半减器的工作时的逻辑表达式为:so=a XOR b ;co=(NOT a)AND b 四、实验程序(程序来源:EDA技术实验教程) LIBRARY IEEE ; ——或门逻辑描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS PORT (a, b :IN STD_LOGIC; c : OUT STD_LOGIC ); END ENTITY or2a; ARCHITECTURE one OF or2a IS BEGIN c <= a OR b ; END ARCHITECTURE one; LIBRARY IEEE; ——半减器描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_suber IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC);

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

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

组合逻辑课程设计4位二进制全加器全减器原创

组合逻辑电路课程设计—— 4位二进制全加器/全减器 作者: 学号: 课程设计题目要求: 1)使用74LS283构成4位二进制全加/全减器。 2)阐述设计思路。 3)列出真值表。 4)画出设计的逻辑图。 5)用VHDL对所画电路进行仿真。 目录 摘要 (2) 1总电路设计 (3) 1.1硬件电路的设计 (3) 1.2全加器(full-adder ) (3) 1.2.1四位二级制加法器 (5) 1.2.1.1串行进位加法器 (5) 1.2.1.2超前进位加法器 (6) 1.2.1.3超前位链结构加法器 (6) 1.3全减器(full-substracter ) (7)

1.4总电路设计 (8) 2设计思路 (9) 2.1全加器 (9) 2.2全减器 (9) 3真值表 (10) 4逻辑图与仿真 (12) 5软件程序的设计 (16) 6结果分析与总结 (19) 摘要 加法器是数字系统中产生数的和的装置。加数和被加数为输入,和数与进位为输出的装置为半加器。若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。例如:为了节省资源,减法器和硬件乘法器都可以用加法器来构成。但宽位加法器的设计是很耗资源的,因此在实际的设计和相关饿得设计与开发中需要注意资源的利用率和进位速度两方面的问题,多位加法器的构成主要有两种:并行进位和串行进位。并行进位加法器设有并行进位产生逻辑,运行速度比串行进位快;串行进位是将全加器采取并行级联或菊花链式级联构成多位加法器。加法器也是常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用。此外还可以用来表示各种数值,如:BCD、加三码,主要的加法器是以二进制作运算。 本文将采用4位二进制并行加法器作为折中选择,所选加法器为74LS283,74LS283是4位二进制先行进位的加法器,它只用了几级逻辑来形成和及进位输出,故由其构成4位二进制全加器;而四位全减器可以用加法器简单的改造而来,最后本文采用 VHDL对四位全加器/全减器进行仿真。 关键字 74LS283全加器、四位二进制、迭代电路、并行进位、串行进位、VHDL

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

《数字电子技术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

一位全加全减器的实现

课程实验报告课程名称:数字电路与逻辑设计 专业班级:计实1001班 学号:U201014488 姓名:王宸敏 指导教师:唐九飞 周次:第九周 同组人员:熊凯 报告日期:2012年4月18日

计算机科学与技术学院 【内容A 】 一、 实验名称 一位全加/全减器的实现 二、 实验目的 1. 掌握组合逻辑电路的功能测试 2. 验证半加器和全加器的逻辑功能 3. 学会二进制数的运算规律 三、 实验所用仪器和组件 1. 二输入四“与非”门1片,型号为74LS00 2. 三输入三“与非”门1片,型号为74LS10 3. 二输入四“异或”门1片,型号为74LS86 四、 实验设计方案及逻辑图 首先根据真值表得到了其卡诺图如下所示: 根据输入与输出写出全加/减法器的函数表达式,如下: 实现全加法器的表达式: in in in in O in BC AC AB BC AC AB C C B A S M ??=++=⊕⊕==时,0; 实现全减法器的表达式: in in in in O in BC C A B A BC C A B A C C B A S M ??=++=⊕⊕==时,1 .

由表达式可知:S采用异或的逻辑门而Co则采用与非的逻辑门得到,因此画出逻辑图如下: 五、实验记录 六、描述实验现象,并运用所学的知识进行分析、处理及讨论 1.在m=0时,在输入端输入三个电平时,输出实现了全加器的功能,即把三个输入当作 被加数、加数和低位的进位,同时两个输出分别表示了和与低位的进位。 2.在m=1时,在输入端输入三个电平时,输出实现了全减器的功能,即把三个输入当作 被减数、减数和低位的借位,同时两个输出分别表示了差与高位的借位。 因为电路的设计是根据真值表的结果得到的,通过真值表画出卡诺图从而的到输出关于输入的表达式,因此他所实现的功能正是我们所需要的全加器与全减器的功能,只不过是通过逻辑门进行了处理,得到的是正确的值。

半加半减器 全加全减器

实验六 半加半减器与全加全减器 一、实验目的 1.掌握了解74LS00,74LS86芯片的内部结构和逻辑功能。 2.根据真值表连接电路实现半加半减器、全加全减器的逻辑功能。 3.了解算术运算电路的结构。 二、实验设备 74LS00(二输入端四与非门)、74LS86(二输入端四异或门)、数字电路实验箱、导线。 74LS00引脚图 74LS86引脚图 三、实验原理 加法器成为计算机中最基本的运算单元。半加器是实现半加操作,只考虑两个加数本身,没有考虑低位来的进位。其逻辑表达式是 B A B A B A S ⊕=+=; AB C =。全加器是能进行加数、被加数和低 位来的进位信号相加,并根据求和的结果给出该位的进位信号。其逻辑表达式是-⊕⊕=I I I I C B A S ; I I I I I I B A C B A C +⊕=-1)(。 74LS00是二输入端四与非门,74LS86是二输入端四异或门。

四、实验内容 以小灯的灭与亮分别代表输出状态的0状态与1状态;以开关的断开与闭合分别代表输入状态的0状态与1状态。 1.用74LS00、74LS86实现半加半减器功能 设计电路:输入端有三个M 、A 、B ,输出端有两个S 、I C 。当M=0时实现半加器A+B 的功能;当M=1时实现半减器A-B 的功能。A 为被加数,B 加数,S 为半加和,I C 为向高位的借位。真值表: 功能 M A B S I C 半 加 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 半 减 1 0 0 0 0 1 0 1 1 1 1 1 0 1 0 1 1 1 使用卡诺图化简得到:B A B A B A S ⊕=+=; )(M A B M AB BM A C I ⊕=+=。 2.用74LS00、74LS86实现全加全减器功能 设计电路:当M=0时实现全加器的逻辑功能;当M=1时实现全

EDA实验报告实验一:一位二进制全减器的设计

实验一、一位二进制全减器的设计 一、实验目的: (1)掌握Quartus II 的VHDL 文本设计的全过程; (2)熟练和掌握EDA设计流程;熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果。 (3)学习PH-1V型实验装置上发光二极管和按键的使用方法。 二、实验内容与要求: (1)用文本方法实现半减器,再利用半减器完成全减器的设计,熟悉层次设计概念; (2)给出此项设计的仿真波形; (3)选择实验电路NO.1验证, 用发光管指示显示结果。 三、设计原理: (1)半减器真值表: xx yy Diff1 S_out1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 (表中Diff1表示本位向高位的借位,S_out1表示本位) (2)全减器真值表: x y Sub_in diffr Sub_out 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 (表中Sub_in表示低位向本位的借位,diffr表示本位向高位的借位,Sub_out表示本位) 四、实验程序: (1)对半减器进行描述:

(2)对全减器进行原理图编辑: 五、实验步骤: 1.建立工作库文件夹和编辑设计文件 (1)在D盘下建立一个文件夹保存工程文件; (2)打开QuartusII,建立新的VHDL文件,再打开的页面下输入程序。 2.编译过程 (1)输入完程序之后逐个编译 (2)逐个编译无错之后进行全程编译 3.系统仿真 (1)建立新的波形激励文件 (2)在波形编辑器窗口添加节点 (3)通过Edit->End Time 来设定仿真结束时间 (4)点击save保存 (5)通过Tools下的Simulator Tools项进行仿真,然后观察输出波形。 4.引脚锁定 (1)通过Assignment->Assignment Editor->Pin查找到所有的引脚 (2)选择各个输入输出信号来锁定到不同引脚,进行全编译。 5.编程下载

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

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

用quartusⅡ设计一个四位二进制全减器

EDA技术与VHDL作业 作业名称用quartusⅡ设计一个四位二进制全减器 学生姓名邹运 班级电技122 学号2012301030230 任课教师吴君鹏 完成时间2014.3.22

用VHDL语言编写如下: library ieee; use ieee.std_logic_1164.all; entity quanjian is port(a,b,c:in std_logic; sout,jout:out std_logic); end; architecture one of quanjian is signal abc:std_logic_vector(2 downto 0); begin abc<=a&b&c; process(abc) begin case abc is when"000"=> sout<='0';jout<='0'; when"001"=> sout<='1';jout<='1'; when"010"=> sout<='1';jout<='1'; when"011"=> sout<='0';jout<='1'; when"100"=> sout<='1';jout<='0'; when"101"=> sout<='0';jout<='0'; when"110"=> sout<='0';jout<='0'; when"111"=> sout<='1';jout<='1'; when others=>null; end case; end process; end one; library ieee; use ieee.std_logic_1164.all; entity quanjian4 is port(a11,a12,a13,a14,b11,b12,b13,b14:in std_logic; s1,s2,s3,s4,j4:out std_logic); end; architecture two of quanjian4 is signal d,e,f:std_logic; component quanjian port(a,b,c:in std_logic; sout,jout:out std_logic); end component; begin u1:quanjian port map(a=>a14,b=>b14,c=>'0',jout=>d,sout=>s4); u2:quanjian port map(a=>a13,b=>b13,c=>d,jout=>e,sout=>s3); u3:quanjian port map(a=>a12,b=>b12,c=>e,jout=>f,sout=>s2); u4:quanjian port map(a=>a11,b=>b11,c=>f,jout=>j4,sout=>s1); end two;

采用VHDL层次化文件设计一个一位全减器

采用VHDL层次化文件设计一个一位全减器 一、实训目的 1.巩固编译、仿真VHDL文件的方法。 2.掌握在Quatrus Ⅱ中使用自定义库和程序包的方法。 二、实训器材 计算机与Quartus Ⅱ工具软件。 三、实训指导 (一)实训原理 一位全减器的真值表如表3-1所示: 表3-1 一位全减器的真值表 (二)实训步骤 1.设计输入VHDL文件 (1)设计输入底层文件my_package.vhd。 (2)设计输入顶层文件fullsub_work.vhd。 以fullsub_work为工程文件夹,fullsub_work.vhd为顶层文件新建的一个工程项目,把my_package.vhd文件添加到工程中。执行Project→Add/Remove Files in Project…把my_package.vhd文件添加到工程下。 VHDL代码如下:

my_package.vhd文件代码如下: PACKAGE my_package IS PROCEDURE halfsub (SIGNAL a,b:IN BIT; SIGNAL s,c:OUT BIT); PROCEDURE orgate (SIGNAL a1,b1:IN BIT; SIGNAL o1:OUT BIT); END my_package; PACKAGE BODY my_package IS PROCEDURE halfsub (SIGNAL a,b:IN BIT; SIGNAL s,c:OUT BIT) IS BEGIN s<=a XOR b AFTER 10 ns; c<=(NOT a) AND b AFTER 10 ns; END PROCEDURE halfsub; PROCEDURE orgate (SIGNAL a1,b1:IN BIT; SIGNAL o1:OUT BIT) IS BEGIN o1<=a1 OR b1; END PROCEDURE orgate; END my_package; fullsub_work.vhd文件代码如下: USE WORK.my_package.ALL; ENTITY fullsub_work IS PORT(i1,i2,c_in:IN BIT; fs,c_out:OUT BIT); END fullsub_work; ARCHITECTURE a OF fullsub_work IS SIGNAL temp_s,temp_c1,temp_c2:BIT; BEGIN U0:halfsub(i1,i2,temp_s,temp_c1); U1:halfsub(temp_s,c_in,fs,temp_c2); U2:orgate(temp_c1,temp_c2,c_out);

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

实验四组合逻辑电路的设计及半加器、全加器 一、实验目的 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

课程设计---4位二进制全加器全减器

组合逻辑电路课程设计之—— 4位二进制全加器/全减器 课程设计题目要求: 使用74LS283构成4位二进制全加\全减器。 具体要求:1)列出真值表; 2)画出逻辑图; 3)用Verilog HDL进行仿真。

摘要 加法器是数字系统中的基本逻辑器件。例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面问题。多为加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运行速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行加法器的资源占用差距也会越来越大。 本文将采用4位二进制并行加法器作为折中选择,所选加法器为74LS283,74LS283是4位二进制先行进位加法器,它只用了几级逻辑来形成和及进位输出,由其构成4位二进制全加器;而四位的全减器可以用加法器简单的改造而来。采用Verilog HDL对四位的全加器-全减器进行仿真。 关键字 74LS283,全加器,并行进位,串行进位,全减器,Verilog HDL仿真 总电路设计 一、硬件电路的设计 该4位二进制全加器以74LS283(图1)为核心,采用先行进位方式,极大地提高了电路运行速度,下面是对4位全加器电路设计的具体分析。 图1

1)全加器 全加器是针对多于一位的操作数相加,必须提供位与位之间的进位而设计的一种加法器,具有广泛而重要的应用。其除有加数位X和Y,还有来自低位的进位输入CIN,和输出S(全加和)与COUT(送给高位的进位),满足下面等式: CIN Y CIN X Y X COUT CIN Y X CIN Y X N CI Y X N CI Y X CIN Y X S ? + ? + ? = ? ? + ?' ?' +' ? ?' +' ?' ? = ⊕ ⊕ = 其中,如果输入有奇数个1,则S为1;如果输入有2个或2个以上的1,则 COUT为1。实现全加器等式的电路如图3所示,逻辑符号见下 图2 图3

实验一:一位二进制全减器设计

南昌大学实验报告 学生姓名:刘志强学号: 6100409222 专业班级:电子091班 实验类型:验证□综合□设计■创新□实验日期:实验成绩: 实验一一位二进制全减器设计 一、实验目的 (1)掌握QuartusII的VHDL原理图设计和文本设计全过程; (2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果。 二、实验内容与要求 (1)设计一个二进制全减器,用分层设计方法,顶层为全减器,底层为半减器和逻辑门组成; (2)进行波形仿真,并分析仿真波形图; (3)下载测试全减法器是否正确。 三、设计思路/原理图 一位全减器可以由两个半减器和一个或门连接而成,根据半减器真值表对半减器进行描述,再对或门的VHDL描述,而后根据原理图对全减器的VHDL描述。 图1 全减器f_suber电路图 四、实验程序(程序来源:教科书本) library ieee; --半减器描述 use ieee.std_logic_1164.all; entity h_suber is --定义半减器h_suber实体 port(a,b:in std_logic; do,vo:out std_logic); end entity h_suber; architecture fs1 of h_suber is signal abc:std_logic_vector (1 downto 0); begin abc <= a&b ; process (abc) begin case abc is

when "00" => do<='0';vo<='0'; when "01" => do<='1';vo<='1'; when "10" => do<='1';vo<='0'; when "11" => do<='0';vo<='0'; when others => null; end case; end process; end architecture fs1; library ieee; --一位二进制全减器顶层设计描述 use ieee.std_logic_1164.all; entity f_suber is --定义全减器f_suber实体 port (ain,bin,cin:in std_logic; v,sub:out std_logic); end entity f_suber; architecture fs of f_suber is component h_suber ---调用半减器声明语句 port (a,b:in std_logic; do,vo:out std_logic); end component; component or2a --调用或逻辑门声明语句 port (m,n:in std_logic; h:out std_logic); end component; signal e,f,g:std_logic; ---定义3个信号作为内部的连接线 begin u1:h_suber port map(a=>ain,b=>bin,do=>e,vo=>f); ---例化语句 u2:h_suber port map(a=>e,b=>cin,do=>sub,vo=>g); u3:or2a port map(m=>g,n=>f,h=>v); end architecture fs; 五、实验步骤 1. 利用Quartus II 7.2建立工程 在file中打开【】→【】→在【】中选 择存放的目录→【】f_suber要与顶层文件中entity f_suber相同→点击next→点击next→选择芯片→next完成; 再在file下面点【】→【】→点击ok→编写程序→编译 并保存在f_suber文件中(改动程序后,再保存,再编译)→管脚【】→ 【】→而后对芯片设置,即打开device→点【】→点 【】与【】→选如【】与【】→选芯片→确定ok ; 重新编译→点下载,后选【】硬件有“JTAG【】”和“ASP 【】手动添加以扩展名为.pof的文件【】”两个接口其一(要看硬

完整四位全加全减器设计

四位全加全减器设计 一.实验目的 1熟悉在max+plus II 的环境下设计数字电路的步骤和方法 2学习使用vhdl语言,进行设计数字电路的RTL级电路 3通过max+plus II 软件中对自行设计的电路的仿真,加深对数字电路设计的理解。二.实验原理 1.功能描述 输入:select,Ci, A, B 输出:S,Co Select=0时,S为全加器的求和位(A+B),Co为全加器的高位进位。Ci为全加器低位进位。Select=1时,S为全减器的求差位(A-B),Co为全减器的高位借位。Ci为全减器低位借位。 2.一位全加全减器真值表: 输入输出 Select Ci A B S Co 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 3.逻辑化简 由真值表得

S=A○十B○十Ci=((A○十Select)○十B○十Ci)○十Select Co=(A○十Select)B+Ci((A○十Select)+B)=((A○十Select)○十B)Ci+(A○十Select)B 对于半加器的逻辑表达式为:S=A○十B Co=AB 综上,一位全加全减器可由两个半加器,两个异或门和一个或门组成。 4.毛刺的产生与消除 组合逻辑电路由于输入到输出各端的延时不同,在输出端稳定之前会产生错误的输出。在本电路中,由于低位的进位或借位传输到输出的时间比其他信号传输的延时要长,因此当低位产生进位或借位时会出现错误的输出。 一种常见的方法是利用D触发器的D输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输入输出信号。由组合逻辑电路的最大延时Td为16.7ns,D触发器的时钟周期T应略大于Td,取20ns。 三.电路原理图设计及vhdl代码 1.D触发器vhdl文件 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY dff IS PORT ( CLK: IN STD_LOGIC; D:in std_logic; Q: OUT STD_LOGIC ); END dff; ARCHITECTURE behav OF dff IS begin process(clk) begin if clk'event and clk='1'then q<=d; end if; end process; end architecture behav; 2.半加器vhdl文件 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity half_adder is port ( a,b :in bit; c,sum:out bit); end half_adder; architecture adder of half_adder is begin c<=a and b; sum<=a xor b;

基础实验二、组合逻辑电路(半加器全加器及逻辑运算)

基础实验二、组合逻辑电路(半加器全加器及逻辑运算) 一、实验目的 1.掌握组合逻辑电路的功能侧试。 2.验证半加器和全加器的逻辑功。 3.学会二进制数的运算规律。 二、实验仪器及材料 器件 74LS00 二输入端四与非门 3片 74LS86 二输入端四异或门 1片 74LS54 四组输入与或非门 1片 三、预习要求 1.预习组合逻辑电路的分析方法。 2.预习用与非门和异或门构成的半加器、全加器的工作原理。 3.预习二进制数的运算。 四、实验内容 1.组合逻辑电路功能测试。 (1)用2片74 LS00组成图2. 1所示逻辑电路,为便于接线和检查,在图中要注明芯片编号及各引脚对应的编号。 (2)图中A、B、C接电平开关,接发光管电平显示。 (3)按表要求,改变A、B、C的状态填表并写出逻辑表达式。 (4)将运算结果与实验比较。 2.测试用异或门(74LS86)和与非门组成的半加器逻辑功能。 根据半加器的逻辑表达式可知,半加器Y是A、B的异或,而进位Z是A、B相与,故半加器可用一个集成异或门和二个与非门组成如图。

(1)在学习机上用异或门和与门接成以上电路.A、B接电平开关,Z 接电平显示。 (2)按表要求改变A、B状态,填表。 3.测试全加器的逻辑功能 (1)写出图2.3电路的逻辑表达式。 (2)根据逻辑表达式列真值表。 (3)根据真值表画逻辑函数S i、C i的卡诺图。

(5)按原理图选择与非门并接线进行测试,将测试结果记入表,并与上表进行比较看逻辑功能是否一致 4.测试用异或、与非和非门组成的全加器的逻辑功能。 全加器可以用两个半加器和两个与门一个或门组成,在实验中,常用一块双异或门、一个与或门和一个与非门实现。 (1)画出用异或门、与或非门和非门实现全加器的逻辑电路图,写出逻辑表达式。

电子技术基础实验报告-全加减器设计

《电子技术基础实验报告》 实验名称:组合逻辑电路设计 1、实验名称: 全加/减器设计与仿真 2、实验设计要求以及内容: 全加器要求两个二进制数相加时,要考虑低位进位的相加。并输出本位计算结果和高位进位结果。全减器是两个二进制的数进行减法运算时使用的一种运算单元,采用本位结果和借位来显示,二进制中是借一当二,所以可以使用两个输出变量的高低电平变化来实现减法运算。 3、实验具体设计: 本实验采用行为描述方式编写描述全加/减器具体功能的Verilog HDL语句。通过使用case语句和if语句组合对真值表中的各种情况进行描述来实现全加/减器的功能。通过改变输入信号T的电平来决定使用全加器还是全减器。当T输入低电平时为全加器,当T输入为高电平时为全减器。 下图为全加/减器的真值表:在全加器的输入输出中A为被加数、B为加数、Ci为低位进位数、S为本位和数、Co为向高位进位数。在全减器的输入输出中A为被减数、B为减数、Ci表示低位是否向本位借位、S为本位最终运算结果、Co表示本位是否向高位借位。 具体设计语句如下: module ck1701wdh(T,A,B,Ci,Co,S); input A,B,Ci,T; reg Co,S; output Co,S; always @ (A or B or Ci or T) if(T==0)//当T输入为低电平时调用全加器 begin//以下为设计全加器的verilog语言 case({A,B,Ci})//根据A、B、Ci的输入信号分别改变S、Co的输出电平 3'd0: begin S=0; Co=0; end 3'd1: begin S=1; Co=0; end 3'd2: begin S=1; Co=0; end 3'd3: begin S=0; Co=1; end 3'd4: begin S=1; Co=0; end 3'd5: begin S=0; Co=1; end 3'd6: begin S=0; Co=1; end 3'd7: begin S=1; Co=1; end default: begin S=0; Co=0; end endcase end else//当T输入为高电平时调用全减器

一位全减器实验报告

南昌大学实验报告 学生姓名:蔡斌学号:6100208099 专业班级:电子083班 实验类型:□验证□综合□设计□创新实验日期:2010.10.14 实验成绩: 实验一一位二进制全减器的设计 一、实验目的 (1)掌握Quartus II 的VHDL 文本设计的全过程; 熟练和掌握EDA设计流程;熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果。 二、实验内容与要求 用文本方法实现半减器,再利用半减器完成全减器的设计,熟悉层次设计概念; 给出此项设计的仿真波形; 用发光管指示显示结果。 三、设计原理 (表中Diff表示本位向高位的借位,S_out表示本位) (表中Sub_in表示低位向本位的借位,diffr表示本位输出,Sub_out表示本位向高位借位) 四、实验程序 (1)对半减器进行描述:(独立编写) library ieee;

use ieee.std_logic_1164.all; entity h_suber is port(x,y:in std_logic; diff,s_out:out std_logic); end entity h_suber; architecture one of h_suber is begin diff<=x xor y; s_out<=(not x)and y; end architecture one; (2)对全减器进行原理图编辑: 五、实验步骤 1.建立工作库文件夹和编辑设计文件 (1)打开QuartusII,按提示在D盘下建立一个工程文件夹; (2)建立新的VHDL文件,再打开的页面下输入半减器描述语言。 2.编译过程 (1)输入完程序之后选择“保存”,然后processing—analyze current files进行语法检查和分析。 (2)逐个编译无错之后进行全程编译processing—start—compilation。 3.系统仿真 (1)建立新的波形文件 (2)在波形编辑器窗口添加节点 (3)通过Edit->End Time 来设定仿真结束时间 (4)点击save保存 (5)通过Tools下的Simulator Tools项进行仿真,然后观察输出波形。 4.引脚锁定 (1)通过Assignment->Assignment Editor->Pin查找到所有的引脚 (2)选择各个输入输出信号来锁定到不同引脚,进行全程编译。 5.编程下载 (1)选择Tools->Programmer菜单,点击Hardware Setup窗口完成硬件设置 (2)点击Start开始编程下载 六、仿真波形分析

相关文档
最新文档