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。

相关推荐
爱学习的张哥2 小时前
UDP--DDR--SFP,FPGA实现之ddr读写控制模块
网络协议·fpga开发·udp
GateWorld20 小时前
深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第一篇:I2C总线协议深度解剖
fpga开发·开源协议
爱学习的张哥1 天前
UDP--DDR--SFP,FPGA实现之模块梳理及AXI读写DDR读写上板测试
单片机·fpga开发·udp·axi·ddr
白杨树田1 天前
【EDA软件】【联合Modelsim仿真使用方法】
fpga开发
搬砖的小码农_Sky1 天前
FPGA: XILINX Kintex 7系列器件的架构
fpga开发·架构·硬件架构
搬砖的小码农_Sky1 天前
FPGA:如何提高RTL编码能力?
fpga开发·硬件架构
晶台光耦1 天前
高速光耦在通信行业的应用(五) | 5Mbps通信光耦的特性
fpga开发
梓仁沐白2 天前
Verilog HDL 语言整理
fpga开发
FPGA_ADDA2 天前
基于PXIE 总线架构的Kintex UltraScale 系列FPGA 高性能数据预处理板卡
fpga开发·pxie总线·ku060·ku115
搬砖的小码农_Sky2 天前
FPGA:Lattice的FPGA产品线以及器件选型建议
嵌入式硬件·fpga开发·硬件架构·硬件工程