(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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五、实验步骤
(一)半加器的设计
4、对设计文件进行仿真
4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在波形编辑窗 口中,选择要输入波形的输入端口。以 b 端口为例,右键单击 b ,依次选 择value--clock--period,将时间改为1us。然后重复此过程将 a 的时间改 成 2us (a的周期是b的2倍),再将输入端的D0--D3选择不同的周期(一次 要有所差别)。最后选择软件的 Fie>Save进行保存。
五、实验步骤
(一)半加器的设计
4、对设计文件进行仿真
1)选择File--New,在弹出的对话框中选择Vector Waveform File,点击OK按钮,打开进入一个空的波形编辑器窗口。
2)设置仿真结束时间,波形编辑器默认的仿真结束时间为 1µS ,根据仿真需要,可以自由设置仿真的结束时间(本次设置的为1ms )。选择 QUARTUSII 软件的 Edit--End Time命令,弹出线路束时 间对话框,在 Time框办输入仿真结束时间,点击OK按钮完成设置。 如下图所示:
数字电路EDA设计与应用
一位半加器,全加器设计
二、实验目的
1、掌握一位二进制半加器与全加器的原理。 2、进一步熟悉 QUARTUSII 软件的使用方法和
VHDL 输入。 3、掌握元件例化语句的使用。 4、学习从设计文件到模块符号的创建过程。
三、实验原理
(1)半加器两输入,两输出。其电路是 指对两个输入数据位相加,输出一个结果位和 进位,没有进位输入的加法器电路。是实现两 个一位二进制数的加法运算电路。其真值如下 图所示(S为和输出,C为进位输出):
5)按默认选项,点击NEXT出现新建工程以前所有的设定信息, 再点击FINISH完成新建工程的建立。
五、实验步骤
(一)半加器的设计
2、建立文本设计文件
1)选择File--New--Device Design Files--VHDL File,点击OK按钮,打开进入文本编辑器对话框。
2)在文本编辑器中输入对应VHDL程序代码,如下图 所示:
五、实验步骤
(一)半加器的设计
3、管脚分配
1)点击 Assignments 菜单下面的 Assignment Editor,进入 到引脚分配窗口。将弹出的窗口中的 All 改成 pin ,再点击 List ,在 Nodes Found窗口会出现所有信号的名称,点击中间的按钮则 Selected Nodes 窗口下方出现被选择的端口名称。双击 OK 按钮, 完成设置。进入管脚分配窗口。如下图所示:
三、实验原理
(2)全加器三输入,两输出。其电路是 在半加器的基础上加了个进位输入的加法。其 真值表如下图所示:
三、实验原理
(3)由数字电路知识可知,一位全加器 可由两个一位半加器与一个或门构成,其原理 图如下图所示。故可采用元件例化语句来实现 一位全加器。
四、实验内容
在本实验中,征对半加器时,用两个拨动开关来表示半加器
2)依照“硬件与 FPGA 的管脚连接表”分配对应的输入管脚名 ,依照“LED灯与FPGA管脚连接表”分配对应的输出管脚名。本次实 验的分配关系是:(输入端 a、b分别对应的 FPGA 管脚名为 H8、J8 ,输出端 c、s分别对应的 FPGA 管脚名为 G13 、G15),如下图所 示:
3)分配完管脚后,再次进行一次全编译,使分配的管脚有效。
实验箱上拨动开关档位在下方时表示其输出为低电平,反之
输出市电平;当FPGA与其对应的端口为高电平时LED就会发光,反
之LED灯灭。其拨动开关与FPGA管脚的连接表以及LED灯与FPGA管
脚连接表如下两图所示:
五、实验步骤
(一)半加器的设计
1、建立工程文件
1)运行QUARTUSII 软件。
2)选择软件中的菜单 File>New Project Wizard,新建一个工 程。
3)点击NEXT进入工作目录,设定工程名和实体名。
4)点击NEXT,进入下一设定对话框,(本次实验选用Cyclone II系列芯片EP2C35F672C8),在对话框的左上方的 Family 下拉菜 单中选取 CycloneII,在中间右边的Pin count下拉菜单中选取672 ,在 Speed grade 下拉菜单中选取 8,在左下方的 Available devices 框中选取 EP2C35F672C8。点击 NEXT 完成器件的选取,进 入 EDA TOOL设定界面。
五、实验步骤
(二)全加器的设计
1、建立工程文件(步骤同“半加器的设计”) 2、建立文本设计文件
全加器的设计采用“元件例化语句”,故需建立两个VHDL文 本编辑对话框(一个顶层文件,一个底层文件)。在相应的编辑框中 输入相应的VHDL语句,再分别以各自的实体名进行保存。注意的是顶 层文件名应必须与工程名一致。此次实验底层文件为半加器VHDL语句 ,顶层文件为全加器VHDL语句,其语句分别如下两图所示:
接下来的步骤与“半加器的设计”步骤一样。
五、实验步骤
(二)全加器的设计
3、管脚分配
主要步骤同“半加器的设计”。
本次实验全加器的本次实验的分配关系是:(输入端 a、b、 Ci分别对应的 FPGA 管脚名为 H8、J8、J9,输出端 s、ci分别对应 的 FPGA 管脚名为 G13 、G15),如下图所示:
五、实验步骤
(一)半加器的设计
6、从设计文件到目标器件的加载
完成对器件的加载有两种形式,一种是对目标器件进行加载文件,一种是对目标器件的配置芯 片进行加载。这里我们介绍对目标器件 EP2C35F672C8进行加载的方法。
1)使用下载电缆将 PC 机与实验系统连接起来。
2)选择 QUARTUSII 软件的 Tools>Programmer 命令,进行编程器窗口。如果没有设置编程 硬件,则编程硬件类型为 No Hardware,需要对编程硬件进行设置。点击 Hardware Setup…编程 硬件设置按钮,进行如下图 所示的编程硬件设置对话框。
4)此次实验室所用的安装驱动的方式为:右键“我的电脑”--设备管理器--双击有黄色问 号通用USB--驱动程序--更新驱动程序--从列表或安装……--下一步--下一步--从磁盘安装--浏览-在我的电脑D盘中选择找到USB bluster即可安装好驱动。
5)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个工程文 件要加载到目标器件的文件,如果要加载其它文件可以从其它地方进行添加更改。选好加载文件后 ,再点选 Progam/Configure,编程模式选取 JTAG 模式,点击 STRAT进行文件加载,直到加载进 度变为 100%,文件成功加载完成。
(一)半加器
本次实验我分别用实验箱上的开关K1、K2作为半加器两输入A、B;分别用LED 彩灯LED1、LED2作为半加器的两个输出端S、C。实验时将实验箱的拨动开关拨向下时 为低电平“0”。拨向上时为高电平“1”,LED高电平时灯亮,低电平时灯灭。以下 第一幅图即为输入为“00”时输出为“00”;第二幅图则是当输入为“01”时输出为 “10”;第三幅图是输入为“10”时输出为“10”;第四幅图是输入为“11”,输出 为“01”。其结果均符合半加器的真值表。
5)指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这 里介绍功能仿真。在 QUARTUSII软件中选择 Processing>Simulator Tool 命令,打开仿真器工具窗口,如下图所示。
按图 上的提示,首先产生功能仿真网表文件(在simulation mode后选 择Functional),点击产生功能仿真网表的按钮 Generate Functional Simulation Netlist,产生功能仿真网表,然后点击开始仿真的 START 按 钮开始进行仿真,直到仿真进度条为 100%完成仿真。点击仿真报告窗口按 钮 Report,观察仿真波形。确定其符合实验内容。实验仿真波形如下所示 :
其方法为:在建立的文本文件(VHDL半加器代码)中,选择
Create/Update--Create Symbol for Current File,点击确定,即
可创建一个代表刚才打开的设计文件功能的符号(.bsf)。模块文件
创建完成后,再新建一个图形编辑文件,打开图形编辑器对话框。在
图形编辑器窗吕的工件区双击鼠标左键,或点击图中的符号工具按钮
3)对文本文件进行编译。选择processing-compiler tool--start或直接点快捷栏上的三角形则会出 现编译器窗口。需要说明的是在进行设计文件的综合和分 析,也可以单独打开某个分析综 合过程不必进行全编译 界面。当完成上述窗口的设定后,点击 START 按钮进行 设计文件的全编译。如果文件有错,在软件的下方则会提 示错误的原因和位置,以便于使用者进行修改直到设计文 件无错。整个编译完成,软件会提示编译成功。
,或选择菜单Edit--Insert
Symbol...。在Symbo对话框中的
Project项下会出现前面创建的半加器模块符号文件,我们就可以对
其进行调用。本次实验要用到两个半加器模块和一个或门模块,再对
其连接起来,并定义端口。结果如下图所示:
其它步骤均与“全加器的设计”步骤相同。此处不再一一赘述