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。

相关推荐
花月mmc4 小时前
FPGA数字信号处理与深度学习
嵌入式硬件·深度学习·fpga开发·信号处理
幻智星科技5 小时前
UDP桥接IP产品简介
tcp/ip·fpga开发·udp·硬件架构
女神下凡5 小时前
芯参谋(76):电源监控复位芯片电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范
国科安芯5 小时前
LEO卫星里的IO脉冲事件通信,毛刺误触发解析及处理方案
单片机·嵌入式硬件·fpga开发·低轨卫星·商业航天·抗辐射
Riwuarua14 小时前
从近似0基础开始FPGA开发——Part.25:GT 高速收发器架构与 KU5P 资源规划
fpga开发·架构
星夜离尘5618 小时前
FPGA 三点中值滤波:不补零、不丢背压样本的流式实现
fpga开发
hexiaoyan8271 天前
互联卡设计方案:504-PCIE X16 金手指 FPGA Aurora协议互联卡
fpga开发·测试载板·互联卡·fpga aurora协议·夹板连接器·板卡互联
星夜离尘561 天前
FPGA 二进制数如何变成十进制显示:可背压的逐位 BCD 转换器
fpga开发
匠行科技1 天前
基于VPX架构的4路10GSPS ADC信号采集处理板
fpga开发
幻智星科技2 天前
蒙哥马利模乘FPGA优化实战
fpga开发·密码学