实验二 全加器的设计
实验二 全加器的设计与仿真
实验二全加器的设计与仿真全加器是非常典型的数字单元电路,在数字系统中常常用到全加器。
一般认为加法器是纯组合逻辑电路,只要用一些基本门电路就可以设计出全加器。
通常情况下,全加器是数字系统中的一个子模块,为了使加法器能与系统在时钟的驱动下同步工作,我们把全加器设计成由时钟控制带一级流水线的加法器。
需要指出的是,在数字集成电路设计中,大多数公司使用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。
实验二组合逻辑电路的设计与测试 PPT
• 3、根据修改后得表达式,画出用标准器件构成得 逻辑电路图,并标注管脚号。
• 4、写出完整设计过程;熟练使用仿真软件,并进行 仿真(没学过仿真软件得专业,可以不仿真)
• 思考题:5、如何用最简单得方法验证与或非门得 逻辑功能就是否完好?
• 4、设计一个对两个两位无符号得二 进制数进行比较得电路,根据第一个
数就是否大于、等于、小于第二个 数,使相应得三个输出端中得一个输 出为“1”,要求用与门、与非门及或 非门实现(74LS08、74LS00、 74LS20、74LS02)
实验预习要求
• 1、根据实验设计任务要求,建立输入、输出变量, 列出真值表。
实验二组合逻辑电路的设计与测试
• 实验内容:
• 1、设计用与非门及用 异或门、与门组成得半加器(74LS00、 74LS86、74LS08)
• 2、设计一个一位全加器,要求用异或门、 与门及或门组成(74LS86、74LS08、 74LS32)
• 3、设计一位全加器,要求用与或非门实 现(74LS51)
• 思考题: 6、与或非门中,当某一组与端不用时,应如 何处理?
一、实验目得
• 掌握组合逻辑电路得设计与测 试方法
二、组合逻辑电路得设计流程
三、实验设备与器件
• 1、电子技术实验箱 • 2、数字万用表 • 3、主要参考器件
74LS00×2、74LS20×3、 74LS86、74LS08、74LS51×2、 74LS32、74LS02 、74LS04
74LS02)
大家应该也有点累了,稍作休息
大家有疑问得,可以询问与交流
10
• 设计原理:
全加器的设计
实验课程名称:EDA技术与应用实验项目名称4位全加器实验实验成绩实验者专业班级组别同组者 / 实验日期一、实验目的1、加深理解全加器的工作原理及电路组成,加深对EDA技术的掌握。
2、熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个四位全加器的设计把握原理图输入方式设计的详细流程。
二、实验内容用原理图输入法设计4位全加器。
三、实验仪器Quartus II软件四、实验原理一个4位全加器可以由4个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相接。
1、半加器描述根据半加器真值表可以画出半加器的电路图。
a b so Co0 0 0 00 1 1 01 0 1 01 1 0 1表1 半加器h_adder真值表图1 半加器h_adder电路图2、一位全加器描述一位全加器可以由两个半加器和一个或门连接而成,因而可以根据半加器的电路原理图或真值表写出1位全加器的VHDL描述,1位全加器电路图如图所示:图2 一位全加器电路图3、4位全加器设计描述4位全加器可以看做四个1位全加器级联而成,首先采用基本逻辑门设计一位全加器,而后通过多个1位全加器级联实现4位全加器。
其中,其中cin 表示输入进位位,cout 表示输出进位位,输入A 和B 分别表示加数和被加数。
S 为输出和,其功能可用布尔代数式表示为:S A B Ci =++ii i i o ABC ABC ABC ABC C +++=首先根据一位全加器的布尔代数式应用基本逻辑门设计一位全加器,而后仿真验证一位全加器设计,准确无误后生成元件,供4位全加器设计用。
将4个1位全加器级联构成四位全加器。
五、实验步骤1、为本项工程设计建立文件夹 :文件夹取名为adder ,路径为d:\adder 。
2、建立原理图文件工程和仿真 原理图编辑输入流程如下:1) 打开原理图编辑窗。
加法器电路设计全加器
加法器电路设计全加器全加器是一种用于将两个二进制数字相加的电路,它包括两个输入和三个输出。
全加器可以用于将两个数字相加,并产生其和以及进位。
在设计全加器的过程中,我们需要考虑输入和输出的位数、进位和和的计算,并使用逻辑门来实现电路。
首先,我们需要确定输入和输出的位数。
假设我们设计的全加器有两个2位的输入A和B,以及一个进位输入C,输出结果和进位分别为S和C_out。
那么我们的设计目标就是将A、B和C相加,并将结果S和进位C_out输出。
接下来,我们需要考虑如何计算和以及进位。
和的计算可以通过异或门来实现,因为异或门输出只有当两个输入不同时为1时才为1、因此,我们可以使用两个异或门来计算和:S=(A⊕B)⊕C。
进位的计算可以通过与门来实现,因为与门只有当两个输入都为1时才为1、我们可以使用两个与门来计算进位:C_out = (A ∧ B) ∨ (C ∧ (A ⊕ B))。
这个表达式中,(A ∧ B)表示当A和B都为1时的进位,(C ∧ (A ⊕ B))表示A和B中只有一个为1且进位也为1时的进位,而∨操作符表示两个进位取或运算。
现在,我们已经确定了计算和和进位的逻辑表达式,下面我们来实现这个电路。
首先,我们需要使用逻辑门来实现异或和与运算。
异或门可以使用与门、或门和非门来实现。
我们可以使用如下的逻辑逻辑表达式来实现异或运算:A⊕B=(A∧¬B)∨(¬A∧B)。
与门可以使用与非门实现,即A∧B=¬(¬A∨¬B)。
或门可以直接使用或门实现。
我们可以使用这些逻辑门来实现全加器的电路。
首先,我们将输入A、B和C分别连接到两个异或门的输入端,将两个异或门的输出连接到一个异或门的输入端,得到和S。
接下来,我们将输入A和B分别连接到两个与非门的输入端,将两个与非门的输出连接到一个或门的输入端,得到进位C_out。
最后,我们需要将电路连接到其他的逻辑门或者其他的全加器,以构建更复杂的电路。
实验一一位二进制全加器设计实验
大学实验报告学生: 学 号: 专业班级: 中兴101实验类型:■ 验证 □ 综合 □设计 □ 创新 实验日期: 2012 9 28 实验成绩:实验一 一位二进制全加器设计实验一.实验目的(1)掌握Quartus II 的VHDL 文本设计和原理图输入方法设计全过程; (2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果; (3) 熟悉设备和软件,掌握实验操作。
二.实验容与要求(1)在利用VHDL 编辑程序实现半加器和或门,再利用原理图连接半加器和或门完成全加器的设计,熟悉层次设计概念;(2)给出此项设计的仿真波形;(3)参照实验板1K100的引脚号,选定和锁定引脚,编程下载,进行硬件测试。
三.设计思路一个1位全加器可以用两个1位半加器及一个或门连接而成。
而一个1位半加器可由基本门电路组成。
(1) 半加器设计原理能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。
或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。
图1为半加器原理图。
其中:a 、b 分别为被加数与加数,作为电路的输入端;so 为两数相加产生的本位和,它和两数相加产生的向高位的进位co 一起作为电路的输出。
半加器的真值表为表1 半加器真值表absoco0 0 0 0 0 1 1 0 1 0 1 0 111由真值表可分别写出和数so ,进位数co 的逻辑函数表达式为:b a b a b a so ⊕=+=--(1)ab co = (2)图1半加器原理图(2) 全加器设计原理除本位两个数相加外,还要加上从低位来的进位数,称为全加器。
图2全加器原理图。
全加器的真值表如下:表2全加器真值表c a b co so0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1其中a为加数,b为加数,c为低位向本位的进位,co为本位向高位的进位,so为本位和。
实验二 vhdl半加器与全加器的设计与验证实验
北京邮电大学世纪学院<通信工程系数字电路实验>实验报告实验名称:VHDL半加器与全加器的设计与验证实验班级:姓名:专业:学号:实验室:实验组别:实验时间:审阅教师:评定成绩:实验题目基于 VHDL 的半加器与全加器的设计与验证实验一、实验目的1、学习 Quartus II 软件的使用;2、VHDL 半加器的设计与验证实验;3、VHDL 全加器的设计与验证实验;4、掌握模块的 VHDL 调用;5、学习基于 VHDL 的数字电路的设计。
二、预习内容1、VHDL 语言的基本结构;2、VHDL 语言的数据类型和运算操作符;3、VHDL 语言的主要描述语句;三、实验内容本实验主要运用 Quartus II 软件进行 VHDL 电路设计;内容一、VHDL 半加器的设计,包括电路设计并进行时序仿真验证,然后将电路设计进行实际电路的验证;内容二、VHDL 全加器的设计,在VHDL 程序中调用生成的半加器图形符号完成全加器设计,时序仿真验证后,将全加器电路进行实际电路的验证;本实验的重点和难点是 VHDL 语言的使用1、VHDL 半加器电路的设计2、VHDL 半加器电路的时序验证3、VHDL 全加器电路的设计4、全加器电路的时序验证四、实验结果分析对所设计的半加器电路、全加器电路进行实际电路的验证。
分析:五、思考题1、在采用 Quartus II 软件进行 VHDL 电路设计中,工程名、实体名、结构体名如何选取,实体名、结构体名是否可以任意选取,为什么?2、一个完整的 VHDL 语言程序通常包含那几部分?3、VHDL 结构体有那三种描述方式?六、总结。
(VHDL实验报告)一位半加器,全加器的设计
3)对文本文件进行编译。选择processing-compiler tool--start或直接点快捷栏上的三角形则会出 现编译器窗口。需要说明的是在进行设计文件的综合和分 析,也可以单独打开某个分析综 合过程不必进行全编译 界面。当完成上述窗口的设定后,点击 START 按钮进行 设计文件的全编译。如果文件有错,在软件的下方则会提 示错误的原因和位置,以便于使用者进行修改直到设计文 件无错。整个编译完成,软件会提示编译成功。
二)全加器
本次实验我分别用实验箱上的开关K1、K2、K3作为全加器的三输入A、B、Ci-1
;分别用LED彩灯LED1、LED2作为半加器的两个输出端Si、Ci。实验时将实验箱的拨动
开关拨向下时为低电平“0”。拨向上时为高电平“1”,LED高电平时灯亮,低电平时
灯灭。以下第一幅图即为输入为“111”时输出为“11”;第二幅图则是当输入为
A
9
五、实验步骤
(一)半加器的设计
4、对设计文件进行仿真
1)选择File--New,在弹出的对话框中选择Vector Waveform File,点击OK按钮,打开进入一个空的波形编辑器窗口。
2)设置仿真结束时间,波形编辑器默认的仿真结束时间为 1µS ,根据仿真需要,可以自由设置仿真的结束时间(本次设置的为1ms )。选择 QUARTUSII 软件的 Edit--End Time命令,弹出线路束时间 对话框,在 Time框办输入仿真结束时间,点击OK按钮完成设置。如 下图所示:
数电报告全加全减器的设计
实验二:组合逻辑电路的设计
一.实验目的
1. 了解74LS00,74LS86芯片的内部结构和功能; 2. 了解全加器和全减器的结构和功能; 3. 进一步熟悉逻辑电路的设计和建立过程。
二.实验原理
用74LS00,74LS86芯片实现全加全减(M=0全加,M=1全减)组合逻辑电路
该逻辑电路的真值表: 函数S 的卡诺图‘ Ci B A S ⊕⊕=
函数Co 的卡诺图
0 1 0 1
Co⊕
)
=
B Ci
+
+
Ci
(A
M
B
)(
M,A,B,Ci分别代表四个输入端,S,Co分别为两个输出端,电路图如下图:
函数S的电路图
图一
函数Co的电路图
图二
三.实验内容
1.按图一搭建逻辑电路,先将输入都分别接在开关上,输入输出接在小灯上,测试实验结果,与真值表进行对照。
再将A接在Vpp=5V,f=1KHz 的方波上,将输出S接在示波器上,对比A与S的波形。
2.按图二搭建逻辑电路,先将输入都分别接在开关上,输入输出接在小灯上,测试实验结果,与真值表进行对照。
再将A接在Vpp=5V,f=1KHz 的方波上,将输出Co接在示波器上,对比A与Co的波形。
四.实验结果。
实验二 用原理图输入法设计8 位全加器
实验二用原理图输入法设计8 位全加器一、实验目的熟悉利用Quartus?的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。
二、实验原理一个8位全加器可以由8个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相临的高位加法器的最低进位输入信号cin相接。
而一个1位全加器可以按照6.1节介绍的方法来完成。
三、实验内容1、完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设置成一个硬件符号入库。
2、建立一个更高层次的原理图设计,利用以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真和硬件测试。
(5)通过之后,将该全加器封装入库待设计8位全加器的时候调用。
四、实验步骤1、设计半加器:(1)打开QUARTUS?,选file->new,在弹出的new对话框中选择Device DesignFiles页的原理图文件编辑输入项Block diagram\Schematic File,按OK后将打开原理图输入窗。
(2)原理图输入结果如下图所示:(3)保存此原理图文件,命名为h_adder.bdf,并为此文件建立工程。
(4)编译此原理图文件得到如下结果:(5)对半加器进行仿真得到结果:(6)通过之后,将该半加器封装入库待设计全加器的时候调用。
2、设计全加器(1)重复1 中的步骤(1)和(2),设计如下所示的全加器原理图:(2)保存此原理图文件,命名为f_adder.bdf,新建工程名f_adder.qpf,将此文件设置为工程顶层文件。
(3)编译此原理图文件得到如下结果:(4)对全加器进行仿真得到结果:(5)通过之后,将该全加器封装入库待设计8位全加器的时候调用。
(6)对全加器进行硬件测试,其相应引脚设置为:键1、键2、键3(PIO 0/1/2) 分别接ain、bin、cin;发光管D2、D1(PIO9/8)分别接sum和cout。
实验二 一位全加器实验
实验二一位全加器实验【实验环境】1. Windows 2000 或 Windows XP2. QuartusII、GW48-PK2或DE2-115计算机组成原理教学实验系统一台,排线若干。
【实验目的】1、熟悉原理图和VHDL语言的编写。
2、验证全加器功能。
【实验原理】设计一个一位全加器,能完成两个二进制位的加法操作,考虑每种情况下的进位信号,完成8组数据的操作。
【实验步骤】1.1建立工程项目1.1.1 启动QuartusⅡ1.1.3 原理图设计新建项目后,就可以绘制原理图程序了。
下面以一位全加器如图1-12所示为例,讲解原理图的编辑输入的方法与具体步骤。
图1-12 一位全加器原理图(1)执行菜单“File”→“New…”,或在工具栏中单击图标,弹出如图1-13所示的“New”对话框。
在此对话框的“Design Files”项中选择“Block Diagram/Schematic File”,在单击“OK”按钮,QuartusⅡ10.0的主窗口进入如图1-14所示的原理图工作环境界面。
图1-13 “New”对话框(2)在如图1-14所示的原理图工作环境界面中单击图标或在原理图编辑区的空白处双击鼠标或在原理图编辑区的空白处右键单击在弹出的菜单中选择“Insert”中的任意一个,弹出如图1-15所示的元件输入对话框,在“Name”栏中直接输入所需元件名或在“Libraries: ”的相关库中找到合适的元件,再单击“OK”按钮,然后在原理图编辑区中单击鼠标左键,即可将元件调入原理图编辑区中。
为了输入如图1-12所示的原理图,应分别调入and2、xor2、or3、input、output。
对于相同的器件,可通过复制来完成。
例如3个and2门,器操作方法是,调入一个and2门后,在该器件上单击鼠标右键,在弹出的菜单中选择“Copy”命令将其复制,然后在合适的位置上右键,在弹出的菜单中选择“Paste”命令将其粘帖即可。
eda实验报告——全加器原理图法,例化语句法
姓名:黄娟学号:32214125班级:自动141成绩:实验名称:全加器的原理图法设计及例化语句法一、实验目的1. 掌握EDA工具Quartus Ⅱ的使用;2. 掌握Quartus Ⅱ的原理图设计流程。
3. 掌握半加器、全加器的原理图法设计。
二、全加器的原理图设计1、Quartus Ⅱ原理图设计流程(1)建立文件夹,取名为adder(2)原理图编辑输入a.打开原理图编辑器b.建立一个初始的原理图c.原理图文件存盘d.建立原理图文件为顶层设计的工程e.绘制半加器原理图f.仿真测试半加器(3)将设计项目设置成可以调用的元件(4)设计全加器顶层文件(5)将设计项目进行时序仿真2、半加器(1)原理图(2)仿真测试结果(3)RTL图3、全加器(1)原理图(2)仿真测试结果(3)RTL图三、全加器的例化语句法设计1、vriloge语言描述begincase({a,b})0:begin so=0;co=1'b0;end1:begin so=1;co=1'b0;end2:begin so=1;co=1'b0;end3:begin so=0;co=1'b1;enddefault:begin so=0;co=0;endendcaseendendmodulemodule or2a(a,b,c);output c;input a,b;assign c=a|b;endmodulemodule f_adder(ain,bin,cin,cout,sum);output cout,sum;input ain,bin,cin;wire e,d,f;h_adder u1(ain,bin,e,d);h_adder u2(.a(e),.so(sum),.b(cin),.co(f)); or2a u3(.a(d),.b(f),.c(cout));endmodule2、波形仿真3、RTL图三、实验小结通过这次实验我们了解了原理图法设计步骤,方法!原理图法以硬件连接为基础,对硬件连接了解多的时候比较合适。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
任务分析:电路工作原理
2
知识准备:元件的包装入库
3
任务实施:图形输入中的层次设计
1
一、任务分析:全加器设计原理
全加器是指实现带进位的一位二进制数的加法 运算的器件。而半加器是不带进位的一位二进制 数的加法运算。故本次实验中采用半加器与其他 逻辑门的连接来实验全加运算。
经分析简单的两个半加器和一个或门连接而成, 电路图如图所示。
2
二、知识准备:元件的包装入库
打开任意一个已经保存的电路图并设置为当前项目, 即可通过执行菜单命令file/creat default symbol,将 设计文件打包成一个元件,系统默认的元件名为对应 电路图的文件名。由此,该电路图所对应特定功能的 元件即可在以后的设计中应用。
三、 任务实施:图形输入中的层次设计
1、设计半加器,并 编译、仿真、测试
2、将半加器包装入 库
3、设计全加器