conditional statement

case statement

1. conditional statement

    if(expression)

        statement_or_null[else statement_or_null]

    | if_else_if_statement

If the expression evaluates to true(that is ,has a nonzero know value),the first statement shall be executed.

If it evaluates to flase(that is ,has a zero value or the value is x or z) , the first statement shall not execute.

If there is an else statement and expression is false , the else statement shall be executed.

  if-else-if construct(mutiway decision statement)

      The expression shall be evaluated in order.If any expression is true,the statement associated with it shall be executed,and this shall terminate the whole chain.

  Each statement is either a single statement or a block of statement.

2.case statement(multiway decision statement)

   The case expression given in parentheses shall be evaluated exactly once and before any of the case item expression.

   The case item expressions shall be evaluated and compared in the exactly order in which they are given.

   If there is a default case item, it is ignored during this linear search.

   During the linear search , if one of the case item shall be executed, and the linear search shall terminate.

   If all comparisions fail and the default item is given,then the default item statement shall be executed .

  If the default statement is not given and all of the comparision fail, then none of the case item statements shall be executed.

    linear search ??

  The case statement differs from the multiway if-else-if construct in two important ways:

   a) The condition expression in the if-else-if construct are more general than comparing one expression with several others,as in the case statement.

  b)  The case statement provides a definitive result when there are x and z values in an expression.

         In a case expression comparison,the comparison only succeeds when each bit mathes exactly with respect to the valule 0 、 1、x and z.

         As a consequence, care is needed in  specifying the expression in the case statement.

         The bit length of all the expression shall be equal so that exact bitwise matching can be performed.

         The length of all the case item expressions as well as the case expression in the parentheses,shall be made equal to the length of the longest case expression and case item expression.

         If any of these expression is unsigned , then all of them shall be treated as unsigned.

         If all of these expressions are signed, then they shall be treated as signed.

3.casex / casez --dont care

   case x --- treats x /z as do-not-care condition

   case z ---treats z as do-not-care condition

   allows the use of mark(?) in place of z it these case statements(可以用来实现具有优先级的分支选择类似if-else-if)

   eg:

        reg [7:0] ir;

        casez(ir)

           8'b1???????:instruction(ir);

           8'b01??????:instruction(ir);

           8'b001?????:instruction(ir);

           8'b0001????:instruction(ir);

           8'b00001???:instruction(ir);

      endcase

      constant expression in case statement(也可以实现priority,觉得相比于 mark(?)实现priority,这个更好 )

       reg [2:0] encode;

       case(1)

          encode[2]: $display("Select line 2");

          encode[1]:$display("Select line 1");

          encode[0]:$display("Select line 0");

          default $display("Error:one of the bits expected ON");

         endcase

verilog behavioral modeling--branch statement的更多相关文章

  1. verilog behavioral modeling --loop statement

    1.forever 2.repeat 3.while 4.for The for statement accomplishes the same results as the following ps ...

  2. verilog behavioral modeling ---Block statements

    block statements : 1. sequential block  : begin-end block 2.parallel block       :  fork - join bloc ...

  3. verilog behavioral modeling --procedural assignments

    1.procedural assignments are used for updating reg ,integer , time ,real,realtime and memory data ty ...

  4. verilog behavioral modeling--overview

    1.verilog behavioral models contain procedural statements that control the simulation and manipulate ...

  5. verilog behaviral modeling -- procedural timing contronls

    1.delay control : an expression specifies the time duration between initially encountering the state ...

  6. verilog behavioral modeling--procedural continous assignment(不用)

    assign / deassgin force /release the procedural continuous assignments(using keywords assign and for ...

  7. verilog behavioral modeling--blocking and nonblocking

                                                                                                 BLOCKIN ...

  8. verilog behavioral modeling--sequential and parallel statements

    1.Sequential statement groups the begin-end keywords: .group several statements togethor .cause the ...

  9. verilog FAQ(zz)

    1. What is the race condition in verilog? Ans :The situation when two expressions are allowed to exe ...

随机推荐

  1. 黑马tomact学习二 tomcat的启动

  2. shell学习(5)- sort

    Linux sort命令用于将文本文件内容加以排序. sort可针对文本文件的内容,以行为单位来排序. 参数如下: -b 忽略每行前面开始出的空格字符. -c 检查文件是否已经按照顺序排序. -d 排 ...

  3. 114 Flatten Binary Tree to Linked List 二叉树转换链表

    给定一个二叉树,使用原地算法将它 “压扁” 成链表.示例:给出:         1        / \       2   5      / \   \     3   4   6压扁后变成如下: ...

  4. 1047 - Best couple 好题~

    http://www.ifrog.cc/acm/problem/1047 思路很简单,跑一发floyd,然后再用km. 但是问题来了,这个有可能n != m.那怎么办? 其实可以补上一些不存在的点.来 ...

  5. Eureca Server的Helloworld例子

    [学习笔记] 1.Eureca Server的Helloworld例子: 做个普通的maven project,quickstart archetype.改成jdk.8.下面Camden.SR1是版本 ...

  6. 兼容IE的滚动条自定义样式

    废话不多说,直接上: IE专属的滚动条样式定义,只能设置各种原始结构的颜色,宽高结构等其他样式无法修改: div{ scrollbar-arrow-color: red; /*三角箭头的颜色*/ sc ...

  7. Random-数组

    1.能够使用Random生成随机数     1)import java.util.Random;         2)Random r = new Random();       3)r.nextIn ...

  8. uvm_object ——太极

    无极生太极——无名天地之始 太极生两仪——有名万物之母   文件: $UVM_HOME/src/base/uvm_object.svh 类: uvm_object The uvm_object cla ...

  9. https增加临时证书,tomcat配置

    1Windows下: 1.1 生成keystore文件及导出证书 打开控制台: 运行: %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RS ...

  10. Python学习日志_2017/09/09

    今天早晨学习<Head First HTML and CSS>.随着内容逐渐深入,知识量逐渐增加,今天早晨三个小时学习了一章:<Html的基本元素>,学到了不少的东西.比如,什 ...