【verilog】四、数据流建模

-数据流建模:根据数据在寄存器之间的流动和处理过程对电路进行描述,而不是直接对电路的逻辑门进行实例引用。

-连续赋值语句:Verilog数据流建模的基本语句,用于对线网进行赋值。

驱动强度是可选项,默认值为strong1和strong0;

延迟值是可选项;

1、连续赋值语句左值必须是一个标量或是向量线网,或是两者拼接。

2、连续赋值语句总是处于激活状态。

3、操作数可以是标量、向量线网、寄存器、函数调用。

4、赋值延迟类似于门延迟,用于控制对线网赋予新值的时间。

e.g.:

 assign out = i1 & i2;

 assign addr[15:0] =  addr1_bits[15:0] ^ addr2_bits[15:0];

-隐式连续赋值:在线网声明的同时对其进行赋值。

【verilog】四、数据流建模_第1张图片

 

-隐式线网声明:

1、如果一个信号名被用在连续赋值语句的左侧,那么Verilog编译器默认该信号是一个隐式声明的线网;

2、如果线网被连接到模块的端口上,则Verilog编译器认为隐式声明线网的宽度等于模块端口的宽度;

-延迟:用于控制任一操作数发生变化到语句左值被赋予新值的时间间隔。

-普通赋值延迟:在连续赋值的语句中说明延迟值,延迟值位于关键字assign之后。若在延迟时间范围内,即在左值获得新值之前,输入值发生变化,那么在计算表达式的新值时会取输入值的当前值,称为惯性延迟,即脉冲宽度小于赋值延迟的输入变化不会对输出产生影响。

 assign #10 out = in1 & iin2;

 

-隐式连续赋值延迟:

【verilog】四、数据流建模_第2张图片

 

-线网声明延迟:在声明线网时指定一个延迟。

【verilog】四、数据流建模_第3张图片

 

-表达式、操作符、操作数:

-表达式:操作符与操作数构成,同C;

-操作数:可以是常数、整数、实数、线网、寄存器、时间、位选、域选、存储器、函数调用。

-操作符:见下一篇中操作符

你可能感兴趣的:(verilog)