6–4 Comparators

本文介绍了如何使用异或门构建基本比较器,比较两个二进制数的相等性,并通过级联74HC85扩展到多位。还详细讲解了如何通过XNOR和AND门结合判断不等性和使用VHDL设计4位幅度比较器。
摘要由CSDN通过智能技术生成

比较器的基本功能是比较两个二进制量的大小,以确定这些量之间的关系。在其最简单的形式中,比较器电路确定两个数字是否相等。 完成本节后,您应该能够

  • 使用异或门作为基本比较器
  • 分析具有相等和不等输出的幅度比较器的内部逻辑
  • 应用74HC85比较器来比较两个4位数的大小
  • 级联74HC85以将比较器扩展到八位或更多位
  • 使用VHDL描述一个4位幅度比较器

Equality

As you learned in Chapter 3, the exclusive-NOR gate can be used as a basic comparator because its output is a 0 if the two input bits are not equal and a 1 if the input bits are equal. Figure 6–18 shows the exclusive-NOR gate as a 2-bit comparator.

 In order to compare binary numbers containing two bits each, an additional exclusiveNOR gate is necessary. The two least significant bits (LSBs) of the two numbers are compared by gate G1, and the two most significant bits (MSBs) are compared by gate G2, as shown in Figure 6–19. If the two numbers are equal, their corresponding bits are the same, and the output of each exclusive-NOR gate is a 1. If the corresponding sets of bits are not equal, a 0 occurs on that exclusive-NOR gate output

为了比较包含两个位的二进制数,需要额外的异或门。两个数字的最低有效位(LSB)由门 G1 进行比较,而两个数字的最高有效位(MSB)由门 G2 进行比较,如图6-19所示。如果两个数字相等,则它们对应的位是相同的,每个异或门的输出为1。如果相应的位不相等,则该异或门输出为0。

 

 

为了产生一个单一的输出,指示两个数字的相等或不相等,可以将一个 AND 门与 XNOR 门结合起来,如图6-19所示。每个异或门的输出被应用于 AND 门的输入。当每个异或门的两个输入位相等时,数字的相应位相等,产生一个1应用于 AND 门的两个输入位,因此在输出上产生一个1。当两个数字不相等时,至少有一个或两个相应位不相等,AND 门的至少一个输入上会出现一个0,从而产生一个输出为0。因此,AND 门的输出表示两个数字的相等(1)或不相等(0)。示例6-5说明了这种操作的两种特定情况。 

Inequality

To determine an inequality of binary numbers A and B, you first examine the highestorder bit in each number. The following conditions are possible:

1. If A3 = 1 and B3 = 0, number A is greater than number B.

2. If A3 = 0 and B3 = 1, number A is less than number B.

3. If A3 = B3, then you must examine the next lower bit position for an inequality

 

比较器的工作原理如下:

  1. 将A和B的各个位进行比较。对于每一位,如果A的对应位大于B的对应位,则设置一个标志位“A > B”;如果A的对应位小于B的对应位,则设置一个标志位“A < B”;如果两个对应位相等,则设置一个标志位“A = B”。
  2. 如果任何一组对应位发现A > B 或 A < B,则停止比较并输出相应的结果。如果所有对应位都相等,则输出"A = B"。

这样,4位幅度比较器可以有效地比较两个4位二进制数的大小,并且在只需一次比较操作的情况下就可以确定它们的相对大小关系。

 

【使用教程】 一、环境配置 1、建议下载anaconda和pycharm 在anaconda中配置好环境,然后直接导入到pycharm中,在pycharm中运行项目 anaconda和pycharm安装及环境配置参考网上博客,有很多博主介绍 2、在anacodna中安装requirements.txt中的软件包 命令为:pip install -r requirements.txt 或者改成清华源后再执行以上命令,这样安装要快一些 软件包都安装成功后才算成功 3、安装好软件包后,把anaconda中对应的python导入到pycharm中即可(不难,参考网上博客) 二、环境配置好后,开始训练(也可以训练自己数据集) 1、数据集准备 需要准备yolo格式的目标检测数据集,如果不清楚yolo数据集格式,或者有其他数据训练需求,请看博主yolo格式各种数据集集合链接:https://blog.csdn.net/DeepLearning_/article/details/127276492 里面涵盖了上百种yolo数据集,且在不断更新,基本都是实际项目使用。来自于网上收集、实际场景采集制作等,自己使用labelimg标注工具标注的。数据集质量绝对有保证! 本项目所使用的数据集,见csdn该资源下载页面中的介绍栏,里面有对应的下载链接,下载后可直接使用。 2、数据准备好,开始修改配置文件 参考代码中data文件夹下的banana_ripe.yaml,可以自己新建一个不同名称的yaml文件 train:训练集的图片路径 val:验证集的图片路径 names: 0: very-ripe 类别1 1: immature 类别2 2: mid-ripe 类别3 格式按照banana_ripe.yaml照葫芦画瓢就行,不需要过多参考网上的 3、修改train_dual.py中的配置参数,开始训练模型 方式一: 修改点: a.--weights参数,填入'yolov9-s.pt',博主训练的是yolov9-s,根据自己需求可自定义 b.--cfg参数,填入 models/detect/yolov9-c.yaml c.--data参数,填入data/banana_ripe.yaml,可自定义自己的yaml路径 d.--hyp参数,填入hyp.scratch-high.yaml e.--epochs参数,填入100或者200都行,根据自己的数据集可改 f.--batch-size参数,根据自己的电脑性能(显存大小)自定义修改 g.--device参数,一张显卡的话,就填0。没显卡,使用cpu训练,就填cpu h.--close-mosaic参数,填入15 以上修改好,直接pycharm中运行train_dual.py开始训练 方式二: 命令行方式,在pycharm中的终端窗口输入如下命令,可根据自己情况修改参数 官方示例:python train_dual.py --workers 8 --device 0 --batch 16 --data data/coco.yaml --img 640 --cfg models/detect/yolov9-c.yaml --weights '' --name yolov9-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 500 --close-mosaic 15 训练完会在runs/train文件下生成对应的训练文件及模型,后续测试可以拿来用。 三、测试 1、训练完,测试 修改detect_dual.py中的参数 --weights,改成上面训练得到的best.pt对应的路径 --source,需要测试的数据图片存放的位置,代码中的test_imgs --conf-thres,置信度阈值,自定义修改 --iou-thres,iou阈值,自定义修改 其他默认即可 pycharm中运行detect_dual.py 在runs/detect文件夹下存放检测结果图片或者视频 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。
本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js前端技术的二手手机回收平台系统。该系统旨在为二手手机回收提供一个便捷、高效的在线交易平台,同时确保交易的安全性和透明度。 在后台管理方面,系统提供了用户管理、商品管理、订单管理以及数据统计等功能。通过这些功能,管理员能够轻松地管理平台上的用户信息、审核商品发布、跟踪订单状态,并对平台的运营数据进行详细的分析。 在前端展示上,系统采用了Vue.js框架,实现了响应式的用户界面设计。用户可以通过直观的界面浏览商品、发布自己的二手手机信息、下订单以及查看交易记录。此外,系统还提供了搜索和筛选功能,帮助用户快速找到符合自己需求的商品。 技术实现上,后端使用了Java语言,结合Spring框架进行依赖注入和事务管理,SpringMVC负责处理Web请求,而MyBatis则用于数据库操作。前端则使用Vue.js进行页面渲染和交互逻辑处理,搭配Axios进行异步数据请求。 本项目的数据库设计充分考虑了数据的完整性和安全性,采用了关系型数据库MySQL进行数据存储。数据库表结构包括用户表、商品表、订单表等,确保了系统的高效运行和数据的一致性。 对于正在进行毕业设计的学生或需要项目实战练习的Java学习者来说,本项目提供了一个完整的技术栈和业务逻辑实现,可以作为学习和实践的良好参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值