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。

相关推荐
chenlance1 天前
基于FPGA的激光器多通道数据采集与波形控制系统设计
fpga开发
9527华安1 天前
FPGA实现GTP高速收发器2路视频传输,基于aurora 8b10b编解码架构,提供4套工程源码和技术支持
图像处理·fpga开发·aurora·高速收发器·8b10b·derdes
cjie2211 天前
lanczos插值引起的振铃现象
计算机视觉·fpga开发
liuluyang5301 天前
Verilog 中 wire 与 wor 的区别详解
fpga开发·verilog
GateWorld2 天前
LCD显示技术完全指南:原理·制造·驱动·FPGA实现之点屏五 miniLVDS
fpga开发·lcd显示·fpga点亮屏幕·minilvds
nuoxin1143 天前
WILX1200HC-5TG144I替代 LCMXO2-1200HC-5TG144I(富利威)
人工智能·嵌入式硬件·fpga开发·电脑·硬件工程·dsp开发
Bahair_3 天前
【FPGA】使用fdatool设计滤波器系数,使用FIR Compiler导入系数联合滤波
fpga开发
qq_411262423 天前
硬件是ESP32-P4连接LAN8720A,正常初始化之后,设备DHCP失败
stm32·单片机·fpga开发
第二层皮-合肥3 天前
【数据采集专栏】时钟同步(有时钟卡方案)
fpga开发
XINVRY-FPGA3 天前
XCKU035-2FBVA676I AMD Xilinx Kintex UltraScale FPGA
arm开发·嵌入式硬件·网络安全·fpga开发·硬件工程·信号处理·fpga