草庐IT

数字逻辑实验一--组合逻辑电路的设计

bit基因重组 2023-04-03 原文
  • 实验目的

  1. 了解 EDA 技术的发展、应用概述。
  2. 掌握 Multisim 2001 软件的使用,完成对电路图的仿真测试。
  • 实验电路

图 2-1 四舍五入判别电路

图2-2 表决电路

  • 实验软件与环境

软件  Multisim 14.2

环境  Windows 11 专业版21H2

设备名称     DESKTOP-RHF1A50

处理器  AMD Ryzen 7 5800H with Radeon Graphics            3.20 GHz

机带 RAM   32.0 GB (31.9 GB 可用)

设备 ID 1FF45BCA-F318-4B49-8B8B-855EA1F13783

产品 ID 00330-80000-00000-AA096

系统类型     64 位操作系统, 基于 x64 的处理器

  • 实验内容与步骤
  1. 了解元件工具箱中常用的器件的调用、参数选择。
  2. 调用各类仿真仪表,掌握各类仿真仪表控制面板的功能。
  3. 完成四舍五入判别 电路(其输入为 8421BCD 码,要求当输大于或等于 5 时,别电路输出为 1 ,反之为 0 。只能用与非门实现)。

首先写出真值表:

ABCD

F

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

0

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

逻辑函数为:

FA,B,C,D=m5,6,7,8,9,10,11,12,13,14,15

作出卡诺图:

CD

AB

00

01

11

10

00

0

0

0

0

01

0

1

1

1

11

1

1

1

1

10

1

1

1

1

化简得到:

FA,B,C,D=A+BD+BC

将其转化为与非式:

FA,B,C,D=ABDBC

根据该表达式设计出图 2-1 的四舍五入判别电路。

  1. 设计一个表决电路,当控制端 M=0 时,输入端 A、B、C一致同意时,输出 F为1 ,否则输出为 0 ;当控制端M=1 时,输入端 A 、B 、C多数同意时,输出 F 为 1 ,否则输出为 0 。要求用 3 线 8 线译码器 74LS138 和必要的门电路实现

首先写出真值表:

M

A

B

C

F

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

1

1

0

0

1

0

0

0

0

1

0

1

0

0

1

1

0

0

0

1

1

1

1

1

0

0

0

0

1

0

0

1

0

1

0

1

0

0

1

0

1

1

1

1

1

0

0

0

1

1

0

1

1

1

1

1

0

1

1

1

1

1

1

考虑将两片74LS138组合成4线-16线译码器:

则逻辑函数为:

F=m7,11,13,14,15

由于74LS138输出真值为低电平,所以将逻辑函数转换为

F=Y7,11,13,14,15

根据该表达式设计出图 2-2 的表决电路。

  • 实验结果

四舍五入判别电路:

按照真值表进行测试,功能完全符合。以下两个是输出真和假的仿真截图:

表决电路

按照真值表进行测试,功能完全符合。

以下三个是M=0时的仿真结果:全部投票时才输出高电平(真)

以下三个是M=1时的仿真结果:多数投票时输出高电平(真)

  • 实验收获、体会与建议

加深了设计组合逻辑电路的设计过程的熟练程度,掌握了multisim软件的基本操作和功能。比用纸笔做题有更直观的反馈效果能知道做的对不对。

同时发现了现实中的器件和理想逻辑门是不同的,实际的ic原件大多是多组逻辑门的组合,需要根据需要选择合适规格的元器件。处理输入个数不足的与非门可以用更多输入的与非门然后空置的引脚接高电平或者先用逻辑与两两相接再接入与非门。

有关数字逻辑实验一--组合逻辑电路的设计的更多相关文章

  1. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  2. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  3. ruby - 查找字符串中的内容类型(数字、日期、时间、字符串等) - 2

    我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s

  4. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  5. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  6. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  7. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  8. ruby-on-rails - 设计注册确认 - 2

    我在我的项目中有一个用户和一个管理员角色。我使用Devise创建了身份验证。在我的管理员角色中,我没有任何确认。在我的用户模型中,我有以下内容:devise:database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable,:validatable,:timeoutable,:registerable#Setupaccessible(orprotected)attributesforyourmodelattr_accessible:email,:username,:prename,:surname,:

  9. ruby - 将n维数组的每个元素乘以Ruby中的数字 - 2

    在Ruby中,是否有一种简单的方法可以将n维数组中的每个元素乘以一个数字?这样:[1,2,3,4,5].multiplied_by2==[2,4,6,8,10]和[[1,2,3],[1,2,3]].multiplied_by2==[[2,4,6],[2,4,6]]?(很明显,我编写了multiplied_by函数以区别于*,它似乎连接了数组的多个副本,不幸的是这不是我需要的)。谢谢! 最佳答案 它的长格式等价物是:[1,2,3,4,5].collect{|n|n*2}其实并没有那么复杂。你总是可以使你的multiply_by方法:c

  10. ruby - 最多 n 的组合 - 2

    给定一个数组a,什么是实现其组合直到第n的最佳方法?例如:a=%i[abc]n=2#Expected=>[[],[:a],[:b],[:c],[:a,b],[:b,:c],[:c,:a]] 最佳答案 做如下:a=%w[abc]n=30.upto(n).flat_map{|i|a.combination(i).to_a}#=>[[],["a"],["b"],["c"],["a","b"],#["a","c"],["b","c"],["a","b","c"]] 关于ruby-最多n的组合,我

随机推荐