FPGA学习系列:if_else与case语句用法
yuyutoo 2024-10-12 01:41 4 浏览 0 评论
Verilog HDL语言中存在两种分支语言:
● if-else 条件分支语句
● case 分支控制语句
1. if-else 条件分支语句
if-else 条件分支语句的作用是根据指定的判断条件是否满足来确定下一步要执行的操作。它在使用时可以采用如下三种形式:
(1)if(<条件表达式>)
语句或语句块;
在if-else 条件语句的这种使用形式中没有出现else项,这种情况下条件分支语句的执行过程是:
● 如果指定的<条件表达式>成立(也就是这个条件表达式的逻辑值为“ 1”),则执行条件分支语句内给出的“语句或语句块”,然后退出条件分支语句的执行。
● 如果<条件表达式>不成立(也就是条件的表达式的逻辑值为“0”、“x”、“z”),则不执行条件分支语句内给出的“语句或语句块”,而是直接退出条件语句的执行。
例如程序1
这段程序在运行时,就会根据条件表达式“sel==1”是否成立来决定是否执行赋值语句“out=a”如仿真图,如果sel==1时,则赋值语句就会得到执行,输出信号out得到a的值1,如果sel==0时,则不执行的赋值语句,输出信号out保持原有的值不变。如图,当sel==0时,out保持原值1不变。
(2)if(<条件表达式>)
语句或语句块1
else
语句或语句块2
这种形式的条件分支语句将以如下方式得到执行:
● 如果指定的<条件表达式>成立(也就是这个条件表达式的逻辑值为“1”),则执行条件分支语句第一行所指定的语句或语句块1,然后结束条件分支语句的执行。
● 如果<条件表达式>不成立,则执行由条件分支语句内第二行的else项指定的语句或语句块2,然后结束条件分支语句的执行。
例如程序2
在运行这段程序时,会根据条件表达式“sel==1”是否成立来决定执行两条过程赋值语句中的哪一条。
如果sel==1,则第一行if这项所指定的赋值语句out=a,得到执行,输出信号out 得到a的值1,如图所示。
如果sel!==1,则执行第二行else 项所指定的赋值语句out=b,输出信号out得到b的值。
(3)if(<条件表达式1>)
语句或语句块1
else if( <条件表达式2>)
语句或语句块2
………
else
在执行这种形式的if-else条件分支语句时,将按照各分支项的排列顺序对各个条件表达式是否成立做出判断,当遇到某一项的条件表达式成立时,就执行这一项所指定的语句或语句块。
如果所有的条件表达式都不成立,则执行最后的else项。
这种形式的if-else条件分支语句实现了一种多路分支选择控制。
如果sel1的值为1,则第一个分支项的条件表达式sel1成立,因而第一分支项所指定的赋值操作out=a执行。
如果sel2的值为1,sel1的值不为1,则第二个分支项的条件表达式sel2成立,因而第二个分支项所指定的赋值操作out=b执行。
如果sle1和sel2的值都不为1,则执行else 分支语句这一项操作out=c执行。
(4)Verilog HDL 允许if-else 条件分支语句的嵌套使用。
If(<条件表达式1>)//外层if语句
If(<条件表达式2>)//内层if语句1
Else //内层else语句2
Else //外层else语句1
If(<条件表达式3>)//内层if语句3
Else //内层else语句4
1. case 分支控制语句
case分支语句是另一种用来实现多路分支控制的分支语句。与使用if-else条件分支语句相比,采用case分支语句来实现多路控制将显得更为方便与直观。
Case分支语句通常用于对微处理器指令译码功能的描述以及对有限状态机的描述。Case分支语句有“case”、“casez”、“casex”三种形式。
(1) case语句
case(<控制表达式>)
<分支语句1> :语句块1
<分支语句2> :语句块2
<分支语句3> :语句块3
………
<分支语句n> :语句块n
Default: 语句块n+1;
Endcase
<控制表达式>代表着对程序流向进行控制的控制信号:各个<分支表达式>则是控制表达式的某些具体状态取值,在实际使用中这些分支项表达式通常是一些常量表达式:各个“语句”则指定了在各个分支下所要执行的操作,它们也可以是由单条语句构成,处于最后的、以关键词default开头的那个分支项称为“default”分支项,它是可以缺省的。
Case语句的执行过程:
(1)当“控制表达式”的取值等于“分支项表达式1”时,执行第一个分支项所包含的语句块1.
(2)当“控制表达式”的取值等于“分支项表达式2”时,执行第一个分支项所包含的语句块2.
………….
(n)当“控制表达式”的取值等于“分支项表达式n”时,执行第一个分支项所包含的语句块n.
(4)在执行了某一分支项内的语句后,跳出case语句结构,终止case语句的执行。
Case语句中各个“分支项表达式”的取值必须是互不相同的,否则就会出现矛盾现象。
Case语句在执行时,控制表达式和分支项表达式之间进行的比较是一种按进位进行的“全等比较”,也就是说,只有在分支项表达式和控制表达式对应的每一位都是彼此相等的情况下才认为分支项表达式和控制表达式两者是“相等”的,对应的语句块就会被执行。
3. case语句和if-else的区别
if-else 语句的执行是有优先级的判断,按照优先级的顺序执行语句;而case语句没有先级的考虑,只跟对应的逻辑值有关系,只要逻辑值对应相等就执行对应的语句块。
相关推荐
- 野路子科技!2步教你把手机改造成一个FTP服务器,支持PC互传
-
哈喽,大家好,我是野路子科技,今天来给大家带来一个教程,希望大家喜欢。正如标题所言,就是教大家如何把售价改造成FTP服务器,而这个时候估计有朋友会问了,把手机改造成FTP服务器有什么用呢?现在有Q...
- 不得不看:别样于Server-U的群晖文件存储服务器的搭建与使用
-
我先前的作品中,有着关于Server-U的ftp文件存储服务器的搭建与访问的头条文章和西瓜视频,而且我们通过各种方式也给各位粉丝介绍了如何突破局域网实现真正意义上的公网访问机制技术。关于Server-...
- Qt三种方式实现FTP上传功能_qt引入qftp库
-
FTP协议FTP的中文名称是“文件传输协议”,是FileTransferProtocol三个英文单词的缩写。FTP协议是TCP/IP协议组中的协议之一,其传输效率非常高,在网络上传输大的文件时,经...
- Filezilla文件服务器搭建及客户端的使用
-
FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能。可控性、有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个方便高效的FTP客户...
- 美能达柯美/震旦复印机FTP扫描怎么设置?
-
好多网友不知道怎么安装美能达/震旦复印机扫描,用得最多是SMB和FTP扫描,相对于SMB来说,FTP扫描安装步骤更为便捷,不容易出问题,不需要设置文件夹共享,所以小编推荐FTP来扫描以美能达机器为例详...
- CCD(简易FTP服务器软件)_简单ftp服务器软件
-
CCD简易FTP服务器软件是一款很方便的FPT搭建工具,可以将我们的电脑快速变成一个FPT服务器。使用方法非常简单,只要运行软件就会自动生效,下载银行有该资源。该工具是不提供操作界面的,其他用户可以输...
- Ubuntu系统搭建FTP服务器教程_ubuntu架设服务器
-
在Ubuntu系统上搭建FTP服务器是文件传输的一个非常实用方法,适合需要进行大量文件交换的场景。以下是一步步指导,帮助您在Ubuntu上成功搭建FTP服务器。1.安装vsftpd软件...
- 理光FTP扫描设置教程_理光ftp扫描设置方法
-
此教程主要用来解决WIN10系统下不能使用SMB文件夹扫描的问题,由于旧的SMB协议存在安全漏洞,所以微软在新的系统,WIN8/WIN10/SERVER201220162018里使用了新的SMB传...
- 纯小白如何利用wireshark学习网络技术
-
写在前面工欲善其事必先利其器!熟悉掌握一种神器对以后的工作必然是有帮助的,下面我将从简单的描述Wireshark的使用和自己思考去写,若有错误或不足还请批评指正。...
- 京东买13盘位32GB内存NAS:NAS系统安装设置教程
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:yasden你没有看错,我在京东自营商城购买硬件,组装了一台13盘位,32GB内存的NAS,硬盘有13个盘位!CPU是AMD的5500!本文...
- python教程之FTP相关操作_python ftps
-
ftplib类库常用相关操作importftplibftp=ftplib.FTP()ftp.set_debuglevel(2)#打开调试级别2,显示详细信息ftp.connect(“I...
- xftp怎么用,xftp怎么用,具体使用方法
-
Xftp是一款界面化的ftp传输工具,用起来方便简单,这里为大家分享下Xftp怎么使用?希望能帮到有需要的朋友。IIS7服务器管理工具可以批量管理、定时上传下载、同步操作、数据备份、到期提醒、自动更新...
- 树莓派文件上传和下载,详细步骤设置FTP服务器
-
在本指南中,详细记录了如何在树莓Pi上设置FTP。设置FTP可以在网络上轻松地将文件传输到Pi上。FTP是文件传输协议的缩写,只是一种通过网络在两个设备之间传输文件的方法。还有一种额外的方法,你可以用...
- win10电脑操作系统,怎么设置FTP?windows10系统设置FTP操作方法
-
打印,打印,扫描的日常操作是每一个办公工作人员的必需专业技能,要应用FTP作用扫描文件到电脑上,最先要必须一台可以接受文件的FTP服务器。许多软件都需要收费标准进行,但人们还可以应用Windows的系...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)