【嵌入式】一招规范Verilog的if...else语句

在做FPGA、CPLD时可以选择VHDL语言和Verilog语言,刚接触FPGA开发,VHDL和Verilog都简单的接触学习了一下。排除两者在功能实现、具体细节上的差异,作为经常使用C语言的人来说,Verilog语言在语法上显得更有亲和力。
Verilog支持if…else if…else…的判断语法结构,与C语言类似,且也支持判断语句嵌套,支持某判断分支下执行多条语句。虽然与C语言类似,但因为它没有大括号{}的说法,使得在书写较为复杂的逻辑时显得乱糟糟,看上去一头雾水。如在if…else if…else中再嵌套多层判断语句,且每个判断分支下存在多条语句。以C语言举一个例子,伪码如下:

if(condition1)
{
    state1;
}
else if(condition2)
{
    state2;
    state3;
    state4;
}
else
{
    state5;
}

以上逻辑放在Verilog中该怎么规范书写以达到期望的逻辑呢?答案很简单——以begin替代C语言中的左括号{ 、以end替代右括号}。只有这样规范书写,才会最大限度的避免“奇怪的”逻辑错误,防止低级错误的出现。以上代码换做Verilog作如下书写:

if(condition1)
begin
    state1;
end
else if(condition2)
begin
    state2;
    state3;
    state4;
end
else
begin
    state5;
end

或者

if(condition1) begin
    state1;
end
else if(condition2) begin
    state2;
    state3;
    state4;
end
else begin
    state5;
end

一个好的习惯就是在写完if、else if、else后马上在后边加上begin和end,然后再在begin、end之中进行后续语句的填充。道理同C语言的写完if、else if、else马上打大括号一样。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜老越

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值