Verilog中的关键词assign
主要用于如下两个地方:
- 数据流建模
用于数据流建模的显示连续赋值语句语法格式如下:
<net_declaration><rang><name>;
assign #<delay><name> = Assignment expression;
以上语法第一条句是对连线型变量进行类型说明,第二条语句是对这个连线型变量进行连续赋值。
示例代码如下:module example(a, b, m, n, c, y);
input[3,0] a, b, m, n;
output[3,0] c, y;
wire[3,0] a, b, m, n, c, y;
assign y = m | n;
assign #(3,2,4) c = a & b;
endmodule
- 行为级建模
用于行为级建模的过程连续赋值语句语法格式如下:
assign <寄存器类型变量> = <赋值表达式>
过程连续赋值语句assign
和过程赋值语句同属于行为级描述中的赋值语句。而赋值语句只能用于对寄存器型变量赋值,不可用于对连线型变量赋值。
示例代码如下:module example(d, clr, clk, q);;
input d, clr, clk;
output q;
reg q;
always@(clr) begin
if (!clr)
assign q = 0;
else
deassign q;
end
aways@(negedge clk) q = d;
endmodule
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)