verilog 中if....else语句以及case语句详细理解
1、if else:
(1)if(表达式)语句;
(2)if(表达式)
语句一else语句二
(3)if(表达式1)
语句一;else if(表达式2) 语句2;else if(表达式3) 语句3;else if(表达式4) 语句4;
#语句使用要点:
(1)条件语句必须在过程块中使用。所谓过程块语句是指由initial、always引导的执行语句集合。
出了这两个语句块引导的begin end块中可以编写条件语句外,模块中的其他地方都不能编写。(2)if语句中的表达式一般为逻辑表达式或者关系表达式。系统对表达式的值进行判断;若为0,z,X;按照假处理;若为1按照真处理,执行指定的语句;(3)if(a)等价于if(a == 1);(4)if语句可以·嵌套·使用(5)end总是与离它最近的一份else配对。
如果if语句使用不当可能会综合出来意想不到的锁存器,具体请看下面例子:
在这里插入代码片
```always@(al or b)beginif(a)q <= d;end
上述的代码,只写出了a==1时q应该的取值,a==0时的情况并不知道在always块里面,如果在给定的条件下变量没有被赋值,这个变量将会保持原来的值,也就是说会生成一个锁存器。另外一种情况会生成意想不到的锁存器时当case语句中没有default语句时的情况。
3、case语句
语句格式:
case(表达式)分支表达式1: 语句1;分支表达式2: 语句2;分支表达式3: 语句3;分支表达式4: 语句4;分支表达式5: 语句5;default: 语句6;
endcase
使用注意事项:
(1)每一个分支表达式的值必须互不相同,否则就会出现问题,即对表达式的同一个值出现多种执行方案,产生矛盾;
(2)执行完一个case的分支语句之后跳出该case语句体结构中止此case语句的执行;
(3)case语句表达式的比较过程中的表达式值必须相同(位宽、数值)才能正确;例如:‘bx。‘bz与n‘bx,n‘bz比较,‘bx。‘bz默认计算机位宽,一般为32位,n不等于32时就会出现错误。4、casez:casez语句的分支表达式在与表达式比较时不考虑高阻值zcasex语句的分支表达式在与表达式比较时不考虑高阻值z 和不定值x
verilog 中if....else语句以及case语句详细理解相关推荐
- (24)Verilog HDL条件语句:case语句
(24)Verilog HDL条件语句:case语句 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog HDL条件语句:case语句 5)结语 1.2 FP ...
- Verilog中可综合及不可综合语句概述
Verilog中可综合及不可综合语句概述 2017-06-02 23:51 379人阅读 评论(0) 收藏 举报 分类: FPGA(4) Verilog中可综合及不可综合语句概述 Verilog硬 ...
- switch语句和case语句的特性
** switch语句和case语句的特性 ** switch语句格式: switch(表达式) {case 常量值1:语句体1;break;case 常量值2:语句体2;break;...defau ...
- Verilog中if- else if语句和case语句用法:
一.if语句: 1.两种情况 if(条件语句)begin-- end else begin-- end 2.多种情况 if(条件语句)begin-- end else if(条件语句)begin-- ...
- FPGA之道(35)Verilog中的并行与串行语句
文章目录 前言 Verilog的并行语句 Verilog连续赋值语句 普通连续赋值语句 条件连续赋值语句 Verilog程序块语句 沿事件 纯组合always 纯时序always 具有同步复位的alw ...
- Verilog初级教程(15)Verilog中的阻塞与非阻塞语句
文章目录 前言 正文 阻塞赋值 非阻塞赋值 往期回顾 参考资料以及推荐关注 前言 本文通过仿真的方式,形象的说明阻塞赋值以及非阻塞赋值的区别,希望和其他教程相辅相成,共同辅助理解. 正文 阻塞赋值 阻 ...
- php中的select case语句吗,VBS教程:VBScript 语句-Select Case 语句
Select Case 语句 根据表达式的值执行几组语句之一. Select Case testexpression [Case expressionlist-n [statements-n]] . ...
- db2case语句_SQL中的IF ELSE(CASE语句的使用)
大家对IF ELSE语句可能都很熟悉,它是用来对过程进行控制的.在SQL的世界中CASE语句语句有类似的效果.下面简单的介绍CASE语句的用法.考虑下面的情况,假设有个user表,定义如下: CREA ...
- shell之case和循环语句(case语句的格式与举例)(for循环,while循环until循环语句的详解和continue,break解释, 九九乘法口诀表 ,等腰三角形)
文章目录 shell编程之case语句与循环语句(for,while) case多分支语句 case语句的实例 使用for循环语句 for语句实例 用循环语句输出1-10的数字的五种办法 计算偶数/奇 ...
最新文章
- 斯坦福DAWNBench:华为云ModelArts深度学习训练全球最快
- 【26】Python Iterator笔记
- imx6的kernel3.4.15启动流程
- 小贝拉机器人是朋友_报废机器人应该属于什么垃圾?《宝莱坞机器人2.0》给你答案...
- eureka 其它语言_SpringCloud之Eureka-Go语言中文社区
- SQL(一)- 数据库介绍与基础操作
- netbeans连接数据库_NetBeans Java EE技巧#1 –数据库中的实体类
- 用java单源最短路径问题_单源最短路径-贪心算法
- 键盘发展简史:144年独孤求败的QWERT键盘
- HTML5设备API 大批美女等你来摇一摇
- MFC对话框自适应大小(四舍五入)高精度版本
- Redis 介绍2——常见基本类型
- SaaS服务和个性化需求,就不能鱼和熊掌兼得吗?
- 新特汽车在重庆“复活”:打造新品牌“电动屋”,已获网约车牌照
- grep -A -B -C -a -c -n -v -i等
- 你可能不知道的iOS性能优化建议(来自前Apple工程师)
- 数字媒体技术作业题代码:matlab将三个灰度图片转化成一个彩色图片
- java自学练习网站推荐
- 怎么网络同步计算机的本地时间,VBA实现本地计算机时间与网服务器时间的同步...
- Ubuntu20安装erlang和rabbitmq
热门文章
- excel php 数字科学计数_excel单元格设置技巧:这些自定义格式,你用过哪些?
- 递归java程序_JAVA编程基础之递归结构
- 根据录入的计算公式计算_建筑行业公式大全(一)之“钢筋工程量计算”
- JavaScript数组的声明及使用(1)
- python文件管不了_Python文件_管道与模块编写
- Unity3D基础33:物理射线
- 牛客练习赛21:A. 黑妹的游戏I
- 一些数据链路层的题目
- javascript学习之数组的使用三 slice方法 splice方法
- Python中self的用法详解(链接传送)