(VHDL实验报告)一位半加器,全加器的设计
数电实验报告半加全加器
数电实验报告半加全加器实验目的:掌握半加器和全加器的原理和应用,了解半加器和全加器的构造和工作原理。
实验器材:逻辑电路实验箱、7400四与非门、7402四与非门、7408四与门、7432四或门、7447数码显示器、开关、电源、跳线等。
实验原理:半加器和全加器是数字电路中常用的基本逻辑电路,用于对二进制进行加法运算,主要用于数字电路中的算术逻辑单元(ALU)。
1.半加器实验原理:半加器是一种能够对两个二进制位进行加法运算的电路。
半加器有两个输入端和两个输出端,输入端分别为A和B,输出端分别为S和C。
其中,A和B分别为要加的两个二进制数位,S为运算结果的个位,并且用S=A⊕B表示;C为运算结果的十位(进位),C=A·B表示。
半加器的真值表和逻辑符号表达式如下:```A,B,S,C0,0,0,00,1,1,01,0,1,01,1,0,1```2.全加器实验原理:全加器是一种能够对两个二进制位和一个进位信号进行加法运算的电路。
全加器有三个输入端和两个输出端,输入端分别为A、B和Cin,输出端分别为S和Cout。
其中,A和B分别为要加的两个二进制数位,Cin 为上一位的进位信号,S为运算结果的个位,并且用S=A ⊕ B ⊕ Cin表示;Cout为运算结果的十位(进位),Cout=(A·B) + (A·Cin) + (B·Cin)表示。
全加器的真值表和逻辑符号表达式如下:```A ,B , Cin , S , Cout0,0,0,0,00,0,1,1,00,1,0,1,00,1,1,0,11,0,0,1,01,0,1,0,11,1,0,0,11,1,1,1,1```实验步骤:1.首先,按照实验原理连接逻辑门实验箱中的电路。
将7400四与非门的1、2号引脚分别连接到开关1、2上,将开关3连接到7400的3号引脚,将开关4连接到7400的5号引脚,将7400的6号引脚连接到LED1上,表示半加器的进位输出。
实验4-半加器的VHDL设计
实验4 半加器的VHDL设计
一、实验目标
1.设计电路系统的硬件框图,并用实体描述;
2. 利用VHDL的逻辑表达式描述门电路;
3.利用VHDL代码完成半加器的设计。
二、实验步骤
1.半加器的输入为a和b。
半加器的输出为和so以及进位co。
2.根据半加器的输入和输出情况,可以写出半加器电路系统的硬件框图:
4.根据端口的定义,可以写出半加器的实体:
5.半加器的门电路为:
可以用VHDL逻辑表达式来描述门电路:
so<=_______________________________
co<=_______________________________
6.根据逻辑表达式,可以写出半加器的结构体:
7.因此半加器的VHDL代码为:
8.把VHDL代码输入QuartusII中,保存文件,文件名要与实体名相同。
9.建立工程,工程名要与设计文件名相同。
将设计文件设置为工程的顶层文件,把设计文件加入到工程中。
编译。
10.利用真值表进行时序仿真,并画出a、b、so、co的波形图,要标明时间刻度。
VHDL实验半加器等等指导书
实验一 半加器和全加器的设计一、 实验目的1、掌握图形的设计方式;2、掌握自建元件及调用自建元件的方法;3、熟练掌握MAXPLUS II 的使用。
二、实验内容1、熟练软件基本操作,完成半加器和全加器的设计;2、正确设置仿真激励信号,全面检测设计逻辑;3、综合下载,进行硬件电路测试。
三、实验原理1、半加器的设计半加器只考虑了两个加数本身,没有考虑由低位来的进位。
半加器逻辑表达式:B A B A B A S ⊕=+=;AB C =2.全加器的设计全加器除考虑两个加数外,还考虑了低位的进位。
全加器逻辑表达式: 1-⊕⊕=i i i i C B A S ;AB C B A C i i i i +⊕=-1)(3、利用半加器元件完成全加器的设计 (1)图形方式其中HADDER 为半加器元件。
四、实验步骤1、完成图形半加器设计。
2、完成VHDL 半加器设计与仿真(记录仿真波形)。
3、完成VHDL 全加器设计与仿真(记录仿真波形)。
4、利用半加器元件进行图形的全加器设计。
五、思考题:1、怎样自建元件?自建元件的调用要注意什么?实验二二位加法计数器的设计一、实验目的1、掌握二位加法计数器的原理;2、掌握二位加法计数器的VHDL描述。
3、深入理解VHDL中元件例化的意义。
二、实验内容1、完成带进位功能二位加法计数器的VHDL设计;2、正确设置仿真激励信号,全面检测设计逻辑;3、综合下载,进行硬件电路测试。
三、实验原理1、二位加法计数器中使用了矢量类型的数据,用来表示计数的数值。
2、元件的例化就是元件的调用,是层次化设计的基础。
具体设计程序由学生自己完成。
四、实验步骤1、了解二位加法计数器的工作原理。
2、用VHDL文本方式设计二位加法计数器。
3、进行二位加法计数器的设计仿真(记录仿真波形)。
4、进行二位加法计数器的设计下载与测试。
五、思考题1、怎样设计“减法”计数器?2、进位信号的设置应注意什么?实验三基于QUARTUSII图形输入电路的设计一、实验目的1、通过一个简单的3—8译码器的设计,掌握组合逻辑电路的设计方法。
VHDL第4章_全加器
元件例化语句的第二部分则是此元件与当前设计实体(顶层文件 中 元件例化语句的第二部分则是此元件与当前设计实体 顶层文件)中 顶层文件 元件间及端口的连接说明。语句的表达式如下: 元件间及端口的连接说明。语句的表达式如下:
例化名 : 元件名 PORT MAP( [端口名 =>] 连接端口名 连接端口名,...); 端口名
3. 并置操作符 &
以下是一些并置操作示例: 以下是一些并置操作示例: SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ; SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ; ... a <= '1'&'0'&d(1)&'1' ; -- 元素与元素并置,并置后的数组长度为 元素与元素并置,并置后的数组长度为4 & & & ... IF a & d = "101011" THEN ... –- 在IF条件句中可以使用并置符 条件句中可以使用并置符
co 0 0 0 1
1位二进制半加器 位二进制半加器
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a,b : IN STD_LOGIC; , co, so : OUT STD_LOGIC); END ENTITY h_adder; ; ARCHITECTURE fh1 OF h_adder I BEGIN so <= (a OR b)AND(a NAND b); co <= NOT( a NAND b); END ARCHITECTURE fh1;
半加器和全加器的设计
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位全加器VHDL文本输入设计教案资料
1位全加器V H D L文本输入设计湖南文理学院姓名: 彭仕林 学号:201111020205 成绩:组号: 2 学院:物理与电子科学学院 年级: 大三 专业:电子信息科学与技术 课程名称: EDA 技术实验 日期:_____________一、实验名称1位全加器VHDL 文本输入设计二、实验目的学习QuartusII 软件的应用软件的应用,以及元件例化语句,进一步熟悉VHDL 设计技术。
三、实验仪器QuartusII 软件、《E-Play-SOPC 教学实验箱》四、实验原理及原理图物理与电子科学学院实验报告批阅教师签字:五、实验程序半加器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY half_adder ISPORT (a,b : IN STD_LOGIC;s,co: OUT STD_LOGIC);END half_adder;ARCHITECTURE half1 OF half_adder ISSIGNAL c,d : STD_LOGIC;BEGINc<=a OR b;d<=a NAND b;co<=NOT d;s<=c AND d;END half1;全加器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY fulladder ISPORT (a, b, cin: IN STD_LOGIC;sum, co : OUT STD_LOGIC;M : out std_logic_vector(3 downto 0));END fulladder;ARCHITECTURE full1 OF fulladder ISCOMPONENT half_adderPORT (a,b :IN STD_LOGIC;s,co:OUT STD_LOGIC);END COMPONENT ;SIGNAL u0_co,u0_s,u1_co : STD_LOGIC;BEGINM <= "0001";U0: half_adder PORT MAP(a,b,u0_s,u0_co);U1: half_adder PORT MAP(u0_s, cin, sum, u1_co);co<=u0_co OR u1_co;END full1;六、实验步骤(1)、打开QuartusII软件。
加法器实验报告
加法器实验报告实验三加法器的设计与仿真一、实验目的熟悉quartus ⅱ仿真软件的基本操作,用逻辑图和vhdl语言设计加法器并验证。
二、实验内容1、熟悉quartus ⅱ软件的基本操作,了解各种设计输入方法(原理图设计、文本设计、波形设计)2、用逻辑图和vhdl语言设计全加器并进行仿真验证;3、用设计好的全加器组成串行加法器并进行仿真验证;4、用逻辑图设计4位先行进位全加器并进行仿真验证;三、实验原理1. 全加器全加器英文名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。
一位全加器可以处理低位进位,并输出本位加法进位。
多个一位全加器进行级联可以得到多位全加器。
用途:实现一位全加操作逻辑图真值表利用与或门设计的全加器,它只能做一位的加法,先预想好它的功能,写出真值表,就可以根据这些来设计电路了。
2.四位串行加法器逻辑图利用全加器的组合实现4位串行加法器,全加器只能对一位进行操作,将每一位的结果传给下一位,就可以实现4位的加法器。
3.74283:4位先行进位全加器(4-bit full adder)利用74283芯片实现的4位先行进位全加器比前两者功能更完善,它可以实现进位功能,这个自己设计难度比较大,可以参照74283的功能表加深对它的理解,按照如下的逻辑图实现进位全加器。
逻辑框图逻辑功能表注:1、输入信号和输出信号采用两位对折列表,节省表格占用的空间,如:[a1/a3]对应的列取值相同,结果和值[σ1/σ3]对应的运算是σ1=a1+b1和σ3=a3+b3。
请自行验证一下。
2、c2是低两位相加产生的半进位,c4是高两位相加后产生的进位输出,c0是低位级加法器向本级加法器的进位输入。
四、实验方法与步骤实验方法:采用基于fpga进行数字逻辑电路设计的方法。
采用的软件工具是quartusii软件仿真平台,采用的硬件平台是altera epf10k20ti144_4的fpga试验箱。
一位全加器VHDL的设计实验报告
EDA技术及应用实验报告——一位全加器VHDL的设计班级:XXX姓名:XXX学号:XXX一位全加器的VHDL设计一、实验目的:1、学习MAX+PLUSⅡ软件的使用,包括软件安装及基本的使用流程。
2、掌握用VHDL设计简单组合电路的方法和详细设计流程。
3、掌握VHDL的层次化设计方法。
二、实验原理:本实验要用VHDL输入设计方法完成1位全加器的设计。
1位全加器可以用两个半加器及一个或门连接构成,因此需要首先完成半加器的VHDL设计。
采用VHDL层次化的设计方法,用文本编辑器设计一个半加器,并将其封装成模块,然后在顶层调用半加器模块完成1位全加器的VHDL设计。
三、实验内容和步骤:1、打开文本编辑器,完成半加器的设计。
2、完成1位半加器的设计输入、目标器件选择、编译。
3、打开文本编辑器,完成或门的设计。
4、完成或门的设计输入、目标器件选择、编译。
5、打开文本编辑器,完成全加器的设计。
6、完成全加器的设计输入、目标器件选择、编译。
7、全加器仿真8、全加器引脚锁定四、结果及分析:该一位加法器是由两个半加器组成,在半加器的基础上,采用元件的调用和例化语句,将元件连接起来,而实现全加器的VHDL编程和整体功能。
全加器包含两个半加器和一或门,1位半加器的端口a和b分别是两位相加的二进制输入信号,h是相加和输出信号,c是进位输出信号。
构成的全加器中,A,B,C分别是该一位全加器的三个二进制输入端,H是进位端,Ci是相加和输出信号的和,下图是根据试验箱上得出的结果写出的真值表:信号输入端信号输出端Ai Bi Ci Si Ci0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1。
组合逻辑电路(半加器全加器及逻辑运算)实验报告
《数字电路与逻辑设计实验》实验报告实验名称:组合逻辑电路(半加器全加器及逻辑运算)实验器材(芯片类型及数量)7400 二输入端四与非门,7486 二输入端四异或门,7454 四组输入与或非门一、实验原理1、组合逻辑电路的分析方法:(1)从输入到输出,逐步获取逻辑表达式(2)简化逻辑表达式(3)填写真值表(4)通过真值表总结出该电路的功能(5)选择芯片型号,绘制电路图,测试并验证之前的分析是否正确2、组合逻辑电路的设计方法:(1)根据实际逻辑问题的因果关系,定义输入输出变量的逻辑状态(2)根据设计要求,按逻辑功能列出真值表,填写卡诺图(3)通过卡诺图或真值表得到逻辑表达式(4)根据逻辑方程式画出图表,进行功能试验二、实验内容及原理图1、完成与非门、异或门、与或非门逻辑功能测试。
2、测试由异或门和与非门组成的半加器的逻辑功能。
根据半加器的逻辑表达式可知,半加器和位Y是A、B的异或而进位Z是A、B相与,故半加器可用一个继承异或门和两个与非门构成如图2.1。
AYBZ图2.1 半加器电路结构图(1)按照图2.1完成电路连接。
(2)按照表2.1改变A 、B 状态,并填表。
3、 测试全加器的逻辑功能。
SiG9CiA iB iC i-1图2.2 全加器电路结构图(1)写出图2.2的逻辑功能表达式(Y S i C i ) Y = Ai ⊕ Bi Si = Ai ⊕ Bi ⊕ Ci -1 Ci = AiBi + (Ai ⊕ Bi) Ci -1 (2)根据逻辑功能表达式列出真值表(3)按原理图选择与非门并接线测试,将结果记入表2.2。
4、 用异或、与或非门和与非门实现全加器的逻辑功能。
全加器可以用两个半加器和两个与门一个或门组成,在实验中,常用一块双异或门、一个与或非门和一个与非门实现。
(1)画出用异或门、与或非门和非门实现全加器的逻辑电路图,写出逻辑表达式。
Y = Ai ⊕ Bi Si = Ai ⊕ Bi ⊕ Ci -1 Ci = AiBi + (Ai ⊕ Bi) Ci -1(2)找出异或门、与或非门和与非门器件按自己画的图接线。
实验一:半加器与全加器实验
实验一:半加器与全加器实验(1)实验目的与任务目的:理解半加器、全加器原理;掌握加法器Verilog编写方法;熟悉基于Quartus II软件的Verilog代码文本输入设计流程。
任务:基于Quartus II软件和EDA实验箱完成全加器的设计、仿真与硬件测试。
(2)实验设备带有windows操作系统和Quartus II软件的PC机一台;EDA实验箱一台(包含电源线和下载线)。
(3)实验内容基于Quartus II软件使用Verilog HDL设计半加器与全加器,并进行仿真和硬件测试。
硬件测试方案:使用拨码开关SW1(被加数)、SW2(加数)和SW3(进位输入)作为输入,以发光二极管LED0(和)和LED1(进位输出)作为输出。
拨动SW1、SW2和SW3,LED0和LED1显示正确。
原理图:注意:原理图中的SW0、SW1、SW2应该为实验箱上的SW1、SW2、SW3。
(4)实验步骤①运行Quartus II软件,编写半加器和全加器的Verilog代码,并保存(半加器保存为h_adder.v,全加器保存为f_adder.v)。
②创建工程,工程名为f_adder,把h_adder.v和f_adder.v添加到工程中,选择目标芯片为Cyclone III系列的EP3C120F780C8,不使用第三方EDA工具。
③编译。
④使用Quartus II自带的仿真工具对全加器进行时序仿真(打开波形编辑器,设置仿真时间50us,波形文件存盘f_adder.vwf,将工程f_adder的端口信号节点选入波形编辑器中,总线数据格式设置和参数设置,编辑输入波形数据,启动仿真器,观察仿真结果)。
⑤引脚锁定。
⑥编译文件(产生JTAG编程文件f_adder.sof(掉电丢失);并通过转换得到JTAG间接编程文件f_adder_file.jic(掉电不丢失))下载,硬件测试,随意拨动实验箱中的SW1、SW2和SW3,观察LED0和LED1的变化。
组合逻辑电路(半加器全加器及逻辑运算) 实验报告
电子通信与软件工程系2013-2014学年第2学期《数字电路与逻辑设计实验》实验报告--------------------------------------------------------------------------------------------------------------------- 班级:姓名:学号:成绩:同组成员:姓名:学号:---------------------------------------------------------------------------------------------------------------------一、实验名称:组合逻辑电路(半加器全加器及逻辑运算)二、实验目的:1、掌握组合逻辑电路的功能调试2、验证半加器和全加器的逻辑功能。
3、学会二进制数的运算规律。
三、实验内容:1.组合逻辑电路功能测试。
(1).用2片74LS00组成图4.1所示逻辑电路。
为便于接线和检查.在图中要注明芯片编号及各引脚对应的编号。
(2).图中A、B、C接电平开关,YI,Y2接发光管电平显示.(3)。
按表4。
1要求,改变A、B、C的状态填表并写出Y1,Y2逻辑表达式.(4).将运算结果与实验比较.2.测试用异或门(74LS86)和与非门组成的半加器的逻辑功能.根据半加器的逻辑表达式可知.半加器Y是A、B的异或,而进位Z是A、B相与,故半加器可用一个集成异或门和二个与非门组成如图4.2.(1).在学习机上用异或门和与门接成以上电路.接电平开关S.Y、Z接电平显示.(2).按表4.2要求改变A、B状态,填表.3.测试全加器的逻辑功能。
(1).写出图4.3电路的逻辑表达式。
(2).根据逻辑表达式列真值表.(3).根据真值表画逻辑函数S i 、Ci的卡诺图.(4).填写表4.3各点状态(5).按原理图选择与非门并接线进行测试,将测试结果记入表4.4,并与上表进行比较看逻辑功能是否一致.实验结果:表4.1Y1=A+B Y2=(A’·B)+(B’·C)表4.2表4.3表4.4Y=A’B+AB’Z=CX1=A’B+C’+AB X2=A’B’+AB+C X3=A’B+AB’+C’Si=A’B’C+A’BC’+AB’C+ABC Ci=AC+AB+BC实验总结:此实验中因本就缺少一块74LS00的芯片导致线路不完整,原本打算用74LS20来代替74LS00,但电路还是出现了问题,原以为是电路接线的问题,也重新接线过,但是情况毫无变化。
(VHDL实验报告)一位半加器,全加器的设计
A
8
五、实验步骤
(一)半加器的设计
3、管脚分配
1)点击 Assignments 菜单下面的 Assignment Editor,进入到 引脚分配窗口。将弹出的窗口中的 All 改成 pin ,再点击 List, 在 Nodes Found窗口会出现所有信号的名称,点击中间的按钮则 Selected Nodes 窗口下方出现被选择的端口名称。双击 OK 按钮, 完成设置。进入管脚分配窗口。如下图所示:
A
14
五、实验步骤
(二)全加器的设计
4、对设计文件进行仿真(步骤同“半加器的设计”)
全加器中Ci的周期是b的两倍,b的周期是a的两倍。实验仿真波形如下 所示:
5、从设计文件到目标器件的加载(步骤同“半加器的设计”)
A
15
五、实验步骤
(三)补充“全加器的设计”。从设计文件到模块符号的 创建。
实验要求创建文件时底层文件用文本输入,顶层文件用图形输 入,即需要将底层的已经设计好的文本文件生成一个模块符号文件作 为自己的功能模块符号在顶层调用,该符号就像图形设计文件中的任 何其它宏功能符号一样可被高层设计重复调用。
2)依照“硬件与 FPGA 的管脚连接表”分配对应的输入管脚名 ,依照“LED灯与FPGA管脚连接表”分配对应的输出管脚名。本次实 验的分配关系是:(输入端 a、b分别对应的 FPGA 管脚名为 H8、J8 ,输出端 c、s分别对应的 FPGA 管脚名为 G13 、G15),如下图所 示:
3)分配完管脚后,再次进行一次全编译,使分配的管脚有效。
5)指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这里 介绍功能仿真。在 QUARTUSII软件中选择 Processing>Simulator Tool 命 令,打开仿真器工具窗口,如下图所示。
全加器的设计
实验课程名称: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) 打开原理图编辑窗。
半加器和全加器实验报告
半加器和全加器实验报告数电实验报告半加全加器实验二半加/减器与全加/减器一、实验目的:(1)掌握全加器和半加器的逻辑功能。
(2)熟悉集成加法器的使用方法。
(3)了解算术运算电路的结构。
二、实验设备:1、74LS00(二输入端四与非门)2、74LS86(二输入端四异或门)3、数字电路实验箱、导线若干。
(74LS00引脚图)三、实验原理:两个二进制数相加,叫做半加,实现半加操作的电路,称为半加器。
A表示被加数,B表示加数,S表示半加和,Co 表示向高位的进位。
全加器能进行加数、被加数和低位来的信号相加,并给出该位的进位信号以及和。
四、实验内容:用74LS00和74LS86实现半加器、全加器的逻辑电路功能。
(一)半加器、半减器M=0时实现半加,M=1时实现半减,真值表如下:(74LS86引脚图)(半加器图形符号)2、S?B?A?A?BC?B(A?M)(二)全加器、全减器S?A?B?Ci-1Ci?BCi-1?(M?A)(B?C)五、实验结果半加器:S?B?A?A?B C?B(A?M)全加器:S?A?B?Ci-1Ci?C1M?C2M其中C1?(A?B)Ci?1?AB,C2?(AB)Ci?1?AB为了方便,以下Ci?1用C表示CI?(AB?AB)CM?(AB?AB)CM?ABM?ABM?ABCM?ABCM?ABCM?ABCM?ABM?ABM?ABCM?ABCM?ABCM?ABCM?(ABCM?ABCM?ABCM?ABCM ?BC?ABCM?ABCM?ABCM?ABCM?(M?A)(B?C)(BC)则Ci?BCi-1?(M?A)(B?C)六、心得体会本次实验做的是半加/减器和全加/减器两个电路,比上次实验复杂很多,因此充满了挑战性。
实验过程中,我认识到了在利用给定的电子元件进行实验设计来实现某一种或多种功能时,对电路的化简非常重要,而且要符合给定元件的限定条件,只有将电路化简成为能够与给定元件相符的情况下才能达到实验目的。
实验二 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 结构体有那三种描述方式?六、总结。
半加器原理图实验报告
预习报告实验名称半加器原理图学号姓名指导老师一、实验目的1.学习和掌握半加器全加器的工作原理和设计方法。
2. 熟悉EDA工具Quartus II 的使用,能够熟练运用Vrilog HDL语言在Quartus II下进行工程开发、调试和仿真。
3.掌握组合逻辑电路的设计方法,理解组合电路的特点二、实验仪器设备仪器设备名称规格型号编号备注QuartusIIQuartus II 编译器三、实验原理两个二进制数相加,叫做半加,实现半加操作的电路,称为半加器。
A表示被加数,B表示加数,S表示半加和,co表示向高位的进位。
四、实验内容(VHDL语言代码和仿真波形截图及文字分析)1.建立工作库文件夹和编辑设计文件(1)新建一个文件夹。
本项设计的路径为e:\lxh\eda\bjq。
注意,文件夹名不能用中文,也最好不要用数字。
(2)输入原理图,打开Quartusll,选择菜单File-->New。
在New窗口中的Design Files中选择“Block Diagram/Schematic Files”。
然后在编译窗中输入半加器的原理图。
( 3 )文件存盘。
选择File——>Save As命令,找到已设立的文件夹e:\lxh\eda\bjq,存盘文件名为bjq.bdf。
当出现问句“Do you want to create...”时,若单击“是”按钮,则直接进入创建工程流程。
若单击“否”按钮,可按以下的方法进入创建工程流程。
2.创建工程(1)打开建立新工程管理窗。
选择菜单File→New Preject Wizard命令,即弹出“工程设置”对话框。
点击“next”单击此对话框最上一栏右侧的“…”按钮,找到文件夹E:\LXH\EDA\bjq,选中已存盘的文件bjq.bdf,再单击“打开”按钮。
其中第一行的 E:\LXH\EDA\bjq表示工程所在的工作库文件夹;第二行的bjq表示此项工程的工程名,工程名可以取任何其他的名,也可直接用顶层文件作为工程名,第三行是具体的文件名,这里即为 bjq。
加法器实验报告
加法器实验报告加法器实验报告随着社会一步步向前发展,报告与我们的生活紧密相连,报告具有双向沟通性的特点。
在写之前,可以先参考范文,以下是小编为大家整理的加法器实验报告,仅供参考,大家一起来看看吧。
加法器实验报告1一、实验目的1、了解加法器的基本原理。
掌握组合逻辑电路在Quartus Ⅱ中的图形输入方法及文本输入方法。
2、学习和掌握半加器、全加器的工作和设计原理3、熟悉EDA工具Quartus II和Modelsim的'使用,能够熟练运用Vrilog HDL语言在Quartus II下进行工程开发、调试和仿真。
4、掌握半加器设计方法5、掌握全加器的工作原理和使用方法二、实验内容1、建立一个Project。
2、图形输入设计:要求用VHDL结构描述的方法设计一个半加器3、进行编译,修改错误。
4、建立一个波形文件。
(根据真值表)5、对该VHDL程序进行功能仿真和时序仿真Simulation三、实验步骤1、启动QuartusⅡ2、建立新工程NEW PROJECT3、设定项目保存路径\项目名称\顶层实体名称4、建立新文件Blok Diagram/Schematic File5、保存文件FILE /SAVE6、原理图设计输入元件符号放置通过EDIT>SYMBOL插入元件或点击图标元件复制元件转动元件删除管脚命名PINNAME元件之间连线(直接连接,引线连接)7、保存原理图8 、编译:顶层文件设置,PROJECT>Set as TopLevel开始编译processing>Start Compilation编译有两种:全编译包括分析与综合(Analysis&Synthesis)、适配(Fitter)、编程(assembler)时序分析(Classical Timing Analysis)4个环节,而这4个环节各自对应相应菜单命令,可单独发布执行也可以分步执行9 、逻辑符号生成FILECreat/update>create Symbol File forCurrent File10 、仿真建立仿真wenjian添加需要的输入输出管脚设置仿真时间设置栅格的大小设置输入信号的波形保存文件,仿真功能仿真:主要检查逻辑功能是否正确,功能仿真方法如下:1TOOL/SIMULATOR TOOL,在SIMULATOR MODE下选择Functional,在SIMULATION INPUT栏中指定波形激励文件,单击Gencrator Functional Simulator Netist,生成功能仿真网表文件。
EDA半加器与全加器实验打印稿
实验(一):半加器与全加器(一)实验目的:1、练习MAX+PLU SⅡ软件的使用2、熟悉VHDL各种语句的用法3、理解半加器与全加器的逻辑功能。
(二)实验内容:半加器的设计与实现,全加器的设计与实现。
(三)设计过程:1.用VHDL语言设计与实现LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY half_adder ISPORT(A,B:IN STD_LOGIC;S,C:OUT STD_LOGIC);END half_adder;ARCHITECTURE hcs OF half_adder ISBEGINPROCESS (x,y)BEGINC<=A AND B;S<=A XOR B;END PROCESS;END hcs;2.图形方法实现:3.仿真波形如下:4.延时分析如下:(二)全加器的设计与实现:(1)图形方法设计如下:(2)仿真波形如下:(3)延迟时间分析如下:心得体会:通过今天的学习初步了解了max+plusII这个软件的各项功能使用,运行,修改,再运行,再修改直到最后成功编译仿真,挺有成就感的,也深深佩服此软件的设计。
(实验二)四选一数据选择器设计与实现学院:电气学院班级:电信0601姓名:侯常声学号:3060503010(Ⅰ) 实验目的:练习MAX+PLU SⅡ软件的使用,熟悉VHDL各种语句的用法,理解四选一数据选择器的逻辑功能。
(II) 实验内容:用四种方法来完成四选一数据选择器的设计与实现。
(III) 设计过程:1.用条件信号赋值语句实现:(1)用VHDL语言设计ENTITY mux4_1 ISPORT(A,B,C,D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S:IN STD_LOGIC_VECTOR(1 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END mux4_1;ARCHITECTURE hcs OF mux4_1 ISBEGINQ<=A WHEN S="00" ELSEB WHEN S="01" ELSEC WHEN S="10" ELSED WHEN S="11" ;END hcs;(2)仿真波形如下:(3)延迟时间分析如下:2.用选择信号赋值语句(并行)来实现:(1)用VHDL语言设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4_1a ISPORT(A,B,C,D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S:IN STD_LOGIC_VECTOR(1 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END mux4_1a;ARCHITECTURE hcs OF mux4_1a ISBEGINWITH S SELECTQ<=A WHEN "00",B WHEN "01",C WHEN "10",D WHEN "11","XXXX" WHEN OTHERS;END hcs;(2)仿真波形如下:(3)延迟时间分析如下:3.用IF分支语句(串行)来实现:(1)用VHDL语言设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4_1b ISPORT(A,B,C,D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S:IN STD_LOGIC_VECTOR(1 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END mux4_1b;ARCHITECTURE hcs OF mux4_1b ISBEGINPROCESS(S)BEGINIF(S="00")THEN Q<=A;ELSIF(S="01")THEN Q<=B;ELSIF(S="10")THEN Q<=C;ELSIF (S="11")THEN Q<=D;END IF;END PROCESS;END hcs;(2)仿真波形如下:(3)延迟时间分析如下:4.用CASE分支语句(串行)来实现:(1)用VHDL语言设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4_1c ISPORT(A,B,C,D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S:IN STD_LOGIC_VECTOR(1 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END mux4_1c;ARCHITECTURE hcs OF mux4_1c ISBEGINPROCESS(S)BEGINCASE S ISWHEN "00"=>Q<=A;WHEN "01"=>Q<=B;WHEN "10"=>Q<=C;WHEN "11"=>Q<=D;WHEN OTHERS=>NULL;END CASE;END PROCESS;END hcs;(2)仿真波形如下:(3)延迟时间分析如下:(IV)心得体会:通过这次学习,初步掌握了四种选择语句,理解了老师上课讲的这四种语句的不同和这些语句使用时所注意的事项,渐渐熟悉了这个软件的使用,感觉挺有收获的。
全加器的设计实验报告
全加器的设计实验报告《全加器的设计实验报告》摘要:本实验旨在设计并实现一个全加器电路,用于对两个二进制数进行加法运算。
通过实验,我们成功地设计了一个全加器电路,并进行了验证和测试。
实验结果表明,该全加器能够正确地对两个二进制数进行加法运算,并输出正确的结果。
引言:全加器是数字电路中常用的逻辑电路之一,用于对两个二进制数进行加法运算。
它由两个半加器和一个或门组成,能够实现对两个二进制数的加法运算,并输出相应的结果。
在本次实验中,我们将设计并实现一个全加器电路,并对其进行验证和测试。
设计与实现:首先,我们根据全加器的逻辑功能和真值表,设计了相应的电路图。
然后,我们选择适当的逻辑门和触发器进行电路的实现。
在实验中,我们采用了集成电路来实现全加器电路,并通过连接适当的引脚,将其组成一个完整的电路。
最后,我们对电路进行了验证和测试,确保其能够正确地进行加法运算。
实验结果:经过验证和测试,我们成功地实现了一个全加器电路,并对其进行了测试。
实验结果表明,该全加器能够正确地对两个二进制数进行加法运算,并输出正确的结果。
在不同的输入条件下,我们都得到了正确的输出结果,证明了该全加器的正确性和可靠性。
结论:通过本次实验,我们成功地设计并实现了一个全加器电路,并对其进行了验证和测试。
实验结果表明,该全加器能够正确地对两个二进制数进行加法运算,并输出正确的结果。
这为我们进一步深入理解数字电路和逻辑电路提供了重要的实践基础。
同时,我们也发现了一些问题和改进的空间,为今后的研究和实践提供了有益的启示。
希望通过本次实验,能够对数字电路的设计与实现有更深入的理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一位半加器,全加器设计
二、实验目的
1、掌握一位二进制半加器与全加器的原理。 2、进一步熟悉 QUARTUSII 软件的使用方法和 VHDL 输入。 3、掌握元件例化语句的使用。
4、学习从设计文件到模块符号的创建过程。
三、实验原理
( 1 )半加器两输入,两输出。其电路是 指对两个输入数据位相加,输出一个结果位和 进位,没有进位输入的加法器电路。是实现两 个一位二进制数的加法运算电路。其真值如下 图所示(S为和输出,C为进位输出):
五、实验步骤
(一)半加器的设计
6、从设计文件到目标器件的加载
完成对器件的加载有两种形式,一种是对目标器件进行加载文件,一种是对目标器件的配置芯 片进行加载。这里我们介绍对目标器件 EP2C35F672C8进行加载的方法。 1)使用下载电缆将 PC 机与实验系统连接起来。 2)选择 QUARTUSII 软件的 Tools>Programmer 命令,进行编程器窗口。如果没有设置编程 硬件,则编程硬件类型为 No Hardware,需要对编程硬件进行设置。点击 Hardware Setup…编程 硬件设置按钮,进行如下图 所示的编程硬件设置对话框。 3)点击 Add Hardware 按钮,出现 Add Hardware 对话框,在 Add Hardware 对话框中, 从 Hardware type 列表中选择所需要硬件类型,如果是 USB 接口的请参照用户使用手册中的 USB 电缆的安装与使用,如果使用的是并口下载线则选取如下图 所示的硬件类型,点击 OK按钮,完成 对硬件类型的设置。回到编程器硬件设置窗口, 点击 Close 按钮退出设置。则在编程器对话框中 的编程硬件类型会出现刚才选取的编程器硬件。 4)此次实验室所用的安装驱动的方式为:右键“我的电脑”--设备管理器--双击有黄色问 号通用USB--驱动程序--更新驱动程序--从列表或安装……--下一步--下一步--从磁盘安装--浏览-在我的电脑D盘中选择找到USB bluster即可安装好驱动。 5)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个工程文 件要加载到目标器件的文件,如果要加载其它文件可以从其它地方进行添加更改。选好加载文件后, 再点选 Progam/Configure,编程模式选取 JTAG 模式,点击 STRAT进行文件加载,直到加载进度
三、实验原理
( 2 )全加器三输入,两输出。其电路是 在半加器的基础上加了个进位输入的加法。其 真值表如下图所示:
三、实验原理
( 3 )由数字电路知识可知,一位全加器 可由两个一位半加器与一个或门构成,其原理 图如下图所示。故可采用元件例化语句来实现 一位全加器。
四、实验内容
在本实验中,征对半加器时,用两个拨动开关来表示半加器 的两个输入( A、B),用两个LED来表示半加器的两个输出(S、 C)。
对于全加器时,其设计利用层次结构描述法,首先设计半加 器电路,将其打包为半加器模块;然后在顶层调用半加器模块组 成全加器电路;最后将全加器电路编译下载到实验箱,其中用三 个拨动开关来表示全加器的三个输入(Ai、Bi、Ci-1),用两个 LED来表示全加器的两个输出(Si、Ci)。
实验箱上拨动开关档位在下方时表示其输出为低电平,反之 输出市电平;当FPGA与其对应的端口为高电平时LED就会发光,反 之LED灯灭。其拨动开关与FPGA管脚的连接表以及 LED灯与FPGA管 脚连接表如下两图所示:
五、实验步骤
(二)全加器的设计
1、建立工程文件(步骤同“半加器的设计”) 2、建立文本设计文件
全加器的设计采用“元件例化语句”,故需建立两个 VHDL 文 本编辑对话框(一个顶层文件,一个底层文件)。在相应的编辑框中 输入相应的VHDL语句,再分别以各自的实体名进行保存。注意的是顶 层文件名应必须与工程名一致。此次实验底层文件为半加器VHDL语句, 顶层文件为全加器VHDL语句,其语句分别如下两图所示:
5 )指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这 里介绍功能仿真。在 QUARTUSII 软件中选择 Processing>Simulator Tool 命令,打开仿真器工具窗口,如下图所示。
按图 上的提示,首先产生功能仿真网表文件(在simulation mode后选 择 Functional ),点击产生功能仿真网表的按钮 Generate Functio能仿真网表,然后点击开始仿真的 START 按 钮开始进行仿真,直到仿真进度条为 100%完成仿真。点击仿真报告窗口按 钮 Report ,观察仿真波形。确定其符合实验内容。实验仿真波形如下所示:
5)按默认选项,点击NEXT出现新建工程以前所有的设定信息, 再点击FINISH完成新建工程的建立。
五、实验步骤
(一)半加器的设计
2、建立文本设计文件
1 )选择 File--New--Device Design Files--VHDL File,点击OK按钮,打开进入文本编辑器对话框。 2)在文本编辑器中输入对应 VHDL程序代码,如下图 所示: 3)对文本文件进行编译。选择processing-compiler tool--start或直接点快捷栏上的三角形则会出 现编译器窗口。需要说明的是在进行设计文件的综合和分 析,也可以单独打开某个分析综 合过程不必进行全编译 界面。当完成上述窗口的设定后,点击 START 按钮进行 设计文件的全编译。如果文件有错,在软件的下方则会提 示错误的原因和位置,以便于使用者进行修改直到设计文 件无错。整个编译完成,软件会提示编译成功。
六、实验现象及结果
(一)半加器
本次实验我分别用实验箱上的开关 K1、 K2作为半加器两输入 A、 B;分别用LED 彩灯LED1、LED2作为半加器的两个输出端 S、C。实验时将实验箱的拨动开关拨向下时 为低电平“ 0 ”。拨向上时为高电平“ 1 ”, LED 高电平时灯亮,低电平时灯灭。以下 第一幅图即为输入为“ 00”时输出为“ 00”;第二幅图则是当输入为“01”时输出为 “10”;第三幅图是输入为“10”时输出为“10”;第四幅图是输入为“11”,输出 为“01”。其结果均符合半加器的真值表。
五、实验步骤
(一)半加器的设计
4、对设计文件进行仿真
1 )选择 File--New ,在弹出的对话框中选择 Vector Waveform File,点击OK按钮,打开进入一个空的波形编辑器窗口。
2)设置仿真结束时间,波形编辑器默认的仿真结束时间为 1µS, 根据仿真需要,可以自由设置仿真的结束时间(本次设置的为1ms)。 选择 QUARTUSII 软件的 Edit--End Time 命令,弹出线路束时间对 话框,在 Time框办输入仿真结束时间,点击OK按钮完成设置。如下 图所示: 3)加入输入、输出端口,在波形编辑器窗口左边的端口名列表 区点击鼠标右键,在弹出的右键菜单中选择 Insert Node or Bus… 命令,在弹出的 Insert Node or Bus 对话框界面中点击 Node Finder…按钮。在出现的 Node Finder 界面中的 Filter 列表中选 择 点击 List,在 Nodes Found 窗口出现所有信号的名称,点击中 间的按钮则 Selected Nodes 窗口下方出现被选择的端口名称。双击 OK按钮,完成设置,回到 Insert Node or Bus 对话框,双击OK 按 钮,所有的输入、输出端口将会在端口名列表区内显示出来。
五、实验步骤
(一)半加器的设计
3、管脚分配
1)点击 Assignments 菜单下面的 Assignment Editor ,进入 到引脚分配窗口。将弹出的窗口中的 All 改成 pin ,再点击 List, 在 Nodes Found 窗口会出现所有信号的名称,点击中间的按钮则 Selected Nodes 窗口下方出现被选择的端口名称。双击 OK 按钮, 完成设置。进入管脚分配窗口。如下图所示:
接下来的步骤与“半加器的设计”步骤一样。
五、实验步骤
(二)全加器的设计
3、管脚分配
主要步骤同“半加器的设计”。
本次实验全加器的本次实验的分配关系是:(输入端 a 、 b 、 Ci分别对应的 FPGA 管脚名为 H8、J8、J9,输出端 s、ci分别对应 的 FPGA 管脚名为 G13 、G15),如下图所示:
五、实验步骤
(二)全加器的设计
4、对设计文件进行仿真(步骤同“半加器的设计”)
全加器中 Ci 的周期是 b 的两倍, b 的周期是 a 的两倍。实验仿真波形如 下所示:
5、从设计文件到目标器件的加载(步骤同“半加器的设计”)
五、实验步骤
(三)补充“全加器的设计”。从设计文件到模块符号的 创建。
实验要求创建文件时底层文件用文本输入,顶层文件用图形输 入,即需要将底层的已经设计好的文本文件生成一个模块符号文件作 为自己的功能模块符号在顶层调用,该符号就像图形设计文件中的任 何其它宏功能符号一样可被高层设计重复调用。
五、实验步骤
(一)半加器的设计
4、对设计文件进行仿真
4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在波形编辑窗 口中,选择要输入波形的输入端口。以 b 端口为例,右键单击 b ,依次选 择value--clock--period,将时间改为1us。然后重复此过程将 a 的时间改 成 2us (a的周期是b的2倍),再将输入端的D0--D3选择不同的周期(一次 要有所差别)。最后选择软件的 Fie>Save进行保存。
2)依照“硬件与 FPGA 的管脚连接表”分配对应的输入管脚名 , 依照“LED灯与FPGA管脚连接表”分配对应的输出管脚名。本次实验 的分配关系是:(输入端 a、b分别对应的 FPGA 管脚名为 H8、J8, 输出端 c、s分别对应的 FPGA 管脚名为 G13 、G15),如下图所示: 3)分配完管脚后,再次进行一次全编译,使分配的管脚有效。