Verilog之assign

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

  1. 数据流建模
    用于数据流建模的显示连续赋值语句语法格式如下:
    <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
    
  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
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值