Verilog刷题[hdlbits] :Always case

news2024/12/24 7:14:12

题目:Always case

Case statements in Verilog are nearly equivalent to a sequence of if-elseif-else that compares one expression to a list of others. Its syntax and functionality differs from the switch statement in C.
Verilog中的Case语句几乎等同于if-else -else序列,它将一个表达式与其他表达式的列表进行比较。它的语法和功能不同于C中的switch语句。

在这里插入图片描述

  • The case statement begins with case and each “case item” ends with a colon. There is no “switch”.
    case语句以case开头,每个“case项”以冒号结束。没有“switch”。

  • Each case item can execute exactly one statement. This makes the “break” used in C unnecessary. But this means that if you need more than one statement, you must use begin … end.
    每个case项只能执行一条语句。这使得C语言中使用的“break”变得不必要。但是这意味着如果你需要多个语句,你必须使用begin…结束。

  • Duplicate (and partially overlapping) case items are permitted. The first one that matches is used. C does not allow duplicate case items.
    允许重复(和部分重叠)的case项。使用第一个匹配的。C不允许重复的case项。

A bit of practice

练习

Case statements are more convenient than if statements if there are a large number of cases. So, in this exercise, create a 6-to-1 multiplexer. When sel is between 0 and 5, choose the corresponding data input. Otherwise, output 0. The data inputs and outputs are all 4 bits wide.
如果有大量的情况,Case语句比if语句更方便。因此,在本练习中,创建一个6比1的多路复用器。当sel在0 ~ 5之间时,选择相应的数据输入。否则输出0。数据输入和输出都是4位宽。

Be careful of inferring latches (See.always_if2)
小心推断latches (参见.always_if2)

组合逻辑中,如果case缺少default语句,或是自己赋值给自己的情况就会产生latch。为了避免latch产生,case需要加上default语句,覆盖所有可能。

// synthesis verilog_input_version verilog_2001
module top_module ( 
    input [2:0] sel, 
    input [3:0] data0,
    input [3:0] data1,
    input [3:0] data2,
    input [3:0] data3,
    input [3:0] data4,
    input [3:0] data5,
    output reg [3:0] out   );//

    always@(*) begin  // This is a combinational circuit
        case(sel)
            3'b000:	out=data0;
            3'b001:	out=data1;
            3'b010:	out=data2;
            3'b011:	out=data3;
            3'b100:	out=data4;
            3'b101:	out=data5;
            default:out=4'b0000;
        endcase
    end

endmodule

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

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

相关文章

答题小程序排位pk答题怎么玩

答题小程序排位PK答题升级赛是一个备受喜爱的功能,它不仅增加了用户之间的互动和竞争,同时也为答题小程序增添了更多的趣味性和挑战性。那么,如何参与答题小程序的排位PK答题升级赛呢?本文将详细介绍答题小程序的排位PK答题升级赛…

网络安全与TikTok:年轻一代的数字素养

在数字时代,互联网成为我们生活的重要组成部分,而社交媒体平台则在年轻一代中变得日益流行。其中,TikTok作为一个短视频分享平台,吸引了全球数以亿计的用户,尤其年轻人。 然而,与其快速的普及相伴随的是网…

思维模型 首因效应

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。先入为主,一见钟情。 1 首因效应的应用 1.1 面试中的首因效应 小李是一名应届毕业生,他准备参加一家知名互联网公司的面试。在面试前,他做了充分的准备…

leetcode 215. 数组中的第K个最大元素

2023.11.7 本题两个思路,一个是先将数组排序,再从后往前数第k个元素即为第k个最大的元素。 或者使用优先队列,将数组元素放入队列中,当队列元素数量超过k时,弹出队列元素,由于优先队列的性质,每…

CodeWhisperer 的正确使用

1、重点: 重点1: 推出 Amazon Bedrock。这项新服务允许用户通过 API 访问来自 AI21 Labs、Anthropic、Stability AI 和亚马逊的基础模型。(Anthropic 就是之前跟 ChatGPT 掰手腕的 Claude 的模型。Stability AI 就是 Stable Diffusion 背后的…

外汇天眼:如何识破网络交友诈骗套路? 看到这7大特征请提高警觉

随着各种社群平台与交友APP不断推陈出新,现代人愈来愈习惯透过网路建立人际关系甚至谈恋爱。 但由于网络具有极高的匿名性,因此也成为诈骗温床,对社会造成相当严重的损失。 有鉴于此,外汇天眼根据一直以来收到针对黑平台的投诉与…

各省市30米分辨率DEM数据,推荐下载!

今天给大家推荐一个新数据 —— 各省市30米分辨率DEM数据! 各省市30米分辨率DEM数据广泛应用于国土资源调查、水利水电工程、地质灾害预警、城市规划等领域,对于了解区域内的地形地貌、地形分析、土地利用等具有非常重要的意义。 网站搜索“citybox城市…

数据时代的新引擎:数据治理与开发,揭秘数据领域的黄金机遇!

文章目录 一、数据时代的需求二、数据治理与开发三、案例分析四、黄金机遇《数据要素安全流通》《Python数据挖掘:入门、进阶与实用案例分析》《数据保护:工作负载的可恢复性 》《Data Mesh权威指南》《分布式统一大数据虚拟文件系统 Alluxio原理、技术与…

Microsoft 365 与Office 365 有什么区别?

从2020年起,部分Office 365 品牌的订阅计划整合到了Microsoft 365中,虽然这更符合微软对产品战略的定位,但却增加了用户分辨这两种产品的难度。 文章目录 Office 365包含哪些内容Microsoft 365包含哪些内容Microsoft 365包含哪些订阅Microso…

2023中国视频云市场报告:腾讯云音视频解决方案份额连续六次蝉联榜首,加速全球化布局

近日,国际数据公司(IDC)发布了《中国视频云市场跟踪(2023上半年)》报告,腾讯云音视频的解决方案份额连续六次蝉联榜首,并在视频生产创作与媒资管理市场份额中排名第一。同时,在实时音…

为什么深度学习模型的预测结果为数据集均值

如图,上边的为真值,下边的为预测值,可见预测值都是在30左右 一直debug不出来。后来发现是loss处写错了 用的torch.nn.MSELoss(pred,target),其中pred的size是(batchsize,1), target的size是(batchsize),此时会有警告但…

vue 集成高德地图,点击图标,弹出van-action-sheet,一闪而过的问题探究

代码 <van-action-sheet v-model"sheetShow" title""><div class"van-list-vol"><van-col span"3"><div><van-imagestyle"height: 40px; width: 40px"round:src"hospital.orgUrl? hospita…

玻色量子“揭秘”之最大割(Max-Cut)问题与QUBO建模

Max-Cut问题简单地说&#xff0c;就是求一种分割方法。给定一张无向图, 将所有顶点分割成两群, 同时使得被切断的边数量最大&#xff0c;或边的权重最大。 QUBO&#xff08;Quadratic Unconstrained Binary Optimization&#xff09;问题即二次无约束二值优化问题&#xff0c;…

Vue3 + Vite + Ts + Router搭建项目

1、新建文件夹 从新建的文件夹cmd进入终端 2、安装vite—依据vite创建vue3项目 2.1、运行 npm init vitelatest2.2.1、输入项目名称 2.2.2、选择vue 2.2.3、选择TypeScript语言 3、安装依赖项 3.1、进入刚才创建的文件夹 cd vite-project 3.2、查看镜像 #查看当前源 npm con…

Windows ObjectType Hook 之 SecurityProcedure

1、背景 Object Type Hook 是基于 Object Type的一种深入的 Hook&#xff0c;比起常用的 SSDT Hook 更为深入。 有关 Object Type 的分析见文章 《Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析》。 这里进行的 Hook 为 其中之一的 SecurityProcedure。文章…

CDS(Core Data Service)Annotation 常用属性

1. 抬头信息 @UI: {headerInfo: {typeName: BP,typeNamePlural: BP,title:{type: #STANDARD, value:ApplyNumber},description:{value:Status}} }2. 行信息/分组 @UI.facet: [{id: bp_Tab1,purpose: #STANDARD,type: #FIELDGROUP_REFERENCE,// type: #LINEITEM_REFERENCE,labe…

【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.4p1(亲测无问题,建议收藏)

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

lazarus:不安装任何驱动,直接使用csv文件作为数据集

目录 1 简介 2 需要的窗体控件很简单 3 定义字段并插入几条记录 4 其他操作 4.1 数据集保存为csv文件 4.2 清空数据 4.3 加载csv文件 5 运行程序 6 导出文件 1 简介 在某些数据操作需求特别简单的情况下&#xff0c;我们希望不要安装任何数据库&#xff0c;甚至连一个…

餐饮加盟信息展示预约小程序的内容如何

餐饮业规模持续增加&#xff0c;相关从业者逐渐增多&#xff0c;对中等规模以上的餐饮品牌来说&#xff0c;当有一定规模后除了开多家直营店外&#xff0c;还会开放招商加盟&#xff0c;扩展品牌、提升营收等。 由于餐饮加盟属于准属性业务&#xff0c;因此传统线下方式不太适…

投资理财:买理财亏损不保本怎么办?

大家好&#xff0c;我是财富智星&#xff0c;今天跟大家讨论一下投资理财&#xff0c;银行理财亏损不保本了&#xff0c;普通老百姓应该怎么办&#xff1f; 银行理财已经不再是保本且没有风险的产品了。对于追求稳健增值的大多数普通人来说&#xff0c;银行理财已经不再是他们的…