数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 (三)奇偶校验

news2025/1/18 9:06:46

数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 (三)奇偶校验


🔈声明:
😃博主主页:王_嘻嘻的CSDN博客
🧨未经作者允许,禁止转载
🔑系列专栏:牛客Verilog习题集
🚩推荐一个IC、FPGA新手入门的好网站:👉快 点 击 进 入 学 习 吧


  继续整理牛客网经典Verilog习题讲解,牛客网里除了最新的Verilog题库还有其它领域的经典笔试、面试题,大家快和我一起刷起来吧 点 击 跳 转



题目


需要对输入的32位数据进行奇偶校验,根据sel输出校验结果(1输出奇校验,0输出偶校验):


在这里插入图片描述

分析:

  很多朋友刚拿到此题的时候,可能根据波形连需求都看不明白,这点也是牛客的缺点,题干写的过于简单!!

  • 首先需要明白什么是奇偶校验,其实这是来判断数据总线上有奇数个‘1’,还是偶数个‘1’
  • 通常奇偶校验会用在环境简单的传输通道,检验数据是否在传输过程中发生错误

  明白何为奇偶校验后,还需要注意题目中有sel信号,如题所述,该信号为‘1’时,需要输出奇校验,为‘0’时,需要输出偶校验



题解:

  在完成该题时,可以用到按位计算的操作(操作符在前,变量在后),比如 |a(按位或)&a (按位与)^a (按位异或)
  本题在计算奇校验时用到了按位异或,因为异或的特点就是偶数个‘1’时输出0,奇数个‘1’时输出‘1’。(具体可以通过枚举法感受一下)
  而偶校验只需对奇校验取反即可,在下面的题解中,我用到的是“~”,是位取反的功能,在单比特情况下, ‘~’和‘!’是相同功能的。但是多比特时,‘!’是逻辑取反,只会输出‘0’或‘1‘


module odd_sel(
input [31:0] bus,
input sel,
output check
);
//*************code***********//
wire odd_check  = ^bus[31:0]; 	//奇校验
wire even_check = ~odd_check;   //偶校验

assign check = sel ? odd_check : even_check;
//*************code***********//
endmodule


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

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

相关文章

房产管理系统平台架构安全需求分析

数图互通高校房产管理系统是基于公司自主研发的FMCenterV5.0平台,是针对中国高校房产的管理特点和管理要求,研发的一套标准产品;通过在中国100多所高校的成功实施和迭代,形成了一套成熟、完善、全生命周期的房屋资源管理解决方案。…

JavaAccessBridge(Java访问桥)详细介绍

Java Access Bridge 通过 Java 访问桥 API,您可以给使用Java应用程序编写的在windows系统上运行的图形化系统开发辅助技术应用程序。它包含本机方法,使您能够查看和操作有关 Java 应用程序中 GUI 元素的信息,这些信息将通过 Java 访问桥转发…

二维数组中各个三角形的关系,三角形的打印同理

给你一个n*n矩阵,按照顺序填入1到n*n的数,例如n5,该矩阵如下 (这是一个题目,但是我这个写法在牛客刷题中是不能正确的得分的,但是我找到了各个关系,然后分享给大家) 然后再对其进行求和处理,是…

在IntelliJ IDEA中使用.ignore插件忽略Git不必要提交的文件

第一步: 点击File->Settings,在左侧菜单找到Plugins,点击搜索栏搜索.ignore,点击Install 第二步: 重启idea -->在项目上右键->New ->.ignore file ->.gitignore file(Git) 第三部: 在项目中…

http协议的简单总结

目录 1.http协议的特性 2.http协议的请求 3.get请求和post请求的区别 4.http协议的响应 1.http协议的特性 http协议是建立在TCP/IP协议之上应用层协议,默认端口为80,8080 http协议的的特点是无状态,无连接(短连接) 2.http协…

【面试题】京东面试查漏补缺

目录一:笔试题1.如何获取URL中的参数方法一方法二2.怎么平铺多维数组方法一方法二:递归方法三: flat() 和 flatMap()二:面试题1.promise相关问题2.vue nextTick的作用和原理3.http状态码304缓存相关问题4.其他常规问题省略wh零售事…

在线学习(online learning)——Chapter 2 Problem Formulations and Related Theory

在线学习(online learning)——Chapter 2 Problem Formulations and Related Theory 本章中,我们将首先给出一个经典的在线学习问题的形式化描述,即在线二分类(online binary classification),然后介绍统计学习理论、在线凸优化和博弈论的基…

Zabbix“专家坐诊”第179期问答汇总

欢迎大家加入乐维社区zabbix问答专栏,除了在论坛发帖求问外,还可以在QQ群里交流进步,并且每周三我们会进行免费的技术答疑活动。 问题一: Q:Zabbix alert syncer processes more than 75% busy,这个告警&…

Live800:优秀的在线客服系统配置哪些功能模块?

在线客服系统是企业客服解决客户疑惑的软件系统,是企业统一对外联系的窗口。为了提升客户服务质量,提高客服人员工作效率,越来越多的企业配置了在线客服系统。那一款优秀的在线客服系统需要配置哪些功能模块呢?一、在线沟通模块在…

简明精要Android IPC通信

目录 一、Android应用层IPC通信方式 二、IPC通信数据拷贝次数 这里指的从应用层角度,IPC通信方式。简单记录一下。 一、Android应用层IPC通信方式 Bundle:四大组件中的三大组件(Activity、Service、Receiver)都是支持在Intent中…

MySQL学习之一条SQL更新语句的执行

文章目录前言一、MySQL更新操作大致流程二、redo log介绍三、binlog介绍四、MySQL更新操作的具体流程前言 今天我们通过一条SQL更新语句,了解MySQL的日志系统 一、MySQL更新操作大致流程 更新数据库表上的操作,跟这个表有关的查询缓存会失效。这条语句…

MyBatisPlus(MP)学习记录(分页查询的开启+日志打印配置+乐观锁+映射匹配+字段匹配和表名匹配+null值判定+代码生成器等等)

MP介绍(官网链接) MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 前言 本篇文章展示的MP教学中涉及到的版本如下: IDE…

Unity 之 Addressable可寻址系统 -- 可寻址系统概念介绍 -- 入门(一)

可寻址系统面板概念 -- 入门(一)一,可寻址系统概念介绍1.1 官方话术1.2 几个概念二,可寻址系统目录介绍2.1 导入工程2.2 目录介绍概述:本片文章带大家了解可寻址系统的相关概念,为大家介绍可寻址系统导入方…

Elasticsearch:如何在 Docker 上运行 Elasticsearch 8.x 进行本地开发

对于 Elasticsearch 的新主要版本 (8.x.x),有关于在 Docker 上运行 Elasticsearch 和 Kibana 的重大更新。 过去适用于以前版本的 Docker 和 Docker Compose 的命令和语法需要更新才能适用于最新版本。 在这篇文章中,我们将介绍如何使用 Docker 和 Docke…

Hudi系列5:Hudi与Spark集成

文章目录一. Spark操作Huid概述二. Spark-Shell方式三. pyspark方式四. SparkSQL方式参考:一. Spark操作Huid概述 Hudi各个版本支持Spark版本情况: 将hudi集成spark的jar包,放到spark的jars目录 -- 同步到其它节点 cd /home/hudi-0.12.0/packaging/hudi-spark-b…

【设计模式】UML类图

设计模式学习之旅(一) 查看更多可关注后查看主页设计模式DayToDay专栏 一.UML概述 统一建模语言(Unified Modeling Language,UML),是一种用于软件系统分析和设计的语言工具。特点是简单、统一、图形化、能表达软件设计中的动态与静…

Matlab论文插图绘制模板第72期—金字塔图

前段时间,有朋友觉得一篇文章里的插图看着不错,问Matlab能不能实现: 想了想,Matlab中并没有现成的画图代码。 但本质上,这种图其实就是横向柱状图的变体,而横向柱状图的绘制模板之前有分享过: …

Java多线程:线程的优先级 || 线程的中断 || 线程的分类 || 线程的定时器

Java多线程:线程的优先级 || 线程的中断 || 线程的分类 || 线程的定时器 每博一文案 正如村上春树所说:“当暴风雨过去,你不会记得自己是如何度过的,你甚至不确定,暴风雨是否真正结束了, 但你已不再是当初…

分布式唯一ID的几种生成方案,一次性全掌握!

上一篇文章,我们聊了一下分库分表相关的一些基础知识,具体可以参见:《用真实业务场景告诉你,高并发下如何设计数据库架构?》。 这篇文章,我们就接着分库分表的知识,来具体聊一下全局唯一id如何…

Flutter 基础-上

一、初始化项目 Material Design (Google 推出的前端UI 解决方案) 官网: https://www.material.io/中文网: https://material-io.cn/ Flutter 中一切内容都是组件(Widget) 无状态组件(StatelessWidget)有状态组件(StatefulWidget) 二、app结构 MaterialApp title (任务管理器…