Verilog 条件语句

这篇具有很好参考价值的文章主要介绍了Verilog 条件语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

link

我用的是 vivado 21 秒学会 vivado 仿真

关键词:if,选择器

条件语句

条件(if)语句用于控制执行语句要根据条件判断来确定是否执行。

条件语句用关键字 if 和 else 来声明,条件表达式必须在圆括号中。

条件语句使用结构说明如下:

if (condition1)       true_statement1 ;
else if (condition2)        true_statement2 ;
else if (condition3)        true_statement3 ;
else                      default_statement ;
  • if 语句执行时,如果 condition1 为真,则执行 true_statement1 ;如果 condition1 为假,condition2 为真,则执行 true_statement2;依次类推。
  • else if 与 else 结构可以省略,即可以只有一个 if 条件判断和一组执行语句 ture_statement1 就可以构成一个执行过程。
  • else if 可以叠加多个,不仅限于 1 或 2 个。
  • ture_statement1 等执行语句可以是一条语句,也可以是多条。如果是多条执行语句,则需要用 begin 与 end 关键字进行说明。

下面代码实现了一个 4 路选择器的功能。

实例


`timescale 1ns/1ns
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 @(*) begin
        if (sel == 2'b00)
            sout_t = p0 ;
        else if (sel == 2'b01)
            sout_t = p1 ;
        else if (sel == 2'b10)
            sout_t = p2 ;
        else
            sout_t = p3 ;
    end
    assign sout = sout_t ;
 
endmodule

`timescale 1ns/1ns

module test ;
    reg [1:0]    sel ;
    wire [1:0]   sout ;

    initial begin
        sel       = 0 ;
        #10 sel   = 3 ;
        #10 sel   = 1 ;
        #10 sel   = 0 ;
        #10 sel   = 2 ;
    end

    mux4to1 u_mux4to1 (
        .sel    (sel),
        .p0     (2'b00),        //path0 are assigned to 0
        .p1     (2'b01),        //path1 are assigned to 1
        .p2     (2'b10),        //path2 are assigned to 2
        .p3     (2'b11),        //path3 are assigned to 3
        .sout   (sout));

   //finish the simulation
    always begin
        #100;
        if ($time >= 1000) $finish ;
    end

 
endmodule

仿真结果如下。

由图可知,输出信号与选择信号、输入信号的状态是相匹配的。

verilog 不同形式的if条件语句的区别,芯片,数字电路,fpga开发,芯片

事例中 if 条件每次执行的语句只有一条,没有使用 begin 与 end 关键字。但如果是 if-if-else 的形式,即便执行语句只有一条,不使用 begin 与 end 关键字也会引起歧义。

例如下面代码,虽然格式上加以区分,但是 else 对应哪一个 if 条件,是有歧义的。

实例

if (en )
    if (sel == 2'b1 )
        sout = p 1s ;
    else
        sout = p0 ;

当然,编译器一般按照就近原则,使 else 与最近的一个 if(例子中第二个 if)相对应。

但显然这样的写法是不规范且不安全的。

所以条件语句中加入 begin 与 and 关键字就是一个很好的习惯。

例如上述代码稍作修改,就不会再有书写上的歧义。

实例

if (en ) begin
    if (sel == 2'b1 ) begin
        sout = p 1s ;
    end
    else begin
        sout = p0 ;
    end
end

源码下载

Download文章来源地址https://www.toymoban.com/news/detail-605590.html

到了这里,关于Verilog 条件语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ASIC-WORLD Verilog(8)if-else语句和case语句

            在自己准备写一些简单的verilog教程之前,参考了许多资料----Asic-World网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。         这是网站原文:Verilog Tutorial         这是系列导航:

    2024年02月01日
    浏览(46)
  • 【Javascript保姆级教程】if判断语句的三种形式

    嗨,欢迎来到Javascript保姆级教程!在编写代码时,我们经常需要根据不同的情况来做出不同的决策和操作。这时候,就需要用到条件判断语句。今天,我们将学习Javascript中的三种主要条件判断语句:if、if…else和if…else if…。让我们一起来详细了解它们吧! 首先,我们来介

    2024年04月22日
    浏览(35)
  • mysql实现if语句判断功能的六种使用形式

    在Mysql数据库中实现判断功能有很多方式,具体又分为函数和if语句形式,函数的好处是可以作为sql的一部分来运行,而if语句则需要在存储过程中使用。 语法: 解释: 判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值 参

    2024年02月15日
    浏览(51)
  • JavaScript条件判断if 语句

    一、if语句的分支 分类:单分支,双分支,多分支,分支嵌套 ()中可以是一个值,也可以是一个表达式 案例: 二、switch ()只能是变量或值,不能是表达式 案例: break必须添加,否则会继续往下执行 问题: 什么时候用if,什么时候用switch if:条件是一个范围 或者 是具体的

    2024年02月06日
    浏览(64)
  • Python 条件和 if 语句

    Python支持来自数学的通常逻辑条件: 等于:a == b 不等于:a != b 小于:a b 小于或等于:a = b 大于:a b 大于或等于:a = b 这些条件可以以多种方式使用,最常见的是在\\\"if语句\\\"和循环中使用。 if语句是使用if编写的。 示例,if语句: 在这个示例中,我们使用了两个变量

    2024年02月08日
    浏览(44)
  • 【python基础】if语句-条件测试

    视频讲解 https://www.bilibili.com/video/BV18m4y1p7Ch/ 编程时经常需要检查一些条件,并据此决定采取什么措施。在Python中,使用 if语句 作为条件控制语句,能够根据程序中条件的 真假 ,做出相应措施。 其语法格式之一: 假设我们根据输入的年龄去判断是否成年,编写程序如下所示

    2024年02月07日
    浏览(46)
  • Shell脚本之——条件语句if详解

    测试表达式是否成立,若成立返回0,否则返回其他数值。 -d∶ 测试是否为目录(Directory) -e∶ 测试目录或文件是否存在(Exist) -f∶ 测试是否为文件(File) -r∶ 测试当前用户是否有权限读取(Read) -w∶ 测试当前用户是否有权限写入(Write) -x∶测试当前用户是否有权限执

    2024年01月21日
    浏览(64)
  • python条件判断语句(if else)

            python中判断语句的基本结构由if和else组成,当if后面的条件为真时,执行if下面的语句;当if后面的条件为假时,执行else下面的语句。这里条件的真假都是用bool值来作为依据的,我们知道比较运算、成员运算、身份运算返回的结果都是bool值。所以比较运算、成员运算

    2024年02月09日
    浏览(57)
  • Scala条件分支语句if用法详细介绍

    在Scala中,控制结构语句包括条件分支语句和循环语句。其中,条件分支语句有if语句、if…else 语句、if…else if…else 语句以及 if…else 嵌套语句;条件分支语句的用法介绍如下: 1.if格式的语法格式 2.if…else 语句的语法格式如下: 3.if…else if…else 语句的语法格式如下: 4.if…

    2024年02月13日
    浏览(52)
  • C 语言教程:条件和 if...else 语句

    您已经学习过 C 语言支持数学中的常见逻辑条件: 小于: a b 小于或等于: a = b 大于: a b 大于或等于: a = b 等于: a == b 不等于: a != b 您可以使用这些条件来根据不同的决策执行不同的操作。 C 语言具有以下条件语句: 使用 if 来指定要执行的代码块,如果指定的条件为真

    2024年02月04日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包