【上海大学数字逻辑实验报告】二、组合电路(一)
一、 实验目的
- 熟悉TTL异或门构成逻辑电路的基本方式;
- 熟悉组合电路的分析方法,测试组合逻辑电路的功能;
- 掌握构造半加器和全加器的逻辑测试;
- 学习使用可编程逻辑器件的开发工具 Quartus II设计电路。
二、 实验原理
- 异或门是数字逻辑中实现逻辑异或的逻辑门,其功能是若两个输入的电平相异,则输出高电平;若输入的两个电平相同,则输出为低电平。
- TTL异或门的输入输出电压关系:
| 输入 | 输出 | |
|---|---|---|
| A | B | Y |
| 0V | 0V | 0V |
| 0V | 5V | 5V |
| 5V | 0V | 5V |
| 5V | 5V | 0V |
- 半加器是对两个一位二进制数进行相加,产生“和”与“进位”。其逻辑表达式为:

根据半加器的逻辑表达式可知,半加器可用一个异或门和两个与非门组成。 - 全加器是将两个一位二进制数及来自低位的进位进行相加,产生“和”与“进位”。其逻辑表达式为:

根据全加器的逻辑表达式可知,全加器可用两个异或门和三个与非门组成。
三、实验内容
实验任务一:异或门逻辑功能测试
(1) 实验步骤
- 将74LS86的输入引脚1A连接到K1,1B连接到K2,输出引脚连接到数码管LED6,接电接地后的示意图如下所示:

- 拨动开关,观察数码管的变化,填入异或门的输入与输出状态记录表。
(2) 实验现象
- 当两个输入引脚的电平相同时,异或门的输出为逻辑低电平(0)。
- 当两个输入引脚的电平不同时,异或门的输出为逻辑高电平(1)。
(3) 数据记录、分析与处理
异或门的输入输出状态记录表
| 输入A | 输入B | 输出Y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
(4) 实验结论
异或门的输出只有在两个输入的电平不同时才输出高电平,否则输出低电平。
实验任务二:使用分立元件的异或门和与非门分别构成半加器和全加器,并进行测试
(1) 实验步骤
a) 构成半加器
- 将K3、K4分别对应连接到74LS86和74LS00的输入引脚1B、1A;
- 将74LS00的输出引脚1Y同时连接到74LS00的输入引脚2A、2B,而后将74LS00的输出引脚2Y连接到LED6;
- 将74LS86的输出引脚1Y连接LED5。
- 接地接电后的示意图如下所示:

- 拨动开关,观察数码管的变化,填入半加器的输入与输出状态记录表。
b) 构成全加器
- 将K2、K3、K4分别对应连接到74LS86和74LS00的输入引脚2B、1B、1A
- 将74LS00的输出引脚1Y、2Y、4Y分别连接到74LS00的输入引脚4B、4A、LED5;
- 将74LS86的输出引脚1Y连接到74LS00的输入引脚2A同时连接到74LS86的输入引脚2A,而后将74LS86的输出引脚2Y连接到LED6。
- 接地接电后的示意图如下所示:

- 拨动开关,观察数码管的变化,填入一位全加器的输入与输出状态记录表。
(2) 实验现象
a) 半加器
- 当输入K3、K4都为逻辑低电平(0)时,LED5和LED6都不亮;
- 当输入K3、K4有一个为逻辑高电平(1)时,LED5会亮而LED6不亮;
- 当输入K3、K4都为逻辑高电平(1)时,LED5和LED6都亮。
b) 全加器
- 当输入K2为逻辑低电平(0),拨动K3、K4开关,发现LED5和LED6的亮灭情况和半加器一致;
- 当输入K2为逻辑高电平(1)时,拨动K3、K4开关,发现当K3、K4都为逻辑低电平(0)时,发现LED6会亮而LED5不亮;当K3、K4逻辑电平相反时,发现LED6不亮而LED5会亮;当K3、K4都为逻辑高电平(1)时,发现LED6和LED5都会亮。
(3) 数据记录、分析与处理
半加器的输入输出状态记录表:
| 输入 | 输出 | ||
|---|---|---|---|
| K4 | K3 | LED6 | LED5 |
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
全加器的输入输出状态记录表:
| 输入 | 输出 | |||
|---|---|---|---|---|
| K2 | K3 | K4 | LED6 | LED5 |
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |

(4) 实验结论
a) 半加器可实现两个一位二进制数相加,输出一个结果位和进位。
b) 一位全加器可以处理低位进位,并输出本位加法进位。
实验任务三:使用Quartus II设计二位全加器
(1) 实验步骤
- 用Quartus II设计出如下电路:

- 编译通过后进行波形仿真,验证二位全加器逻辑功能:

- 仿真通过后,参照原理图定义引脚。
- 生成编程并将文件下载到FPGA。
- 用开关和发光二极管测试FPGA的功能。
- 记录测试结果。
(1) 数据记录、分析与处理
二位全机器的输入输出状态记录表
| A1 | A0 | B1 | B0 | C | S0 | S1 |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 0 | 0 | 1 |
| 0 | 0 | 1 | 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 1 | 1 | 0 | 0 |
| 0 | 1 | 0 | 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 1 | 1 | 1 | 0 |
| 1 | 1 | 0 | 0 | 0 | 0 | 1 |
| 1 | 1 | 0 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 0 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 | 0 | 1 |
(2) 实验结论
通过使用Quartus II设计工具,我们成功地设计并测试了一个二位全加器电路。该电路的功能包括正确计算两个二位二进制数的和,并产生相应的进位信号。实验结果表明,电路在各种输入条件下都表现出良好的性能,符合预期行为。
四、建议和体会
- 在进行实验时,应先确认74LS00、74LS86的功能完好,而后仔细检查芯片的引脚连接,确保连接正确,以避免电路故障。
- 实验中要确保安全,特别是在使用电源和连接线时,避免短路和电击风险。
- 这个实验有助于加深对异或门和电路设计的理解,同时也提供了一个实际的编程和模拟测试经验。为了更好地理解电路的运作,我们可以尝试设计更复杂的电路或改进现有的设计。
相关文章:
【上海大学数字逻辑实验报告】二、组合电路(一)
一、 实验目的 熟悉TTL异或门构成逻辑电路的基本方式;熟悉组合电路的分析方法,测试组合逻辑电路的功能;掌握构造半加器和全加器的逻辑测试;学习使用可编程逻辑器件的开发工具 Quartus II设计电路。 二、 实验原理 异或门是数字…...
lodash中foreach踩坑
什么是lodash Lodash 是一个 JavaScript 实用工具库,提供了很多用于处理数据、简化开发等方面的功能。它提供了一组常用的工具函数,用于处理数组、对象、字符串等常见数据结构,同时也包含了一些函数式编程的工具。对于前端开发来说ÿ…...
Unity C++交互
一、设置Dll输出。 两种方式: 第一:直接创建动态链接库工程第二:创建的是可执行程序,在visual studio,右键项目->属性(由exe改成dll) 二、生成Dll 根据选项Release或Debug,运行完上面的生成解决方案后…...
人工智能-优化算法之动量法
对于嘈杂的梯度,我们在选择学习率需要格外谨慎。 如果衰减速度太快,收敛就会停滞。 相反,如果太宽松,我们可能无法收敛到最优解。 泄漏平均值 小批量随机梯度下降作为加速计算的手段。 它也有很好的副作用,即平均梯度…...
【MySQL】InnoDB中的索引
目录标题 索引底层的数据结构:B树B树与B树的区别InnoDB与MyISAM在B树使用索引结构的不同? 聚簇索引非聚簇索引联合索引 B树索引适用的条件查询全值匹配匹配左边的列匹配列前缀匹配范围的值精确匹配某一列并范围匹配另外一列避免使用隐式转换 排序必须按照…...
《软件工程原理与实践》复习总结与习题——软件工程
软件生命周期 软件生命周期分为三个时期、八个阶段 软件定义时期: 1)问题定义阶段:要解决什么问题 2)可行性研究阶段:确定软件开发可行 3)需求分析阶段:系统做什么 软件开发时期:…...
软工2021上下午第六题(组合模式)
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 层叠菜单是窗口风格的软件系统中经常采用的一种系统功能组织方式。层叠菜单中包含的可能是一个菜单项(直接对应某个功能),也可…...
在Spring Boot中使用不同的日志
前言,本篇就是介绍在Java中使用相关的日志,适合初学者看,如果对这篇不感兴趣的可以移步了,本篇主要围绕我们Java中的几种日志类型,也说不上有多深入,算的上浅入浅出吧,如果你有一段时间的开发经…...
运维知识点-openResty
openResty 企业级实战——畅购商城SpringCloud-网站首页高可用解决方案-openRestynginxlua——实现广告缓存测试企业级实战——畅购商城SpringCloud-网站首页高可用解决方案-openRestynginxlua——OpenResty 企业级实战——畅购商城SpringCloud-网站首页高可用解决方案-openRes…...
微服务中配置Nacos热更新
启动Nacos startup.cmd -m standalone 在IDE中启动服务 打开nacos管理后台并选择配置列表 创建配置(这里以日期格式为例) 因为这里配置的是userservice的服务,所以在userservice服务的pom文件中引入依赖 配置一个bootstrap.yml文件 注意这里bootstrap文件中配置过的内容,在app…...
ABAP2XLSX 的安装和demo
ABAP2XLSX 是一个git上面的很好用的工具,它可以帮助abaper们更方便,更简单的生成各种各样复杂的自定义的excel,以满足各企业的信息化建设 在安装这个之前,请先查看之前的博客,去安装abapgit abap2xlsx地址࿱…...
记一篇Centos7安装innodb_ruby
安装innodb_ruby过程非常坎坷,这里记录下安装过程,有些坑当时没有记录下来,主要把完成安装过程就记录下来 yum安装ruby默认的会安装ruby2.0.0版本,但是在安装innodb_ruby时,会报错,提示至少需要2.4版本以上…...
VMware虚拟机安装和使用教程(附最新安装包+以ubuntu为例子讲解)
目录 一、VMware Workstation 17 Pro 简介 二、新功能与改进 三、安装教程 3.1、下载安装包 3.2、运行安装包 四、创建虚拟机 五、启动虚拟机 六、总结与展望 一、VMware Workstation 17 Pro 简介 VMware Workstation 17 Pro是VMware公司为专业用户打造的一款虚拟化软件…...
c语言 / 指针错误的几种情况
1.未初始化的指针,直接释放 int *p; //计算机随机指向一片内存 2.free一个指针,指针没有指向NULL,直接使用 int *p(int *)malloc(sizeof(int)); free(p); //p依旧指向释放前内存的地址, 但是这片内存已经被释放, 被其他变量重新使用, 正…...
Stable-Diffusion——Windows部署教程
Windows 参考文章:从零开始,手把手教你本地部署Stable Diffusion Webui AI绘画(非最新版) 一键脚本安装 默认环境安装在项目路径的venv下 conda create -n df_env python3.10安装pytorch:(正常用国内网就行) python -…...
Day60.算法训练
912. 排序数组 归并排序 class Solution {public int[] sortArray(int[] nums) {int lo 0;int hi nums.length - 1;int[] assist new int[nums.length];sortArray(nums, assist, lo, hi);return nums;}private void sortArray(int[] nums, int[] assist, int lo, int hi) …...
深入了解Java8新特性-日期时间API之TemporalQuery、TemporalQueries
阅读建议 嗨,伙计!刷到这篇文章咱们就是有缘人,在阅读这篇文章前我有一些建议: 本篇文章大概2000多字,预计阅读时间长需要5分钟。本篇文章的实战性、理论性较强,是一篇质量分数较高的技术干货文章&#x…...
记录一次现网问题排查(分享查域名是否封禁小程序)
背景: 收到工单反馈说现网业务一个功能有异常,具体现象是tc.hb.cn域名无法访问,客户地区是河南省,这里记录下排查过程和思路。 首先梳理链路 客户端域名 tc.hb.cn cname—> domainparking-dnspod.cn(新加坡clb)—> snat—&…...
linux下实现Qt程序实现开机自启动
1.原理 要想实现开机自启动,首先,QT是没有这种实现的,最好是靠电脑开机的启动目录启动软件,下面这个目录 /etc/xdg/autostart 这是操作系统中用于配置启动项的目录,该目录下存放着开机自启动的启动器(.desktop)文件…...
TCP 基本认识
1:TCP 头格式有哪些? 序列号:用来解决网络包乱序问题。 确认应答号:用来解决丢包的问题。 2:为什么需要 TCP 协议? TCP 工作在哪一层? IP 层是「不可靠」的,它不保证网络包的交付…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇
根据 QYResearch 发布的市场报告显示,全球市场规模预计在 2031 年达到 9848 万美元,2025 - 2031 年期间年复合增长率(CAGR)为 3.7%。在竞争格局上,市场集中度较高,2024 年全球前十强厂商占据约 74.0% 的市场…...
LangChain【6】之输出解析器:结构化LLM响应的关键工具
文章目录 一 LangChain输出解析器概述1.1 什么是输出解析器?1.2 主要功能与工作原理1.3 常用解析器类型 二 主要输出解析器类型2.1 Pydantic/Json输出解析器2.2 结构化输出解析器2.3 列表解析器2.4 日期解析器2.5 Json输出解析器2.6 xml输出解析器 三 高级使用技巧3…...
第22节 Node.js JXcore 打包
Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本,基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...
Vue.js教学第二十一章:vue实战项目二,个人博客搭建
基于 Vue 的个人博客网站搭建 摘要: 随着前端技术的不断发展,Vue 作为一种轻量级、高效的前端框架,为个人博客网站的搭建提供了极大的便利。本文详细介绍了基于 Vue 搭建个人博客网站的全过程,包括项目背景、技术选型、项目架构设计、功能模块实现、性能优化与测试等方面。…...
【VLAs篇】02:Impromptu VLA—用于驱动视觉-语言-动作模型的开放权重和开放数据
项目描述论文标题Impromptu VLA:用于驱动视觉-语言-动作模型的开放权重和开放数据 (Impromptu VLA: Open Weights and Open Data for Driving Vision-Language-Action Models)研究问题自动驾驶的视觉-语言-动作 (VLA) 模型在非结构化角落案例场景中表现不佳…...
《开篇:课程目录》
大家好!我是一名.NET技术开发者,长期以来积累了比较多的项目实战经验,现在把它分享给大家,希望能够帮助到大家,同时为.NET社区提供一份力量,让更多的开发者参与进来。 要讲解的课程如下: 《介绍…...
matlab模糊控制实现路径规划
路径规划是机器人和自动驾驶系统中的重要问题之一,它涉及确定如何在给定环境中找到最优路径以达到特定目标。模糊控制是一种有效的控制方法,可以应用于路径规划问题。 路径规划算法的目标是在避免障碍物的情况下,找到机器人或车辆从起点到终…...
