广告
返回顶部
首页 > 资讯 > 精选 >Verilog关键词的多分支语句怎么实现
  • 301
分享到

Verilog关键词的多分支语句怎么实现

2023-07-06 01:07:25 301人浏览 安东尼
摘要

今天小编给大家分享一下Verilog关键词的多分支语句怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。关键词:case

今天小编给大家分享一下Verilog关键词的多分支语句怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

关键词:case,选择器

case 语句是一种多路条件分支的形式,可以解决 if 语句中有多个条件选项时使用不方便的问题。

case 语句

case 语句格式如下:

case(case_expr)    condition1     :             true_statement1 ;    condition2     :             true_statement2 ;    ……    default        :             default_statement ;endcase

case 语句执行时,如果 condition1 为真,则执行 true_statement1 ; 如果 condition1 为假,condition2 为真,则执行 true_statement2;依次类推。如果各个 condition 都不为真,则执行 default_statement 语句。

default 语句是可选的,且在一个 case 语句中不能有多个 default 语句。

条件选项可以有多个,不仅限于 condition1、condition2 等,而且这些条件选项不要求互斥。虽然这些条件选项是并发比较的,但执行效果是谁在前且条件为真谁被执行。

ture_statement1 等执行语句可以是一条语句,也可以是多条。如果是多条执行语句,则需要用 begin 与 end 关键字进行说明。

case 语句支持嵌套使用。

下面用 case 语句代替 if 语句实现了一个 4 路选择器的功能。仿真结果与 testbench 可参考条件语句一章,两者完全一致。

module mux4to1(    input [1:0]     sel ,    input [1:0]     p0 ,    input [1:0]     p1 ,    input [1:0]     p2 ,    input [1:0]     p3 ,    output [1:0]    sout);     reg [1:0]     sout_t ;    always @(*)        case(sel)            2'b00:   begin                          sout_t = p0 ;                end            2'b01:       sout_t = p1 ;            2'b10:       sout_t = p2 ;            default:     sout_t = p3 ;        endcase    assign sout = sout_t ; endmodule

case 语句中的条件选项表单式不必都是常量,也可以是 x 值或 z 值。

当多个条件选项下需要执行相同的语句时,多个条件选项可以用逗号分开,放在同一个语句块的候选项中。

但是 case 语句中的 x 或 z 的比较逻辑是不可综合的,所以一般不建议在 case 语句中使用 x 或 z 作为比较值。

例如,对 4 路选择器的 case 语句进行扩展,举例如下:

case(sel)    2'b00:   sout_t = p0 ;    2'b01:   sout_t = p1 ;    2'b10:   sout_t = p2 ;    2'b11:     sout_t = p3 ;    2'bx0, 2'bx1, 2'bxz, 2'bxx, 2'b0x, 2'b1x, 2'bzx :        sout_t = 2'bxx ;    2'bz0, 2'bz1, 2'bzz, 2'b0z, 2'b1z :        sout_t = 2'bzz ;    default:  $display("Unexpected input control!!!");endcase

casex/casez 语句

casex、 casez 语句是 case 语句的变形,用来表示条件选项中的无关项。

casex 用 "x" 来表示无关值,casez 用问号 "?" 来表示无关值。

两者的实现的功能是完全一致的,语法与 case 语句也完全一致。

但是 casex、casez 一般是不可综合的,多用于仿真。

例如用 casez 语句来实现一个 4bit 控制端的 4 路选择选择器。

module mux4to1(    input [3:0]     sel ,    input [1:0]     p0 ,    input [1:0]     p1 ,    input [1:0]     p2 ,    input [1:0]     p3 ,    output [1:0]    sout);     reg [1:0]     sout_t ;    always @(*)        casez(sel)            4'b???1:     sout_t = p0 ;            4'b??1?:     sout_t = p1 ;            4'b?1??:     sout_t = p2 ;            4'b1???:     sout_t = p3 ;          default:         sout_t = 2'b0 ;    endcase    assign      sout = sout_t ; endmodule

以上就是“Verilog关键词的多分支语句怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Verilog关键词的多分支语句怎么实现

本文链接: https://www.lsjlt.com/news/356856.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Verilog关键词的多分支语句怎么实现
    今天小编给大家分享一下Verilog关键词的多分支语句怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。关键词:case...
    99+
    2023-07-06
  • Verilog关键词的多分支语句实例详解
    目录关键词:case,选择器case 语句casex/casez 语句关键词:case,选择器 case 语句是一种多路条件分支的形式,可以解决 if 语句中有多个条件选项时使用不...
    99+
    2023-05-15
    Verilog关键词多分支语句 Verilog多分支语句
  • Verilog关键词的条件语句怎么使用
    这篇文章主要介绍了Verilog关键词的条件语句怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Verilog关键词的条件语句怎么使用文章都会有所收获,下面我们一起来看看吧。关键词:if,选择器条件语句条...
    99+
    2023-07-06
  • Verilog关键词的条件语句实例详解
    目录关键词:if,选择器条件语句关键词:if,选择器 条件语句 条件(if)语句用于控制执行语句要根据条件判断来确定是否执行。 条件语句用关键字 if 和 else 来声明,条件表...
    99+
    2023-05-15
    Verilog关键词条件语句 Verilog条件语句
  • sql查询语句中用于实现选择运算的语法关键词是什么
    这篇文章主要介绍了sql查询语句中用于实现选择运算的语法关键词是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在sql的selec...
    99+
    2022-10-18
  • Vue3怎么实现文章内容中多个关键词标记高亮显示
    本篇内容主要讲解“Vue3怎么实现文章内容中多个关键词标记高亮显示”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue3怎么实现文章内容中多个关键词标记高亮显示”吧!具体实现过程vue-word...
    99+
    2023-07-04
  • 怎么用Thinkphp+Ajax实现带关键词搜索列表无刷新分页的功能
    这篇文章主要讲解了“怎么用Thinkphp+Ajax实现带关键词搜索列表无刷新分页的功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Thinkphp+Ajax实现带关键词搜索列表无刷...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作