【上海大学数字逻辑实验报告】三、组合电路(二)

一、实验目的

  1. 掌握8421码到余3码的转换。
  2. 掌握2421码到格雷码的转换。
  3. 进一步熟悉组合电路的分析和设计方法。
  4. 学会使用Quartus II设计8421码到余3码的转换电路逻辑图。
  5. 学会使用Quartus II设计2421码到格雷码的转换电路逻辑图。

二、实验原理

  1. 8421码是最常用的BCD码,在这种编码方式中,每一位二进制代码的“1”都代表一个固定数值。将每位“1”所代表的二进制数加起来就可以得到它所代表的十进制数字。
  2. 2421码是一种有权码,从左到右,第一位“1”代表“2”,第二位“1”代表“4”,第三位“1”代表“2”,第四位“1”代表“1”。
  3. 余3码是由8421BCD码加上0011形成的一种无权码,其特点为当两个十进制数的和是9时,相应的余3码的和正好是15,于是可自动产生进位信号,而不需修正。
  4. 8421码与余3码之间的关系:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 2421码与Gray码之间的关系:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三、实验内容

实验任务一:设计8421码到余3码的转换电路

(1) 实验步骤
  1. 用Quartus II设计出如下电路:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 编译通过后进行波形仿真,验证电路逻辑功能:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 仿真通过后,参照原理图定义引脚:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 生成编程并将文件下载到FPGA。
  2. 将开关连接对应的输入引脚,输出引脚连接到发光二极管:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 用开关和发光二极管测试FPGA的功能。
  2. 记录测试结果。
(2) 实验现象

当输入一个8421BCD码时,电路总是能输出对应的余3码。

(3) 数据记录、分析与处理

8421码到余3码转换电路的输入输出状态记录表:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(4) 实验结论

通过使用Quartus II设计工具,我们成功地设计并测试了一个8421码到余3码的转换电路。该电路的功能包括输入一个8421BCD码,并产生相应的余3码。实验结果表明,电路在各种输入条件下都表现出良好的性能,符合预期行为。

实验任务二:设计2421码到Gray码的转换电路

(1) 实验步骤
  1. 用Quartus II设计出如下电路:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 编译通过后进行波形仿真,验证电路逻辑功能:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 仿真通过后,参照原理图定义引脚:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 生成编程并将文件下载到FPGA。
  2. 将开关连接对应的输入引脚,输出引脚连接到发光二极管:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 用开关和发光二极管测试FPGA的功能。
  2. 记录测试结果。
(2) 实验现象

当输入一个2421码时,电路总是能输出对应的格雷码。

(3) 数据记录、分析与处理

2421码到Gray码转换电路的输入输出状态记录表:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(4) 实验结论

通过使用Quartus II设计工具,我们成功地设计并测试了一个2421码到Gray码的转换电路。该电路的功能包括输入一个2421BCD码,并产生相应的Gray码。实验结果表明,电路在各种输入条件下都表现出良好的性能,符合预期行为。

四、建议和体会

  1. 在实验前,深入理解编码系统和逻辑门的工作原理是非常重要的。
  2. 在设计电路时,要确保逻辑门的连接和布局正确无误,以避免错误输出。
  3. 在测试阶段,使用不同的8421码输入组合来验证电路的正确性。
  4. 波形模拟的结果对于评估电路的正确性非常重要。
  5. 这个实验有助于加深对编码系统和逻辑电路设计原理的理解,同时也提供了一个实际的编程和模拟测试经验。为后续进行更复杂的电路设计打下基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/190702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于llm的智能体-生命体

基于llm的智能体-生命体 简单代码大致流程图代码解析简单代码 class ASH():def __init__(self):print()self.mem = dict

TOP-K问题和向上调整算法和向下调整算法的时间复杂度问题的分析

TOP-K问题 TOP-K问题:即求数据结合中前K个最大的元素或者最小的元素,一般情况下数据量都比较大 比如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等 对于Top-K问题,能想到的最简单直接的方式就是排序,但是…

【程序设计】简易生产者、消费者模型

需求: 创建消息队列时需要指定队列的容量上限,队列中没有消息时,消费者从队列中take元素会阻塞;队列中的消息数量达到容量上限时,生产者往队列中put元素会阻塞。要保证线程安全。 组成: (1&…

【NeurIPS 2023】PromptIR: Prompting for All-in-One Blind Image Restoration

PromptIR: Prompting for All-in-One Blind Image Restoration, NeurIPS 2023 论文:https://arxiv.org/abs/2306.13090 代码:https://github.com/va1shn9v/promptir 解读:即插即用系列 | PromptIR:MBZUAI提出一种基…

文件操作--IO

目录 ♫什么是文件 ♫文件路径 ♫文件类型 ♫文件的管理 ♪File的构造方法 ♪File的常用方法 ♫文件的内容操作 ♪InputStream ♪OutputStream ♪字符流读写文件 ♫Scanner与流对象 ♫什么是文件 文件在计算机里可以指“狭义”的文件(指硬盘上的文件和目录&…

c语言详解牛顿迭代法以及求解倒数和平方根

Newtons iteration method 是在实数域和复数域利用切线不断逼近方程根的一种求高次曲线方程的方法,区别于梯度下降法,它是二阶导,收敛速度比较快,对于非凸函数,牛顿法容易受到鞍点或者最大值点的吸引。由于牛顿迭代法是…

【问题解决】Linux内核编译安装后磁盘空间已满问题

内核编译问题解决过程 【注】本文为个人遇到Linux内核经过make,make modules……乃至最后install以后VMware磁盘空间爆炸的情况后,不想重装虚拟机,自己找资料实现解决的,文章中很多链接是来自别的博主的(感谢这些大佬…

产品学习之路(一)

在做好开发的同时,还需要熟悉产品业务逻辑,不能为了功能而做功能,要从产品经理的角度去看待每个需求和客户痛点所在,这样针对产品设计出来的东西自己也有发言权; 目前作为一名前端开发人员,也在自学产品知识…

xxl-job 分布式任务调度框架

文章目录 分布式任务调度XXL-Job 简介XXL-Job 环境搭建XXL-Job (源码说明)配置部署调度中心docker安装 Bean模式任务(方法形式)-入门案例任务详解任务详解-执行器任务详解-基础配置任务详解-调度配置任务详解-基础配置任务详解-阻塞处理策略任务详解-路由策略 路由策略路由策略…

Redis数据结构之压缩列表

压缩列表是Redis为节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构。一个压缩列表可以包含任意多个节点,每个节点可以保存一个字节数组或者整数值。 压缩列表构成 zlbytes: 记录整个压缩列表占用的内存字节数,对压缩列…

LD_PRELOAD劫持、ngixn临时文件、无需临时文件rce

LD_PRELOAD劫持 <1> LD_PRELOAD简介 LD_PRELOAD 是linux下的一个环境变量。用于动态链接库的加载&#xff0c;在动态链接库的过程中他的优先级是最高的。类似于 .user.ini 中的 auto_prepend_file&#xff0c;那么我们就可以在自己定义的动态链接库中装入恶意函数。 也…

读书笔记:《Effective C++》

Effective C GitHub - taeguk/Effective-Cpp-Series: My example and experimental source codes about books of Effective C Series, “Effective C 3/E” and “Effective Modern C” by Scott Meyers. C Basic C Union CObject Oriented CTemplate CSTLTR1 - Boost Us…

Java数据结构之《折半查找》题目

一、前言&#xff1a; 这是怀化学院的&#xff1a;Java数据结构中的一道难度中等的一道编程题(此方法为博主自己研究&#xff0c;问题基本解决&#xff0c;若有bug欢迎下方评论提出意见&#xff0c;我会第一时间改进代码&#xff0c;谢谢&#xff01;) 后面其他编程题只要我写完…

自定义函数中的(int*a,int*b)与(int*a,int n)

事实上第一种更安全&#xff0c;不会因越界发生占位&#xff0c;从而导致错误。

C++的类和对象(一)

目录 1、面向过程和面向对象初认识 2、为什么要有类 3、类的定义 类的两种定义方式 4、类的访问限定符 5、类的作用域 5.1 为什么要有作用域&#xff1f; 5.2类作用域 6、类的实例化 6.1类的实例化的定义 6.2类的实例化的实现 6.3经典面试题 7、类对象 7.1类对…

计算机体系结构补充篇----静态超标量流水线及循环展开(一)

本文仅供学习&#xff0c;不作任何商业用途&#xff0c;严禁转载。部分资料取自----计算机系统结构教程(第二版)张晨曦等。部分资料来自----国科大计算机体系结构课程PPT–张科、刘珂、高婉玲 计算机体系结构----静态超标量流水线及循环展开&#xff08;一&#xff09; 摘要静…

Java加解密算法

Base64 Java 实现 Base64 加密&解密方法_java base64加密-CSDN博客 MD5 蓝易云&#xff1a;java实现md5加解密_java后端md5解密_tiansyun的博客-CSDN博客 HMACShA256 Java HMACShA256_java hmacsha256算法-CSDN博客

FreeRTOS第2天:

1. 二值信号量简介&#xff08;386.11&#xff09; 什么是信号量&#xff1f; 信号量&#xff08;Semaphore&#xff09;&#xff0c;是在多任务环境下使用的一种机制&#xff0c;是可以用来保证两个或多个关键代码段不被并 发调用。信号量这个名字&#xff0c;我们可以把它拆…

【Python-第三方库-pywin32】随笔- Python通过`pywin32`获取窗口的属性

Python通过pywin32获取窗口的属性 基础 获取所有窗口的句柄 【代码】 import win32guidef get_all_windows():hWnd_list []win32gui.EnumWindows(lambda hWnd, param: param.append(hWnd), hWnd_list)print(hWnd_list)return hWnd_list【结果】 获取窗口的子窗口句柄 【代…