verilog behavioral modeling--branch statement
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的更多相关文章
- verilog behavioral modeling --loop statement
1.forever 2.repeat 3.while 4.for The for statement accomplishes the same results as the following ps ...
- verilog behavioral modeling ---Block statements
block statements : 1. sequential block : begin-end block 2.parallel block : fork - join bloc ...
- verilog behavioral modeling --procedural assignments
1.procedural assignments are used for updating reg ,integer , time ,real,realtime and memory data ty ...
- verilog behavioral modeling--overview
1.verilog behavioral models contain procedural statements that control the simulation and manipulate ...
- verilog behaviral modeling -- procedural timing contronls
1.delay control : an expression specifies the time duration between initially encountering the state ...
- verilog behavioral modeling--procedural continous assignment(不用)
assign / deassgin force /release the procedural continuous assignments(using keywords assign and for ...
- verilog behavioral modeling--blocking and nonblocking
BLOCKIN ...
- verilog behavioral modeling--sequential and parallel statements
1.Sequential statement groups the begin-end keywords: .group several statements togethor .cause the ...
- verilog FAQ(zz)
1. What is the race condition in verilog? Ans :The situation when two expressions are allowed to exe ...
随机推荐
- 描述符__get__,__set__,__delete__和析构方法__del__
描述符__get__,__set__,__delete__ 1.描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()中的一 ...
- pwnhub 相对路径覆盖
这个pwnhub小m师傅的题,做的时候完全没有思路. 首先是注册然后可以看到一个加载css的地方,是相对路径加载(当然我并没有觉得有什么问题). 服务端和浏览器解析URL是有区别的,就是%2f 服务器 ...
- 云服务中IaaS、PaaS、SaaS的区别
越来越多的软件,开始采用云服务. 云服务只是一个统称,可以分成三大类. IaaS:基础设施服务,Infrastructure-as-a-service PaaS:平台服务,Platform-as-a- ...
- HDU 5869 Different GCD Subarray Query 树状数组 + 一些数学背景
http://acm.hdu.edu.cn/showproblem.php?pid=5869 题意:给定一个数组,然后给出若干个询问,询问[L, R]中,有多少个子数组的gcd是不同的. 就是[L, ...
- toLua学习
toLua学习通用的过程//开始LuaState lua = new LuaState();lua.Start();--在这个位置插入lua的具体操作--//结束lua.CheckTop();lua. ...
- Idea安装以及破解
软件安装包和破解工具安装包 链接 链接:https://pan.baidu.com/s/1TpCiaSsAz_I9gXyOnwKK9g 密码:qc49 1.下载完Idea工具后,点击.exe文件,进行 ...
- 前端页面,使用 dom 鼠标拖拽画一个矩形和监听键盘
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- tar打包压缩命令
1. tar命令 用法: tar [选项...] [FILE]... GNU ‘tar’将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件. 示例 tar -cf archiv ...
- Java编程基础-反射
一.java反射 1.反射:动态获取类的信息,以及动态调用对象的方法的功能.可以理解为动态看透类的能力. 2.主要功能:在运行时判断任意一个对象所属的类:在运行时构造任意一个类的对象:在运行时判断任意 ...
- 洛谷 P1048 采药
采药 01背包模板题. #include <iostream> #include <cstdio> using namespace std; //Mystery_Sky //一 ...