数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 (一)四选一多路器

news2025/1/17 5:52:28

数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 (一)四选一多路器


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


  前言:应朋友之约,从今天开始一个新的专栏Verilog习题集,将整理牛客网经典Verilog习题讲解,牛客网里除了最新的Verilog题库还有其它领域的经典笔试、面试题,大家快和我一起刷起来吧点 击 跳 转



题目

首先是一道入门题:四选一多路器。


在这里插入图片描述

分析:

  首先题目要求完成的一个4输入的多路选择器,从要求的波形可以看出选择信号的对应关系如下:

seldin
2’b00d3
2’b01d2
2’b10d1
2’b11d0

  所以其本质就是一个case语句形成的并行选择电路,这里需要提醒各位新手,在写任何Verilog代码时,都需要想到其最后对应的电路形式,Verilog其实是算不上代码,而是电路描述。

  有很多朋友在完成这题时,可能还会使用assign或者if else语句,虽然这样完成的电路最后功能也是正确的,但是我们需要明白这样的电路是有优先级的,那么形成的电路其实是3个2选1的MUX串联的,那么其逻辑时延会更大,但是面积会略小于一个4选1的MUX。



题解:

module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
//*************code***********//
reg [1:0] mux_out;

always @(*)begin
    case(sel[1:0])
        2'b00: mux_out[1:0] <= d3[1:0];
        2'b01: mux_out[1:0] <= d2[1:0];
        2'b10: mux_out[1:0] <= d1[1:0];
        2'b11: mux_out[1:0] <= d0[1:0];
    endcase
end

//*************code***********//
endmodule


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

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

相关文章

Mercurius <11.5.0 存在拒绝服务漏洞(CVE-2023-22477)

漏洞描述 Mercurius 是NPM仓库中的开源组件&#xff0c;用作于 Fastify Web 框架的 GraphQL 适配器。 11.5.0 之前版本的 Mercurius 开启“订阅”功能时&#xff0c;任何 Mercurius 用户都可以通过 WebSocket 向 /graphql 端点&#xff08;如&#xff1a;ws://127.0.0.1:1337…

【屏幕驱动移植】点亮OLED屏幕并播放视频

写在前面 硬件软件准备: 名称备注屏幕SSD1106本文章所使用的的屏幕型号&#xff0c;仅仅作为驱动移植示例&#xff0c;其他型号的都可以按照本文的方法推广树莓派3B用于驱动屏幕&#xff0c;树莓派2B3B4B等型号都可以ESP32开发板用于驱动屏幕&#xff0c;具体是ESP32还是ESP32…

都2023年啦~用python来玩一次股票.....

人生苦短&#xff0c;我用python 这不是2023年已经来了吗&#xff1f; 总不能空着手回去吧&#xff1f; 这次简单用python来玩一下股票~ 本章源码更多电子书点击文末名片~ 准备工作 我们需要使用这些模块&#xff0c;通过pip安装即可。 后续使用的其它的模块都是Python自…

启动jeecg-boot框架(vue3版本)

jeecg-boot框架&#xff08;vue3版本&#xff09;一、简介二、项目启动1.前端模组&#xff1a;jeecgboot-vue3-master2.后端模组&#xff1a;jeecg-boot-master3.环境要求&#xff1a;4.数据库准备&#xff1a;5.前端启动&#xff1a;6.redis启动&#xff1a;7.后端启动&#x…

(Matlab实现)基于蒙特卡诺和拉格朗日乘子法的电动车调度【有序、无序充放电】

目录 1 概述 2 蒙特卡洛模拟方法介绍 3 拉格朗日乘子法 4 规模化电动汽车充电负荷预测计算方法 5 Matlab代码实现 1 概述 电动汽车EV(Electric Vehicle)具有清洁环保、高效节能的优点,不仅能缓解化石能源危机,而且能够有效地减少温室气体的排放。2015年10月&#xff0c;国…

Day 7 Spring 整合第三方框架

xml整合第三方框架有两种整合方案:不需要自定义名空间&#xff0c;不需要使用Spring的配置文件配置第三方框架本身内容&#xff0c;例如: MyBatis;需要引入第三方框架命名空间&#xff0c;需要使用Spring的配置文件配置第三方框架本身内容&#xff0c;例如: Dubbo.1 整合MyBati…

Apollo星火计划学习笔记——Control 专项讲解(PID)

文章目录1. PID算法介绍1.1 时间连续与时间离散1.2 位置式与增量式1.3 PID算法扩展2. PID调试方法3. APOLLO代码介绍3.1 PID算法3.2 积分饱和问题3.3 纵向控制代码3.3.1 构造函数3.3.2 加载各种纵向控制的配置参数3.3.3 二阶巴特沃斯低通滤波器《数字信号处理》3.3.4 插值出油门…

PMP考试是什么?适合哪些人来学呢?

PMP&#xff0c;根据PMI的解释&#xff0c;就是项目管理专业人士资格认证&#xff0c;全称如下图&#xff1a;PMP考试是由PMI发起、组织和出题&#xff0c;严格评估项目管理专业人士知识技能是否具有高品质的资格认证考试。PMI&#xff1a;美国项目管理协会&#xff08;Project…

【小米路由器3】breed刷机救砖-nand flash硬改SPI flash-编程器救砖(解决ttl无法救砖问题)

大家好&#xff0c;我是老子姓李&#xff01;&#xff08;gzh&#xff1a;楠瘦&#xff09; 本博文带来【小米路由器3】变砖&#xff0c;ttl无法救砖&#xff0c;硬改焊接一块SPI flash&#xff0c;使用编程器刷入小米路由器mini的breed最终成功救砖。 目录1.引言1.1 背景1.2回…

07MEMS传感器技术 讲座

把同步现象应用于传感器设计。 什么是MEMS&#xff1f; 1.mems芯片是什么意思 MEMS是Micro-Electro-Mechanical System的缩写&#xff0c;中文名称是微机电系统。MEMS芯片简而言之&#xff0c;就是用半导体技术在硅片上制造电子机械系统&#xff0c;再形象一点说就是做一个微…

Vue3——第十一章(内置组件:KeepAlive、Transition、TransitionGroup)

一、KeepAlive <KeepAlive> 是一个内置组件&#xff0c;它的功能是在多个组件间动态切换时缓存被移除的组件实例。 1、基本使用 默认情况下&#xff0c;一个组件实例在被替换掉后会被销毁。这会导致它丢失其中所有已变化的状态——当这个组件再一次被显示时&#xff0…

elementui el-table表格实现翻页和搜索均保持勾选状态(后端分页)

需求&#xff1a;不管是页面切换还是通过搜索获取数据&#xff0c;都要保持已选中的行保持勾选状态&#xff0c;同时将选中行的内容以标签的形式显示出来&#xff0c;当点击关闭标签时可以对应取消选中状态&#xff0c;点击行中的任意位置也可以切换选中状态&#xff0c;单独勾…

柳叶刀重磅:30年来首个基于新机制的降压药,可持续降压近一年

全球范围内高血压患者约有13亿&#xff0c;其中10%的患者&#xff08;超过1亿&#xff09;为难治性高血压&#xff0c;即接受了3种以上不同种类的降压药治疗后&#xff0c;血压仍然控制不佳。长期不受控的高血压可能对心脏和血管均会造成损伤&#xff0c;进而增加患者发生心脏病…

Learning Saliency Propagation for Semi-Supervised Instance Segmentation

Abstract 实例分割对于建模和注释来说都是一项具有挑战性的任务。由于注释成本高&#xff0c;建模变得更加困难&#xff0c;因为监督的数量有限。我们的目标是利用大量的检测监督来提高现有实例分割模型的准确性。我们提出了ShapeProp&#xff0c;它学习激活对象检测中的显著区…

【CocosCreator入门】CocosCreator下载安装 | 使用Cocos DashBoard下载各个版本的CocosCreator

Cocos Creator 从 v2.3.2 开始接入了全新的 Dashboard 系统&#xff0c;能够同时对多版本引擎和项目进行统一升级和管理&#xff01;Cocos Dashboard 将做为 Creator 各引擎统一的下载器和启动入口&#xff0c;方便大家升级和管理多个版本的 Creator。此外还集成了统一的项目管…

进程间通信的方式(附代码分析)

进程间通信的方式 1. 进程间通信的几种方式 管道 比如 ls | grep 1;也就是将 进程 ls 拿到的结果作为 grep 1 这个进程的输入。实现了进程间的通信。 消息队列 消息队列就是我们的内核给我们创建的一种消息队列。我们可以往其中发送消息&#xff0c;也可以从其中接收消息。 …

C语言实现有序序列判断

一个数组&#xff0c;判断是否有序看上去很简单&#xff0c;有很多种方法。但实际上有一个很严重的问题&#xff0c;就是重复数会影响判断结果。 我这里提供的思路是取连续的三个数进行比较&#xff0c;a, b, c&#xff0c;假设一共n个元素&#xff0c;数组名是arr&#xff0c…

阿里云Imagine Computing创新技术大赛决赛启幕!

2023年1月&#xff0c;由阿里云与英特尔主办&#xff0c;阿里云天池平台、边缘云、视频云共同承办的“新算力 新体验”Imagine Computing创新技术大赛复赛圆满落幕。经过两个多月的激烈角逐&#xff0c;12支入围队伍&#xff0c;从海内外8个国家和地区的6900余支参赛队伍中脱颖…

转到结构化写作后的几点变化

或许是随着公司产品越来越多&#xff0c;公司的手册越来越复杂&#xff0c;用户越来越难找到需要的信息&#xff1b;或许是因为公司管理手册的使用者不满足于长篇大论的文字&#xff0c;希望能够获得只跟他相关的政策、程序等信息。 总之&#xff0c;公司决定从MS Word、非结构…

Pipeline机器学习模型串联

机器学习模型训练时使用 Pipeline 是一个加快效率的串联方法。Pipeline 处理机制就像是把所有模型塞到一个管子里&#xff0c;然后依次对数据进行处理&#xff0c;得到最终的分类结果。 # 模型串联 pipPipeline( [ # 所有模型写…