这两种语句是对设计进行行为级建模的主要结构。
一个模块之中可以包含任意多条initial语句或者always语句,这些语句相互之间是并行执行的,其在模块之中的顺序不重要。一条initial语句或者always语句的执行会产生一个单独的控制流。所有的initial语句和always语句都是在0时刻开始并行地执行。
1.initial语句
initial语句主要用于初始化和波形的形成
一条initial语句之能执行一次,在仿真开始时(0时刻)执行,语法格式如下:
initial
[timing_control] procedural_statement #过程性语句
过程性语句包含下列语句:
阻塞性或非阻塞性过程赋值语句、过程连续赋值语句、条件语句、分支语句、循环语句、等待语句、顺序块、并行块......
顺序块(begin...end)是最常使用的过程性语句。这里的timing_control可以是延迟控制,即指定等待时间;也可为事件控制,即等待定的事件发生或指定的条件为真。执行initial语句时,各条过程性语句仅执行一次。initial语句在仿真的0时刻开始执行。根据过程性语句之中出现的时间控制,其在一定的事件之后才会完成执行。顺序块中所包含的过程语句时按照顺序执行的。
e.g.1 无时序控制的过程性赋值语句
reg