一、数据流建模
连续赋值语句
标量线网,如:wire a,b;
向量线网,如:wire [3,0]a,b;
显式连续赋值语句:
<net_declaration><range><name>;
assign #<delay><name>= Assignment expression;
隐式连续赋值语句:
<net_declaration>< drive strength ><range>#<delay><name>=Assignment expression;
<net declaration>(连线型变量类型)
<range>(变量位宽),指明了变量数据类型的宽度,格式为[msb:lab],缺省为1位。
<drive_ strength >(赋值驱动强度)是可选的,只能在“隐式连续赋值语句” 格式中得到指定。它用来对连线型变量受到的 moc驱动强度进行指定。
wire(weak0,strong1) out=in1&in2;
<delay>(延时量)这一项式可选的。
#(delay1,delay2,delay3
连续赋值语句需要注意的以下几点:
- 赋值目标只能是线网类型 (wire)
-在连续赋值中,只要赋值语句右边表达式任何一个变量有变化,表达式立即被计算,计算的结果立即赋给左边信号 (若没有定义延时量);组合逻辑电路
- 连续赋值语句不能出现在过程块中。
-多个连续赋值语句之间是并行语句,因此与位置顺序无关。
-连续赋值语句中的延时具有硬件电路中惯性延时的特性,任何小于其延时的信号变化脉冲都将被滤除掉,不会体现在输出端口上。
二、行为级建模
可综合=能生成电路,编译器认识 不可综合=不能生成电路,只能用于仿真