Verilog语法之if-else语句学习

if_else 条件分支语句的作用是根据指定的判断条件是否满足来确定下一步要执行的操作。它在使用时可以采用如下三种形式:

if(<条件表达式>)

语句或语句块:

在 if_else 条件语句的这种使用形式中没有出现else 项,这种情况下条件分支语句的执行过程是:

A 如果指定的<条件表达式>成立(也就是这个条件表达式的逻辑值为"1"),则执行条件分支语句内给出的"语句或语句块",然后退出条件分支语句的执行。

B 如果<条件表达式>不成立(也就是条件表达式的逻辑值为"0"),则不执行条件分支语句内给出的"语句或语句块",而是直接退出条件语句的执行。

这段程序在运行时,就会根据条件表达式"sel_en"的逻辑值决定是否执行赋值语句"data_out=data_in"。如仿真结果所示,当sel_en==1时,则赋值语句就会执行,那么data_out就得到了data_in的值2;当sel_en==0时,则不执行赋值语句,data_out就保持原有的值不变。

  1. if(<条件表达式>)

语句或语句块1

else

语句或语句块2

这种形式的条件分支语句将以如下方式得到执行:

A 如果指定的<条件表达式>成立,(也就是这个条件表达式的逻辑值为"1"),则执行条件分支语句第一行所指定的语句或语句块,然后结束条件分支语句的执行。

B 如果<条件表达式>不成立,则执行由条件分支语句内第二行的else项指定的语句或语句块2,然后结束条件分支语句的执行。

举例说明:

在运行这段程序时,会根据条件表达式"sel_en"的逻辑值来决定执行两条赋值语句中的哪一条。

如果sel_en==1,则执行if下的赋值语句data_out=data_in;如果sel_en==0,则执行else下赋值语句data_out=data_in2。

  1. if(<条件表达式>)

语句或语句块1

else if(<条件表达式2>)

语句或语句块2

..........

else

语句或语句块N

在执行这种形式if-else条件分支语句时,将按照各分支项的排列顺序对各个条件表达式是否成立做出判断,当遇到某一项的条件表达式成立时,就执行一项所指定的语句或语句块。

如果所有的条件表达式都不成立,则执行最后的else项。

这种形式的if-else条件分支语句实现了一种多路分支选择控制。

举例说明:

如果 sel_en==1时,则执行if下的赋值语句,data_out=data_in。

如果sel_en2==1与sel_en==0,时,则执行else if下的赋值语句,data_out=data_in2。

如果 sel_en和sel_en2都是0时,则执行else下的赋值语句,data_out=data_in3。

相关推荐
hexiaoyan8273 小时前
【无标题】高速信号处理设计原理图:413-基于双XCVU9P+C6678的100G光纤加速卡
fpga开发·高速信号处理·光纤加速·xcvu9p芯片·硬件加速卡
search74 小时前
数字电子技术基础
fpga开发
ooo-p4 小时前
FPGA学习篇——Verilog学习之“触摸按键控制LED灯”
学习·fpga开发
全栈开发圈16 小时前
干货分享|深度学习计算的FPGA优化思路
人工智能·深度学习·fpga开发
尤老师FPGA1 天前
LVDS系列40:Xilinx Ultrascale系 ADC LVDS接口参考方法(二)
fpga开发
松涛和鸣1 天前
60、嵌入式定时器深度解析:EPIT与GPT
c语言·arm开发·单片机·嵌入式硬件·gpt·fpga开发
天骄t1 天前
ARM时钟初始化与GPT定时器深度解析
stm32·单片机·fpga开发
乌恩大侠1 天前
【AI-RAN 调研】软银株式会社通过全新 Transformer AI 将 5G AI-RAN 吞吐量提升 30%
人工智能·深度学习·5g·fpga开发·transformer·usrp·mimo
Terasic友晶科技2 天前
DE25-Nano开发板在Programmer的 Auto Detect 下检测出来的器件和友晶官方提供的工程里器件不一样有没有关系?
fpga开发·auto detect·de25-nano·jtag id
ShiMetaPi2 天前
GM-3568JHF丨ARM+FPGA异构开发板应用开发教程:04 MIPI屏幕检测案例
arm开发·fpga开发·rk3568