Verilog HDL 基本语法注意点

      case和if...else语句使用:在多个条件分支处于同一个优先级时,使用case语句;在多个条件分支处于不同优先级时,使用if...else嵌套形式。


     关于条件操作符:在处理简单的二选一问题时,条件操作符的表述比较简洁,但在处理复杂的选择问题时,使用条件操作符会使程序显得混乱而且难懂,所以不推荐使用条件操作符实现复杂的条件结构。


    几种循环语句的比较:
      repeat:循环次数固定
      while:
      for:
      forever:无穷循环,如果想要退出循环,必须采用强制退出循环的方法。用disable语句。

 

    disable语句的使用:
    一般情况下,程序总是应该留有正常的出口用于退出循环。但是在有些特殊情况下,仍需要强制推出循环
。disable语句提供了强制推出循环的方法。
    要使用disable强制推出循环,首先要给循环起一个名字,起名的方法是在begin后面添加“: 名字”。事
实上,disable可以中止任何有名字的begin-end块。下面的例子中,disable语句使循环在连续做3次加1操作后就中止,然后继续执行后续操作。
 begin: continue
    for(i=0;i<4;i=i+1)
       begin
          a=a+1;
          if(i==2) disable continue;
      end
 end
 后续操作1:
 后续操作2:
 ...


    下面对上例做出一点改动,将模块的名字continue换个位置,如下:
 //本例依然做了4次加1操作
 //disable中止了一次循环,然后继续执行下一次循环
 for(i=0;i<4;i=i+1)
    begin: continue
       a=a+1;
       if(i==2) disable continue;
    end


    上例中,disable中止了continue块后,继续执行的是for语句的更新循环变量的操作,即:i=i+1。当赋值

 

操作完成后,又对条件表达式i<4进行了判断,结果为真,所以继续执行下一次循环。
    上面两个例子中,第一个执行的操作相当于C语言中的break,完全中止了循环;第2个相当于continue,仅
仅中止了一次循环。

 

任务和函数:
    Verilog HDL中的任务与高级语言中的过程类似,它不带返回值,但其参数可以定义为输出端口或双向端口
,因此实际上任务可以返回多个值。
    函数与任务相比,其功能要弱一些。在函数中可以嵌套调用函数,但不可以调用任务,而在任务中,既可
以调用函数,也可以调用任务。函数中不允许出现延时和事件控制语句,也就是说函数必须马上执行完,而任务可以在执行过程中挂起。函数必须有一个返回值,返回值被赋给和函数同名的变量,这也决定了函数只能存在一个返回值。

 

 

常用的预编译指令:
    宏定义语句 'define
    文件包含语句 'include
    条件编译指令 'ifdef  'else  'endif
    时间尺度 'timescale :用来定义模块的仿真时间单位和时间精度,使用格式:
         'timescale 仿真时间单位/时间精度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值