Verilog之assign

Verilog中的关键词assign主要用于如下两个地方:

  1. 数据流建模
    用于数据流建模的显示连续赋值语句语法格式如下:
    ;
    assign # = 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
    
  2. 行为级建模
    用于行为级建模的过程连续赋值语句语法格式如下:
    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
    

你可能感兴趣的:(FPGA,fpga开发)