实验一-加法器的设计与实现讲解

合集下载

实验一四位串行进位加法器的设计实验报告

实验一四位串行进位加法器的设计实验报告

实验一四位串行进位加法器的设计一、实验目的1.理解一位全加器的工作原理2.掌握串行进位加法器的逻辑原理3.进一步熟悉Quartus软件的使用,了解设计的全过程,二、实验容1.采用VHDL语言设计四位串行进位的加法器2.采用画原理图的方法设计四位串行进位加法器三、实验步骤1、使用VHDL语言设计1.打开File—>New Project Wizard输入文件名adder4保存在D 盘,打开File—>New—>VHDL File,从模版中选择库的说明,use 语句的说明,实体的说明,结构体的说明,编写VHDL代码,然后保存、编译。

打开File—>New—>Other File—>Vector Waveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。

从Assignments—>Settings—>Simulator Settings —>Functional然后Processing—>Generate Functional Simnlation Netlist —>确定。

选择Start Simulation保存最后的波形图,打开File —>close关闭工程。

底层文件:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY fadder ISPORT(a, b,cin : IN STD_LOGIC;s, co : OUT STD_LOGIC);END fadder;ARCHITECTURE arc1 OF fadder ISBEGINs<=a xor b xor cin;co<=((a xor b)and cin)or(a and b);END arc1;顶层文件:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY adder4 ISPORT(c0: IN STD_LOGIC;a,b : IN STD_LOGIC_VECTOR(3 DOWNTO 0);s : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);c4 : OUT STD_LOGIC);END adder4;ARCHITECTURE arc2 OF adder4 ISCOMPONENT fadderPORT(a, b,cin : IN STD_LOGIC;s, co : OUT STD_LOGIC);END COMPONENT;SIGNAL carry : STD_LOGIC_VECTOR(3 DOWNTO 1); BEGINu1 : fadder PORT MAP (a=>a(0), b=>b(0),cin=>c0,s=>s(0),co=>carry (1));u2 : fadder PORT MAP (a=>a(1),b=>b(1),cin=>carry(1),s=>s(1),co=>carry (2));u3 : fadder PORT MAP (a=>a(2),b=>b(2),cin=>carry(2),s=>s(2),co=>carry (3));u4 : fadder PORT MAP(a=>a(3),b=>b(3),cin=>carry(3),s=>s(3),co=>c4);END arc2;2、使用原理图的方法设计打开File—>New Project Wizard输入文件名adder4保存在D 盘,打开File—>New—>VHDL File,从模版中选择库的说明,use 语句的说明,实体的说明,结构体的说明,编写VHDL代码,然后选择File-->Create/Update-->Create Symbol Files for Current File,选择File-->New-->Other File-->Vector Waveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。

加法器电路设计实验报告

加法器电路设计实验报告

加法器电路设计实验报告【加法器电路设计实验报告】一、实验目的本实验的主要目标是通过实际操作,设计并实现一个基础的加法器电路,以深入理解数字逻辑电路的设计原理和工作方式。

通过对半加器、全加器以及多位加法器的设计与搭建,进一步熟悉集成门电路的应用,掌握组合逻辑电路的设计方法,并能对电路的逻辑功能进行有效的验证与分析。

二、实验原理加法器是数字系统中的基本运算单元,其核心工作原理基于二进制数的加法规则。

在最基础的层面上,一个半加器(Half Adder)用于计算两个一位二进制数的和,同时产生一个进位输出;而全加器(Full Adder)在此基础上增加了处理来自低位的进位输入,可以完成三位二进制数的相加。

对于多位二进制数的加法,可以通过级联多个全加器来实现。

1. 半加器:由两个异或门(XOR)实现“和”输出,一个与门(AND)实现“进位”输出,即S=A XOR B,Cout=A AND B。

2. 全加器:除了接收两个数据输入A和B外,还接收一个进位输入Cin,同样由异或门计算“和”,但“进位”输出需要考虑三个输入的与或逻辑关系,即S=A XOR B XOR Cin,Cout=(A AND B) OR (B AND Cin) OR (A AND Cin)。

三、实验步骤1. 半加器设计:首先,利用集成电路库中的逻辑门元件构建半加器,将A 和B作为异或门的输入得到和信号S,将A和B分别连接到与门的两个输入端得到进位信号Cout。

2. 全加器设计:在半加器的基础上,增加一个输入端Cin代表低位的进位,同样运用异或门和与门组合形成全加器的逻辑结构,根据全加器的逻辑表达式连接各门电路。

3. 多位加法器设计:为了实现多位二进制数的加法,将若干个全加器按照从低位到高位的顺序级联起来,每级全加器的进位输出连接到下一级的进位输入。

四、实验结果及分析经过电路设计与仿真测试,成功实现了从半加器到多位加法器的功能转化。

当给定两组多位二进制数后,所设计的加法器电路能够准确无误地计算出它们的和,并正确显示进位信息。

74138的实验报告

74138的实验报告

74138的实验报告数字系统设计综合实验报告数字系统设计综合实验报告实验名称:1、加法器设计2、编码器设计3、译码器设计4、数据选择器设计5、计数器设计6、累加器设计7、交通灯控制器设计班级:姓名:学号:指导老师:实验1 加法器设计1) 实验目的(1) 复习加法器的分类及工作原理。

(2) 掌握用图形法设计半加器的方法。

(3) 掌握用元件例化法设计全加器的方法。

(4) 掌握用元件例化法设计多位加法器的方法。

(5) 掌握用Verilog HDL语言设计多位加法器的方法。

(6) 学习运用波形仿真验证程序的正确性。

(7) 学习定时分析工具的使用方法。

2) 实验原理加法器是能够实现二进制加法运算的电路,是构成计算机中算术运算电路的基本单元。

目前,在数字计算机中,无论加、减、乘、除法运算,都是化为若干步加法运算来完成的。

加法器可分为1位加法器和多位加法器两大类。

1位加法器有可分为半加器和全加器两种,多位加法器可分为串行进位加法器和超前进位加法器两种。

(1)半加器如果不考虑来自低位的进位而将两个1位二进制数相加,称半加。

实现半加运算的电路则称为半加器。

若设A和B是两个1位的加数,S是两者相加的和,C是向高位的进位。

则由二进制加法运算规则可以得到。

(2)全加器在将两个1位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位三个数相加,这种运算称全加。

实现全加运算的电路则称为全加器。

若设A、B、CI分别是两个1位的加数、来自低位的进位,S是相加的和,C是向高位的进位。

则由二进制加法运算规则可以得到:3)(1)(2)(3) 实验内容及步骤用图形法设计半加器,仿真设计结果。

用原件例化的方法设计全加器,仿真设计结果用原件例化的方法设计一个4为二进制加法器,仿真设计结果,进行定时分析。

(4) 用Verilog HDL语言设计一个4为二进制加法器,仿真设计结果,进行定时分析。

实验一四位加法器和减法器设计

实验一四位加法器和减法器设计

实验一四位加法器和减法器设计一、实验背景在数字电路设计中,常常需要使用加法器和减法器来实现数字的加法和减法运算。

本实验的目的是设计一个四位加法器和一个四位减法器,将数字电路理论知识应用到实际电路设计中。

二、实验目的1.理解加法器和减法器的基本原理;2.掌握数字电路的设计方法;3.通过实验验证设计的正确性和可行性。

三、实验原理1.加法器原理加法器是一种能对两个二进制数进行相加运算的数字电路。

常用的加法器有半加法器、全加法器等。

其中,半加法器能够对两个1位二进制数进行相加运算,全加法器能对两个1位二进制数及一个进位进行相加运算。

2.减法器原理减法器是一种能对两个二进制数进行相减运算的数字电路。

减法器可以通过使用补码的方式进行实现。

四、实验设备和材料1.实验平台:数字电路实验箱;2.实验元件:逻辑门IC芯片、电路连接线等。

1.设计四位加法器电路:a.首先,设计并连接四个1位全加法器。

将输入端A、B和上一个全加法器的进位连线,将输出端S和进位连线,其中S为本全加法器的输出,进位作为下一个全加法器的输入。

b.最后一个全加法器的输出即为四位加法器的输出结果。

2.设计四位减法器电路:a.首先,将被减数输入端A和减数输入端B分别与减法器的输入端连接。

b.接下来,使用非门将减数B的每一位取反。

c.然后,将取反后的减数与被减数相加,得到相加结果。

d.最后,将相加结果输入到四位加法器电路中,即可得到减法结果。

六、实验验证2.搭建四位减法器电路,并输入A=1100、B=1010进行验证。

验证结果应为A-B=010。

七、误差分析及改进方法1.设计电路时要注意连接线的长度和接触的质量,以保证电路的正常运行。

2.如果电路不能正常工作,可以仔细检查电路连接是否正确,逐个排查错误并改正。

通过设计、搭建和验证的四位加法器和减法器电路,可以实现对二进制数的加法和减法运算。

九、实验心得通过本次实验,我深入了解了加法器和减法器的原理和实现方法。

数字逻辑实验报告

数字逻辑实验报告

数字逻辑实验报告数字逻辑实验报告引言数字逻辑是计算机科学中的重要基础知识,通过对数字信号的处理和转换,实现了计算机的高效运算和各种复杂功能。

本实验旨在通过实际操作,加深对数字逻辑电路的理解和应用。

实验一:二进制加法器设计与实现在这个实验中,我们需要设计一个二进制加法器,实现两个二进制数的加法运算。

通过对二进制数的逐位相加,我们可以得到正确的结果。

首先,我们需要将两个二进制数输入到加法器中,然后通过逻辑门的组合,实现逐位相加的操作。

最后,将得到的结果输出。

实验二:数字比较器的应用在这个实验中,我们将学习数字比较器的应用。

数字比较器可以比较两个数字的大小,并输出比较结果。

通过使用数字比较器,我们可以实现各种判断和选择的功能。

比如,在一个电子秤中,通过将待测物品的重量与设定的标准重量进行比较,可以判断物品是否符合要求。

实验三:多路选择器的设计与实现在这个实验中,我们需要设计一个多路选择器,实现多个输入信号中的一路信号的选择输出。

通过使用多路选择器,我们可以实现多种条件下的信号选择,从而实现复杂的逻辑控制。

比如,在一个多功能遥控器中,通过选择不同的按钮,可以控制不同的家电设备。

实验四:时序电路的设计与实现在这个实验中,我们将学习时序电路的设计与实现。

时序电路是数字逻辑电路中的一种重要类型,通过控制时钟信号的输入和输出,实现对数据的存储和处理。

比如,在计数器中,通过时序电路的设计,可以实现对数字的逐位计数和显示。

实验五:状态机的设计与实现在这个实验中,我们将学习状态机的设计与实现。

状态机是一种特殊的时序电路,通过对输入信号和当前状态的判断,实现对输出信号和下一个状态的控制。

状态机广泛应用于各种自动控制系统中,比如电梯控制系统、交通信号灯控制系统等。

实验六:逻辑门电路的优化与设计在这个实验中,我们将学习逻辑门电路的优化与设计。

通过对逻辑门电路的布局和连接方式进行优化,可以减少电路的复杂性和功耗,提高电路的性能和可靠性。

实验报告01-1位加法器

实验报告01-1位加法器

实 验 __一__
【实验名称】
1位加法器
【目的与要求】
1. 掌握1位全加器的设计
2. 学会1位加法器的扩展
【实验内容】
1. 设计1位全加器
2. 将1位全加器扩展为4位全加器
3. 使4位的全加器能做加减法运算
【操作步骤】
1. 1位全加器的设计
(1) 写出1位全加器的真值表 (2) 根据真值表写出表达式并化简
(3) 画出逻辑电路 (4) 用quartusII 进行
功能仿真,检验逻辑电路是否正确,将仿真波形截图并粘贴于此 (5) 如果电路设计正确,将该电路进行封装以用于下一个环节
2.将1位全加器扩展为4位全加器
(1)用1位全加器扩展为4位的全加器,画出电路图
(2)分别用两个4位补码的正数和负数验证加法器的正确性(注意这两个数之和必须在4位补码的数的范围内,这两个数包括符号在内共
4位),用quartusII进行功能仿真并对仿真结果进行截图。

-5+3=-2:1011+0011=1110
3.将4位的全加器改进为可进行4位加法和减法的运算器
(1)在4位加法器的基础上,对电路进行修改,使该电路不仅能进行加法运算而且还能进行减法运算。

画出该电路
(2)分别用两个4位补码的正数和负数验证该电路的正确性(注意两个数之和必须在4位补码的数的范围内),用quartusII进行功能仿真
并对仿真结果进行截图。

3-5=-2: 0011 1 0101 1110
3+(-5)=-2 : 0011 0 1011 1110
【附录】。

4位二进制并行加法器的设计

4位二进制并行加法器的设计

实验一4位二进制并行加法器的设计1.实验目的:(1)学习使用Quartus II软件的基本用法(2)了解和掌握VHDL语言的语法规则和编程方法及基本流程(3)了解VHDL语言的基本结构2.实验内容用VHDL语言设计一4位二进制并行加法器。

参考设计思路:加法器是数字系统中的基本逻辑器件,减法器和硬件乘法器都可由加法器来构成。

多位加法器的构成有两种方式:并行进位和串行进位方式。

并行进位加法器设有进位产生逻辑,运算速度较快;串行进位方式是将全加器级联构成多位加法器。

并行进位加法器通常比串行级联加法器占用更多的资源。

随着位数的增加,相同位数的并行加法器与串行加法器的资源占用差距也越来越大。

因此,在工程中使用加法器时,要在速度和容量之间寻找平衡点。

实践证明,4位二进制并行加法器和串行级联加法器占用几乎相同的资源。

这样,多位加法器由4位二进制并行加法器级联构成是较好的折中选择。

3.实验要求(1)编写VHDL程序(2)记录系统仿真,画出时序图(3)记录实验过程中遇到的问题及解决办法4.程序设计5.生成RTL电路图6.仿真波形7.实验心得本周的实验是我学习该门课程进行的第一次实验,在实验过程中遇到了很多问题,比如:对Quartus II软件不熟悉,而且全是英文状态,不会使用软件的功能;编写程序时,多次报错,各种各样报错;编写程序完成后,成功编译了,但不会对仿真赋值等。

最后,我通过反复观看老师发的实验操作案例,并通过百度搜索相关的操作流程,翻阅教科书查找相关的解决方案。

第一次实验难免会遇到困难,最后经过我的不懈努力,终于把问题解决了,实验也很成功。

加法器实训实验报告

加法器实训实验报告

一、实验目的1. 理解加法器的基本原理和结构。

2. 掌握加法器的使用方法和调试技巧。

3. 通过实际操作,加深对数字电路基础知识的理解。

二、实验器材1. 实验箱2. 加法器芯片(如741)3. 逻辑分析仪4. 万用表5. 连接线6. 电源三、实验原理加法器是一种基本的数字电路,用于实现两个或多个数字的加法运算。

本实验以半加器和全加器为基础,通过级联实现多位数的加法运算。

1. 半加器:完成两个一位二进制数相加,并产生和与进位。

2. 全加器:在半加器的基础上增加一个进位输入端,实现多位数的加法运算。

四、实验步骤1. 搭建电路:- 将加法器芯片插入实验箱的相应位置。

- 根据实验要求,连接输入端、输出端和电源。

- 使用逻辑分析仪观察输入信号和输出信号。

2. 半加器测试:- 将两个一位二进制数输入到半加器的两个输入端。

- 观察逻辑分析仪的输出,验证半加器的功能。

3. 全加器测试:- 将两个一位二进制数和一个进位信号输入到全加器的三个输入端。

- 观察逻辑分析仪的输出,验证全加器的功能。

4. 多位数加法测试:- 将多位二进制数输入到全加器的相应输入端。

- 观察逻辑分析仪的输出,验证多位数的加法运算。

5. 实验结果分析:- 对比理论计算结果和实验结果,分析实验误差原因。

五、实验结果与分析1. 半加器测试:- 输入:A=0, B=0- 输出:和=0,进位=0- 输入:A=1, B=0- 输出:和=1,进位=0- 输入:A=0, B=1- 输出:和=1,进位=0- 输入:A=1, B=1- 输出:和=0,进位=12. 全加器测试:- 输入:A=0, B=0, 进位=0- 输出:和=0,进位=0- 输入:A=1, B=0, 进位=0- 输出:和=1,进位=0- 输入:A=0, B=1, 进位=0- 输出:和=1,进位=0- 输入:A=1, B=1, 进位=0- 输出:和=0,进位=13. 多位数加法测试:- 输入:A=1010,B=1101,进位=0- 输出:和=10111,进位=1实验结果表明,加法器能够实现预期的功能,实验结果与理论计算基本一致。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编码如下;
library ieee;
Endd控制乘法器结束;
Clr起到复位作用;
Ca用来控制乘数移位寄存器(74194)的移位功能,在乘法器进行移位相加的过程中进行移位;
Cb[0]、cb[1]用来控制被乘数移位寄存器(74194)的移位功能,在乘法器进行移位相加的过程中进行移位;
Cm[0]、cm[1]控制八位移位寄存器(74198)的移位功能,使得和乘数与被乘数的移位相一致;
4、掌握元件例化语句用法;
5、熟悉软硬件设计验证方法。
四、实验过程
设计思想:
8位二进制加法器可以由8个全加器通过级联的方式构成。根据全加器级联的原理,用VHDL设计一个8位二进制数的加法器,可以先设计一个一位全加器,然后利用一位全加器采用元件例化的方式实现加法器。
实验步骤:
1、设计一个全加器
新建工程,建立源文件,输入VHDL设计文件,如下图所示:
实验六
一、实验目的
1、了解乘法器的工作原理。
2、了解复杂时序电路的设计流程。
二、实验原理及内容
实验原理
设计一个能进行两个十进制数的乘法器,乘数和被乘数的输入用开关K1~K10代表0~9,用编码器对数据开关进行编码,设置相乘信号,当输入完毕后,相乘信号有效,使输入的乘数送进寄存器寄存。在输入被乘数。设计等于信号。当输入完毕后。启动乘法模块。
实验项目二:简单计算器设计与实现
基本要求:
1.能够实现加减运算
2.能够实现乘法运算
扩展要求:
1.能够实现除法运算
一、实验目的
利用原件例化语句完成一个8位加法器的设计。
二、实验环境
Quartus II开发系统
三、实验内容
1、掌握层次化设计的方法;
2、掌握一位全加器工作原理;
3、掌握用VHDL文本输入法设计电子线路的详细流程;
总结实验过程中遇到的各种问题,问题产生的原因,解决方法,分析仿真结果,验证8位加法器设计的是否正确。
根据实验设计思路,我先用VHDL设计了一个全加器full_adder.vhd,编译、仿真成功后,通过元件例化的方式,采用原理图设计了一个8位的加法器adder8.bdf,但是在这个过程中出现了很多问题,即由于我是把这个8位的加法器的每个全加器元件输入输出引脚分开的,因此一开始就设计了17个输入引脚,这使得我在给输入引脚添加信号时不知道添加什么信号,才能够起到验证仿真结果是否正确的目的。
实验内容
1、设计一个能进行两个十进制数相乘的乘法器,乘数和被乘数均小于100。(可以参考教材231页的VHDL代码来设计)
2、对所编写的电路进行编译及正确的仿真。
三、实验条件
Quartus II实验环境
四、实验及仿真
顶层文件如下:
该器件multi对乘法过程进行时序控制。
Clk为时钟信号;
lStart控制乘法器的开始;
继续建立源文件,输入VHDL设计文件,如下图所示:
依照上述步骤,保存文件,对文件进行编译、仿真,以下是仿真结果,如图所示:
五、实验总结
本次实验的目的是设计一个8位二进制加法器,而8位二进制加法器可以由8个全加器通过级联的方式构成。
根据全加器级联的原理,用VHDL设计一个8位二进制数的加法器,可以先设计一个一位全加器,然后利用一位全加器采用元件例化的方式实现加法器。
另外,我在这里还遇到了一些其他问题,由于在建立原理图文件adder8.bdf以后没有将该原理图文件设置成顶层文件,这使得我在给输入引脚添加信号时无法添加引脚。这里还存在一个问题:当通过原理图设计8位加法器时,我不知道能不能ห้องสมุดไป่ตู้它当着一个整体,即3输入2输出。另外,怎么通过在原理图设计里面把这一思想表示出来。
在本次实验过程中,虽然出现了很多问题,但正是因为在操作过程中发现了很多问题并且通过对这些问题的解决,我对Quartus II 7.0开发系统环境也有了更深入的了解和认识。
每一次发现错误,都是一个新的进步,比起上次实验课,我觉得自己在操作动手能力方面又有了提升,至少现在看到一个问题的时候,能够明白是什么问题,能够知道该怎么去问,该怎么去解决它。所以说,无论干什么,但凡是要想真正学一门知识,都要自己去摸索,只有自己亲自动手去做了,才能够真正深入地认识和了解它,才能够学到自己想要的东西。另外,在学习的过程中,还要掌握技巧,我觉得在这方面自己就很欠缺,因此,以后一定要注意,努力培养这方面的能力。
完成设计文件输入后,保存文件,对文件进行编译、仿真,以下是仿真结果,如图所示:
由图可知仿真结果正确。
2、元件例化
把VHDL设计文件转为原理图中使用的元件。在文件菜单File中选择Creat/Update选项,单击Create Symbol File for Current File 选项,系统自动生成相应的元件标号。
由于通过原理图设计无法完成8位加法器的设计,所以我又换了VHDL设计。通过VHDL设计比原理图设计简单,但是更容易出错,比如输入引脚、中间信号生成等的不匹配。
建立VHDL源文件以后,保存为adder8.vhd文件名,编译、仿真,但是由于我是将8位加法器当成的一个整体,即3输入2输出,并且在端口定义时我所定义的数据类型为逻辑矢量,因此这里又出现一个问题,即在仿真时给输入信号添加信号时不能确定到底应该怎么添加,并且其中间信号无法确定。不过后来在老师的指导下,我明白了错误根源在哪里。
重复新建文件的操作,选择Block Diagram/Schmatic File 选项,新建一个原理图文件,在添加元件列表中可以看到自动生成的元件,选择full_adder这个元件添加到原理图中,如下图所示:
3、完成顶层图的设计
用生成的元件标号,完成顶层图的设计。这里有两种方法,一种是直接用原理图设计,根据原理图设计工具的使用方法,完成顶层文件的设计,这个方法比较复杂,所以这里选择另一种方法,通过VHDL设计文件。
在对8位的加法器进行仿真时,一开始我是用的时序仿真,这里就出现一个问题,即仿真结果为未知,但是换用功能仿真的时候,其结果就是正确的,不指导是什么原因。还有另外一个问题,即我在将adder8.vhd文件设置为顶层文件以后,并没有进行编译就开始仿真,这使得我在给引脚添加信号时始终也找不到输入信号,不过好在面意识到了这个问题。
相关文档
最新文档