文档库 最新最全的文档下载
当前位置:文档库 › 一位全减器

一位全减器

一位全减器
一位全减器

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

一、实验目的

1.熟悉Quartes II集成开发软件的使用;

2.初步熟悉PH-1V型实验装置的使用;

3 . 学习用原理图输入法和文本输入法进行简单的数字电路设计,掌握系统仿真,学会分析硬件测试结果。

二、实验内容与要求

1.采用原理图输入法和文本输入法分别实现,分层设计,底层由半减器(也用原理图输入法)和逻辑门组成;

2.建立波形文件,并进行系统仿真,用软件验证设计结果;

3. 在仿真正确的情况下,对1位二进制半加/减器分别下载到实验箱中做硬件测试

三、实验原理及设计思路

根据一位二进制全减器的工作原理,可得其真值表为(如下:cin表示低位向本位借位。cout 表示本位向高位借位)

ain bin cin cout sum

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

由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);

END ENTITY h_suber;

ARCHITECTURE fh1 OF h_suber is

BEGIN

so <= a xor b ;

co <= (not a )AND b ;

END ARCHITECTURE fh1;

LIBRARY IEEE; ——1位二进制全减器顶层设计描述

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY f_suber IS

PORT (ain,bin,cin : IN STD_LOGIC;

cout,sum : OUT STD_LOGIC );

END ENTITY f_suber;

ARCHITECTURE fd1 OF f_suber IS

COMPONENT h_suber ——调用半减器声明语句

PORT ( a,b : IN STD_LOGIC;

co,so : OUT STD_LOGIC);

END COMPONENT ;

COMPONENT or2a ——调用或门声明语句

PORT (a,b : IN STD_LOGIC;

c : OUT STD_LOGIC);

END COMPONENT;

SIGNAL d,e,f : STD_LOGIC; ——定义3个信号作为内部的连接线BEGIN

u1 : h_suber PORT MAP(a=>ain,b=>bin,

co=>d,so=>e); ——例化语句

u2 : h_suber PORT MAP(a=>e, b=>cin,

co=>f,so=>sum);

u3 : or2a PORT MAP(a=>d, b=>f,c=>cout);

END ARCHITECTURE fd1 ;

五、实验步骤:

1.打开Quartes II软件,建立工程文件,注意工程名要与实体名一致:

2、打开QuartusII,选择菜单File->New->VHDL.File,建立vhdl文件,将以上程序输入并进行编译;

3、建立波形文件,并进行系统仿真,注意设置仿真结束时间以及添加结点;

在Simulator Mode选择Functional,仿真表生成后点击Start开始仿真,完成后点击Report结果

如下图所示;

5、引脚锁定,及设置流程

对各管脚进行分配,将ain分配给53,bin分配给54,cin分配给55。sum分配给208,Cout分配给206。选择菜单Assignment->Assignment Editor->Pin 窗口,选择菜单View->Show All Knowm Pin Names 进行引脚设置:

7、用下载线将计算机并口和实验箱上的JTAG口连接起来,接通电源;选择tool->programmer菜单,打开programmer窗口,在Mode中选择JTAG,选择好硬件设置,然后进行下载:

8、原理图输入法只需在第2步中建立Block Diagrame/Schematic File,然后输入上述原理图,选择菜单File->create symbol file for current file项,将其变成元件符号存盘,在做全减器原理图时进行调用:

半减器原理图:

全减器原理图:

六、硬件测试结果

在硬件试验箱上,按照真值表的值给出高、低电平,最后在LED8、LED7观察其亮灭情况,符合高电平亮,低电平灭的规律,表明实验成功。通过实验结果与真值表相符,实验成功。

七、实验心得

实验前,一定要做好实验预习,写好实验报告,事前写好设计项目的VHDL设计文件.

熟悉实验箱的用法,对实验设计过程的各个步骤要做到心中有数,遇到不理解的地方,一定要向同学或老师问清楚,明确各个具体的操作步骤和详细的过程.熟悉EDA设计的完整流程.仔细思考可能出现和已经出现的问题,独立解决.比如下载出现异常,如何处理.实验的时候出现这种情况,经过检查发现是接口有问题,更换后,能成功的下载和进行硬件测试,得到正确的结果.在此过程,做好引脚设置也是关键.

四位二进制全加全减器

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

组合逻辑设计 题目:使用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);

组合逻辑课程设计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

半加半减器 全加全减器

实验六 半加半减器与全加全减器 一、实验目的 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时实现全

一位全加全减器的实现

课程实验报告课程名称:数字电路与逻辑设计 专业班级:计实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时,在输入端输入三个电平时,输出实现了全减器的功能,即把三个输入当作 被减数、减数和低位的借位,同时两个输出分别表示了差与高位的借位。 因为电路的设计是根据真值表的结果得到的,通过真值表画出卡诺图从而的到输出关于输入的表达式,因此他所实现的功能正是我们所需要的全加器与全减器的功能,只不过是通过逻辑门进行了处理,得到的是正确的值。

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.熟悉集成加法器的使用。 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)真值表

用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;

实验五 数据选择器及应用

实验五 数据选择器及应用 [实验目的] 1、掌握数据选择器的工作原理及逻辑功能。 2、熟悉74LS153和74LS151的管脚排列和测试方法。 3、学习用数据选择器构成组合逻辑电路的方法。 [实验仪器及元器件] THD-1型数字电路实验箱,数字万用表,双踪示波器,集成电路(74LS00 四-2输入与非门、4LS32四-2输入或门、4LS86四-2输入异或门、 74LS153双四选一数据选择器、74LS151 八选一数据选择器),信号线(电缆),各种导线。 [实验任务] 1、用双四选一数据选择器74LS153实现一位全减器。 2、用双四选一数据选择器74LS153设计一个四位奇偶校验器。 3、用八选一数据选择器74LS151设计一个多数表决电路。 4、用Multisim8进行仿真,并在实验仪器上实现。 [实验原理] 数据选择器又称多路转换器或多路开关,其功能是在地址码(或叫选择控制)电位的控制下,从几个数据输入中选择一个并将其 送到一个公共输出端。数据选择器的功能类似一个多掷开关,如图4-23所示,图中有四路数据D 0 ~ D 3通过选择控制信号A 1、A 0(地址码)从四路数据中选中某一路数据送至输出端Y 。 一个n 个地址端的数据选择器,具有2n 个数据选择功能。例如:数据选择器(74LS153),n = 2,可 完成四选一的功能;数据选择器(74LS151),n = 3,可 完成八选一的功能。 1、双四选一数据选择器74LS153 所谓双4选1数据选择器就是在一块集成芯片上 有两个4选1 数据选择器。集成芯片引脚排列如图 A 1 A 0 地址码 D 0 D D D 数 据输 入 Y 输 出 图4-23 四选一数据选择器 4-24 74LS153引脚排列

采用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);

课程设计---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、实验名称: 全加/减器设计与仿真 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输入为高电平时调用全减器

完整四位全加全减器设计

四位全加全减器设计 一.实验目的 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;

一位全减器实验报告

南昌大学实验报告 学生姓名:蔡斌学号: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开始编程下载 六、仿真波形分析

全加器与全减器设计

学校代码:_________ 学号:__________ Hefei University 数电设计报告NUMBER OF ELECTRICAL DESIGN REPORT 设计题目:全加器与全减器设计 学位类别:工学学士 年级专业(班级):电子信息工程1班 作者姓名:汤家映(1405011019)、宋道远(1405011020)、朱亚东(1405011022) 导师姓名:谭敏 完成时间: 2015-5-17

目录 一、设计任务 (2) 1.用组合逻辑电路设计1位二进制全加器与全减器 (2) 2.用双8选1数据选择器74LS151设计1位二进制全加器与全减器 (2) 3.用广义译码器VHDL语言设计1位二进制全加器与全减器 (2) 二、设计过程 (2) 1.用组合逻辑电路设计1位二进制全加器与全减器 (2) (1)进行逻辑抽象,建立真值表 (2) (2)画出卡诺图 (2) (3)画出逻辑电路 (3) 2.用双8选1数据选择器74LS151设计1位二进制全加器与全减器 (3) (1)逻辑问题进行抽象,列出真值表 (3) (2)列出函数表达关系 (4) (3)用数据选择器74LS151画出逻辑电路图 (4) 3.用广义译码器VHDL语言设计1位二进制全加器与全减器 (5) 三、总结 (6)

一、设计任务 1、用组合逻辑电路设计1位二进制全加器与全减器; 2、用双8选1数据选择器74LS151设计1位二进制全加器与全减器; 3、用广义译码器VHDL语言设计1位二进制全加器与全减器。 二、设计过程 1、用组合逻辑电路设计1位二进制全加器与全减器 (1)进行逻辑抽象,建立真值表 全加器与全减器真值表 输入输出 A B C全加器(m=0)全减器(m=1) S D S D 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 (说明:当m=1时为全加器A.B分别表示被减数和减数C表示低位向高位的借位数,S表示本位和值,D表示向高位的借位;当m=0时为全加器A.B分别表示两个加数C表示低位向高位的进位数,S表示本位和值,D表示向高位的进位) (2)画出卡诺图

一位全减器的VHDL设计

一位全减器的VHDL 设计 理工学院03电信(2)班 黄金凤 030303074 一.实验目的 1. 熟悉Max+PlusII 和GW48EDA 开发系统的使用; 2. 掌握一位半减器的VHDL 设计; 3. 掌握一位半减器构建一位全减器的方法; 4. 元件例化语句的使用。 二.实验原理 由两个半减器和一个或门构成一个全减器。首先,一位半减器的逻辑表达式: y x out s y x y x y x diff =⊕=+=_ 表一. 半减器的真值表 其次,一位全减器的逻辑表达式: diff in sub out s out sub diff in sub diffr ?+=⊕=____ 表二.一位全减器的真值表 根据上述的真值表了解半减器和全减器,并设计出VHDL 的程序。 描述半减器的VHDL 的程序如下: ENTITY halfsub IS PORT(A,B:IN BIT; T,C:OUT BIT); END halfsub; ARCHITECTURE halfsub_arc OF halfsub IS BEGIN PROCESS(A,B) BEGIN T<= A XOR B AFTER 10 ns; C <= (NOT A) AN D B AFTER 10 ns;

END PROCESS; END halfsub_arc; 其波形图如下: 描述或门的VHDL程序如下: ENTITY orgate IS PORT(A1,B1:IN BIT; O1:OUT BIT); END orgate; ARCHITECTURE orgate_arc OF orgate IS BEGIN O1<= A1 OR B1; END orgate_arc; 然后设计全减器, 以一些中间信号temp_T,temp_c1和temp_c2, 将两个半减器,一个或门的端口连接起来形成对全减器的结构描述。图10-5(b)所示虚线框有各元件之间的连线命名。下面是全减器的VHDL程序描述:ENTITY fullsub IS PORT(I1,I2,C_IN:IN BIT; FT,C_OUT:OUT BIT); END fullsub; ARCHITECTURE fullsub_arc OF fullsub IS SIGNAL temp_T,temp_c1,temp_c2:BIT; COMPONENT halfsub PORT(A,B:IN BIT; T,C:OUT BIT); END COMPONENT; COMPONENT orgate PORT(A1,B1:IN BIT; O1:OUT BIT); END COMPONENT; BEGIN U0:halfsub PORT MAP(I1,I2,temp_T,temp_c1); U1:halfsub PORT MAP(temp_T,C_IN,FT,temp_c2); U2:orgate PORT MAP(temp_c1,temp_c2,C_OUT); END fullsub_arc;

实验四 全减器

实验四 全减器 一、实验目的 设计并实现一个一位减法器 二、实验原理 半减器不考虑低位向本位的借位。一位半减器由两个输入、两个输出。 表1 半减器真值表 输入 输出 Bi Ai Di Ci 0 0 0 0 0 1 1 1 1 0 1 0 1 1 由真值表可得到函数表达式:Bi Ai Bi Ai Di += Bi Ai Ci = 在下图中,“进位入”Ci -1是指低位的进位输出,“进位出”Ci 即是本位的进位输出。 Ai Bi A B C D Di Ci C D 半减器 半减器 ≥ Ci-1 原理图如下: 全减器 (被减数)Ai (减数)Bi (差)Di (借位出)Ci 真值表: 输入 输出 Ci-1Bi Ai Si Ci 0000000000000000000011 1111 1111 111 1111 111

根据真值表写出逻辑表达式: 111i i i i i i i i i i D A B C A B C A B C ---=++ 三、实验步骤 1、建立工程fullsub,新建VHDL 文件输入以下代码保存为fullsub1.vhdl 。打开addern.vhdl 文件,选择File → Creat/Update → Creat Symbol Files for Current Files 生成顶层符号文件。(参考实验一、二) ----------------------半减器程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity halfsub is port(a,b:in std_logic; d,c:out std_logic); end halfsub; architecture half1 of halfsub is begin d<=((a and (not b))or ((not a)and b)); c<=(not a)and b; end half1; -----------------------------------全减器程序 library ieee; use ieee.std_logic_1164.all; entity fullsub1 is port(ai,bi,ci:in std_logic; di,co:out std_logic); end fullsub1; architecture full1 of fullsub1 is component halfsub-----------声明半减器调用 port(a,b:in std_logic;

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