实验二 全加器的设计
实验二 全加器的设计与仿真

实验二全加器的设计与仿真全加器是非常典型的数字单元电路,在数字系统中常常用到全加器。
一般认为加法器是纯组合逻辑电路,只要用一些基本门电路就可以设计出全加器。
通常情况下,全加器是数字系统中的一个子模块,为了使加法器能与系统在时钟的驱动下同步工作,我们把全加器设计成由时钟控制带一级流水线的加法器。
需要指出的是,在数字集成电路设计中,大多数公司使用VerilogHDL进行RTL设计,较少使用VHDL,主要的原因是VerilogHDL语法简单易学,底层库支持好,EDA工具支持全面,集成电路发达的国家和地区应用广泛。
而VHDL的发展逐渐式微,越来越多的公司正逐渐向VerilogHDL转移。
建议使用VerilogHDL进行RTL设计,便于交流。
集成电路设计中心实验室的工作站运行环境为:•Sun Blade2000两台•双64-bit CPU, 内存4GB ,•硬盘73GB用户可以通过Xmanager 登录,每个用户拥有50MB的磁盘配额。
2.1设计文件准备和编译按可综合风格写出VerilogHDL代码如下(仅供参考):module Adder8 (ain, bin, cin, sout, cout, clk,rst);/* Eight Bit Adder Module */output [7:0] sout;output cout;input [7:0] ain, bin;input cin, clk,rst;wire [7:0] sout_tmp, ain, bin;wire cout_tmp;reg [7:0] sout, ain_tmp, bin_tmp;reg cout, cin_tmp;always @(posedge clk)beginif (rst==1)beginsout=0;cout=0;ain_tmp=ain;bin_tmp=bin;cin_tmp=cin;endelsebegincout = cout_tmp;sout = sout_tmp;ain_tmp = ain;bin_tmp = bin;cin_tmp = cin;endendassign {cout_tmp,sout_tmp} = ain_tmp + bin_tmp + cin_tmp;endmodule上述代码在Unix/Linux 系统中,在用户目录下,建文件夹Adder8_full, 下建src,sim,syn,pr四个目录。
半加器和全加器的设计

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));
entity count10 is
port(clk,r,s :in std_logic;
data:in std_logic_vector(3 downto 0);
co :out std_logic;
q:buffer std_logic_vector(3 downto 0));
end count10;
u3: or23 port map(a=>x(0),b=>x(2),c=>cout);
end arch;
运行结果:
方法二:
运行结果:
实验二.四选一数据选择器的设计
1用case语句:
library ieee;
use ieee.std_logic_1164.all;
entity mux4_1ais
port(A,B,C,D :in std_logic_vector(3 downto 0);
entity dswq is
port(clk,dir : in std_logic;
q : buffer std_logic_vector(3 downto 0));
end;
architecture arch of dswq is
begin
process(clk,q,dir)
组合逻辑电路设计之全加器半加器

班级姓名学号实验二组合电路设计一、实验目的(1)验证组合逻辑电路的功能(2)掌握组合逻辑电路的分析方法(3)掌握用SSI小规模集成器件设计组合逻辑电路的方法(4)了解组合逻辑电路集中竞争冒险的分析和消除方法二、实验设备数字电路实验箱,数字万用表,74LS00, 74LS86三、实验原理1 •组合逻辑概念通常逻辑电路可分为组合逻辑电路和时序逻辑电路两大类。
组合逻辑电路又称组合电路,组合电路的输出只决定于当时的外部输入情况,与电路的过去状态无关。
因此,组合电路的特点是无“记忆性”。
在组成上组合电路的特点是由各种门电路连接而成,而且连接中没有反馈线存在。
所以各种功能的门电路就是简单的组合逻辑电路。
组合电路的输入信号和输出信号往往不只一个,其功能描述方法通常有函数表达式、真值表,卡诺图和逻辑图等几种。
实验中用到的74LS00和74LS86的引脚图如图所示。
00 四2输入与非门4B 4A 4Y 3B 3A 3Y1A 1B 1Y 2A 2B 2Y GND2•组合电路的分析方法。
组合逻辑电路分析的任务是:对给定的电路求其逻辑功能,即求出该电路的输出与输入之间的关系,通常是用逻辑式或真值表来描述,有时也加上必须的文字说明。
分析一般分为(1)由逻辑图写出输出端的逻辑表达式,简历输入和输出之间的关系。
(2)列出真值表。
(3)根据对真值表的分析,确定电路功能。
3•组合逻辑电路的设计方法。
组合逻辑电路设计的任务是:由给定的功能要求,设计出相应的逻辑电路。
一般设计的逻辑电路的过程如图(1)通过对给定问题的分心,获得真值表。
在分析中要特别注意实际问题如何抽象为几个输入变量和几个输出变量直接的逻辑关系问题,其输出变量之间是否存在约束关系,从而过得真值表或简化真值表。
(2)通过卡诺图化简或逻辑代数化简得出最简与或表达式,必要时进行逻辑式的变更,最后画出逻辑图。
(3)根据最简逻辑表达式得到逻辑电路图。
四•实验内容。
1•分析,测试半加器的逻辑功能。
EDA 实验一 用两种方法设计2位全加器

实验一用两种方法设计2位全加器实验目的:熟悉利用Quartus II的开发环境设计简单的组合逻辑电路,掌握层次化设计的方法,并通过一个2位全加器的设计把握利用EDA软件进行电子线路设计的各种详细流程。
实验原理:一个2位全加器可由2个1位全加器构成,加法器间的进位可以用串行的方式实现,即将低位的进位输出与高位的进位输入相连接。
而1个全加器的设计可以使用2个半加器进行组合。
这种层次化的设计过程中,每一个层次都可以使用原理图或是VHDL语言来实现。
实验任务:1、完成半加器、全加器的设计,每个层次都可以用原理图或是VHDL语言实现。
将其进行仿真和测试,并生成相应的硬件符号。
2、建立更高层次的原理图设计,将2个1位全加器构成1个2位全加器,完成相应的仿真和测试,使其可以在硬件电路板上实现。
实验内容:1、半加器,全加器(两种方法)方法一:半加器:library ieee;use ieee.std_logic_1164.all;entity h_adder isport(a,b:in std_logic;co,so:out std_logic);end entity h_adder;architecture act of h_adder isbeginso<=a xor b;co<=a and b;end architecture act;全加器:library ieee;use ieee.std_logic_1164.all;entity f_adder isport(ain,bin,cin:in std_logic;sum,cout:out std_logic);end entity f_adder;architecture act of f_adder iscomponent h_adderport(a,b:in std_logic;co,so:out std_logic);end component;signal co1,co2,temp:std_logic;beginu1:h_adder port map(a=>ain,b=>bin,co=>co1,so=>temp);u2:h_adder port map(a=>temp,b=>cin,co=>co2,so=>sum); cout<=co1 or co2;end architecture;方法二:半加器:全加器:2、一个2位全加器仿真波形:第一种设计方法:第二种设计方法:实验结果与总结:丰富自己,取悦自己,随缘,随顺,随境,你的心才会敞开,才会接纳更多的有可能。
实验二 加法器的设计与仿真实验报告

实验二加法器的设计与仿真一、实验目的:实现加法器的设计与仿真。
二、实验内容1.用逻辑图和VHDL语言设计全加器;2.利用设计的全加器组成串行加法器;3.用逻辑图和VHDL语言设计并行加法器。
三、实验步骤。
(一)、全加器、串行加法器和并行加法器的逻辑图。
1.全加器:2.串行加法器:3.74283:4位先行进位全加器逻辑框图:逻辑图:(二)、全加器、串行加法器和并行加法器的VHDL。
1.全加器:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY work;ENTITY quanjiaqi ISPORT(X : IN STD_LOGIC;Y : IN STD_LOGIC;CIN : IN STD_LOGIC;S : OUT STD_LOGIC;COUT : OUT STD_LOGIC);END quanjiaqi;ARCHITECTURE bdf_type OF quanjiaqi ISSIGNAL SYNTHESIZED_WIRE_0 : STD_LOGIC;SIGNAL SYNTHESIZED_WIRE_1 : STD_LOGIC;SIGNAL SYNTHESIZED_WIRE_2 : STD_LOGIC;SIGNAL SYNTHESIZED_WIRE_3 : STD_LOGIC;BEGINSYNTHESIZED_WIRE_2 <= Y AND X;SYNTHESIZED_WIRE_1 <= CIN AND Y;SYNTHESIZED_WIRE_3 <= CIN AND X;SYNTHESIZED_WIRE_0 <= X XOR Y;S <= SYNTHESIZED_WIRE_0 XOR CIN;COUT <= SYNTHESIZED_WIRE_1 OR SYNTHESIZED_WIRE_2 OR SYNTHESIZED_WIRE_3; END bdf_type;2.串行加法器:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY work;ENTITY chuanxingjiafaqi ISPORT(x0 : IN STD_LOGIC;y0 : IN STD_LOGIC;cin : IN STD_LOGIC;x1 : IN STD_LOGIC;x2 : IN STD_LOGIC;y2 : IN STD_LOGIC;x3 : IN STD_LOGIC;y3 : IN STD_LOGIC;y1 : IN STD_LOGIC;s0 : OUT STD_LOGIC;s1 : OUT STD_LOGIC;s2 : OUT STD_LOGIC;s3 : OUT STD_LOGIC;cout : OUT STD_LOGIC);END chuanxingjiafaqi;ARCHITECTURE bdf_type OF chuanxingjiafaqi ISCOMPONENT quanjiaqiPORT(X : IN STD_LOGIC;Y : IN STD_LOGIC;CIN : IN STD_LOGIC;S : OUT STD_LOGIC;COUT : OUT STD_LOGIC);END COMPONENT;SIGNAL SYNTHESIZED_WIRE_0 : STD_LOGIC; SIGNAL SYNTHESIZED_WIRE_1 : STD_LOGIC; SIGNAL SYNTHESIZED_WIRE_2 : STD_LOGIC;BEGINb2v_inst : quanjiaqiPORT MAP(X => x0,Y => y0,CIN => cin,S => s0,COUT => SYNTHESIZED_WIRE_0); b2v_inst1 : quanjiaqiPORT MAP(X => x1,Y => y1,CIN => SYNTHESIZED_WIRE_0,S => s1,COUT => SYNTHESIZED_WIRE_1); b2v_inst2 : quanjiaqiPORT MAP(X => x2,Y => y2,CIN => SYNTHESIZED_WIRE_1,S => s2,COUT => SYNTHESIZED_WIRE_2); b2v_inst3 : quanjiaqiPORT MAP(X => x3,Y => y3,CIN => SYNTHESIZED_WIRE_2,S => s3,COUT => cout);END bdf_type;3.74283:4位先行进位全加器LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY work;ENTITY 74283_0 ISPORT(CIN : IN STD_LOGIC;A1 : IN STD_LOGIC;A2 : IN STD_LOGIC;B2 : IN STD_LOGIC;A3 : IN STD_LOGIC;A4 : IN STD_LOGIC;B4 : IN STD_LOGIC;B1 : IN STD_LOGIC;B3 : IN STD_LOGIC;SUM4 : OUT STD_LOGIC;COUT : OUT STD_LOGIC;SUM1 : OUT STD_LOGIC;SUM2 : OUT STD_LOGIC;SUM3 : OUT STD_LOGIC );END 74283_0;ARCHITECTURE bdf_type OF 74283_0 IS BEGIN-- instantiate macrofunctionb2v_inst : 74283PORT MAP(CIN => CIN,A1 => A1,A2 => A2,B2 => B2,A3 => A3,A4 => A4,B4 => B4,B1 => B1,B3 => B3,SUM4 => SUM4,COUT => COUT,SUM1 => SUM1,SUM2 => SUM2,SUM3 => SUM3);END bdf_type;四、实验仿真结果。
实验二 全加器的设计

实验二全加器的设计一、实验目的1、掌握MAX+plus 软件的使用方法。
2、掌握层次化设计方法:底层为文本文件,顶层为图形文件。
3、通过全加器的设计掌握利用EDA软件进行电子线路设计的过程。
二、实验设备1、计算机2、MAX+plus II软件及实验箱三、实验原理加法器是数字系统中的基本逻辑器件,减法器和硬件乘法器都可由加法器来构成。
全加器,全加器是实现两个一位二进制数及低位来的进位数相加(即将三个二进制数相加),求得和数及向高位进位的逻辑电路。
所以全加器有三个输入端(A,B,C)和两个输出端SO,CO)。
1、逻辑关系:CO=AB SO=AB+BA=A⊕B语句:SO<=NOT(A XOR (NOT B))CO<=A AND B2、逻辑关系:语句:SO<=NOT(A XOR (NOT B)); CO<=A AND B;SO=A⊕B⊕C CO=AB+CA+CB四、实验内容1、半加器的设计:完成源程序的编辑、编译、仿真。
2、两输入或门的设计:完成源程序的编辑、编译、仿真。
3、全加器的设计:完成源程序的编辑、编译、仿真。
五、实验步骤1、启动MAX+plus II 10.0 软件2、底层文件:新建文件文本文件:(1)File \ New \Text Editor File(2)在文本文件上输入代码(3)保存文本文件:File\Save\H-adder.vhd 扩展名为*.vhd(4)设置为当前文件:点击File\Project\set project to current file 设置项目为当前文件(5)编译1)选择芯片型号:点击Assign\Device:Ep1k30QC208-32)编译:点击MAX+plus II \ Compiler \ Start 开始编译,生成.pof 文件(CPLD) (6)仿真1)启动MaxplusII\Wavefrom editor 菜单,进入波形编辑窗口;2)导入输入输出节点:将鼠标移至空白处并单击鼠标右键,Enter Nodes from SNF 将欲仿真的所有I/O管脚加入。
数电实验2

实验名称:实验二 全加器和奇偶位判断电路 姓名: 学号: 一、实验目的1.掌握组合集成电路元件的功能检查方法。
2.熟悉全加器和奇偶位判断电路的工作原理。
3.掌握组合逻辑电路的设计方法及功能测试方法。
二、实验原理1. 测试与非门74LS00和与或非门74LS55的逻辑功能的方法。
(1)74LS00和74LS55的结构如下:(2)测试方法:a.对于74LS00,接好电源和地线后,可以对四个与非模块分别测试。
测试与非门的时候改变两端输入,通过观察输出是否正常来判断其功能是否正常。
b.对于74LS55,接好电源和地线后,可以先分两边检测。
当检测一边的四个输入引脚时,只要把其余四个引脚中的一个加低电平即可使与运算结果为0,对或运算不起作用。
当进一步检查某一个引脚的时候,需要把这一边的其余三个引脚加高电平,这个他们对或运算就没有作用了,最后观察输出是否正常就可以判断74LS55的功能是否正常。
2. 用与非门74LS00和与或非门74LS55设计全加器电路的逻辑电路图。
根据半加器和全加器的功能,设相加位为A 、B ,低位进位为Ci ,他们满足的逻辑关系如下图所示。
111---+=⊕⊕=i 'i i 'i i i C S C S C B A S用74LS00和74LS55设计的逻辑电路图见附纸P.3.奇偶校验器:(1)功能:用来校验某一组传输的数据是否有错误。
(2)方法:在被传输的数据后面加一位奇偶校验位,使这一组数据中含1的个数成为奇数,或者使这一组数据中含1的个数为偶数,然后检测1的个数是奇数还是偶数来判断数据传输是否有误。
(3)奇校验:加了校验位后使之1的位数成为奇数;(4)偶校验:加了校验位后使之1的位数成为偶数。
(5)逻辑表达式如下:(6)用74LS00和74LS55搭建的逻辑电路图见附纸三、实验器材和注意事项实验器材:数电实验箱注意事项:1.输入端信号用实验器上的数据开关。
2.注意实验时多余输入端的处理。
实现全加器的实验报告

一、实验目的1. 理解全加器的原理和组成。
2. 掌握半加器、与门、或门等基本逻辑门电路的原理和特性。
3. 学习利用基本逻辑门电路构建全加器。
4. 通过实验加深对数字电路设计和实现过程的理解。
二、实验原理全加器是一种基本的数字电路,用于实现两个二进制数的加法运算。
它由两个半加器和两个与门、一个或门组成。
当两个加数位相加时,全加器可以产生一个和以及一个进位输出。
半加器(hadder)是全加器的基础单元,它由一个异或门(XOR)和一个与门(AND)组成。
异或门负责产生和输出,与门负责产生进位输出。
全加器的原理如下:- 当两个加数位相加时,若两者均为0,则输出和为0,进位为0。
- 若一个加数位为0,另一个为1,则输出和为1,进位为0。
- 若两者均为1,则输出和为0,进位为1。
三、实验设备及器材1. 数字电路实验箱2. 集成芯片(74LS00、74LS10、74LS54、74LS86)3. 导线4. 示波器5. 电源四、实验步骤1. 准备实验器材,搭建半加器电路。
(1)将74LS86(异或门)和74LS00(与门)插入实验箱。
(2)按照图1所示连接半加器电路。
(3)将A、B分别接入电平开关,Y、Z接入发光二极管显示。
(4)通电,观察Y、Z的亮灭情况,验证半加器的逻辑功能。
2. 构建全加器电路。
(1)按照图2所示连接全加器电路。
(2)将A、B、C分别接入电平开关,Y、Z接入发光二极管显示。
(3)通电,观察Y、Z的亮灭情况,验证全加器的逻辑功能。
3. 使用示波器观察全加器的输出波形。
(1)将示波器的探头分别连接到全加器的和输出端和进位输出端。
(2)改变A、B、C的输入值,观察示波器上的波形,分析全加器的逻辑功能。
五、实验结果与分析1. 半加器实验结果:当A、B的输入分别为0、1或1、0时,Y为1,Z为0;当A、B的输入均为0或均为1时,Y为0,Z为0。
验证了半加器的逻辑功能。
2. 全加器实验结果:当A、B、C的输入分别为0、0、0时,Y为0,Z为0;当A、B、C的输入分别为0、0、1时,Y为1,Z为0;当A、B、C的输入分别为0、1、0时,Y为1,Z为0;当A、B、C的输入分别为0、1、1时,Y为0,Z为1;当A、B、C的输入分别为1、0、0时,Y为1,Z为0;当A、B、C的输入分别为1、0、1时,Y为0,Z为1;当A、B、C的输入分别为1、1、0时,Y为0,Z为1;当A、B、C的输入分别为1、1、1时,Y为1,Z为1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
任务分析:电路工作原理
2
知识准备:元件的包装入库
3
任务实施:图形输入中的层次设计
1
一、任务分析:全加器设计原理
全加器是指实现带进位的一位二进制数的加法 运算的器件。而半加器是不带进位的一位二进制 数的加法运算。故本次实验中采用半加器与其他 逻辑门的连接来实验全加运算。
经分析简单的两个半加器和一个或门连接而成, 电路图如图所示。
2
二、知识准备:元件的包装入库
打开任意一个已经保存的电路图并设置为当前项目, 即可通过执行菜单命令file/creat default symbol,将 设计文件打包成一个元件,系统默认的元件名为对应 电路图的文件名。由此,该电路图所对应特定功能的 元件即可在以后的设计中应用。
三、 任务实施:图形输入中的层次设计
1、设计半加器,并 编译、仿真、测试
2、将半加器包装入 库
3、设计全加器