Verilog HDL(三):赋值语句

赋值语句

(1)过程赋值语句
语法格式:<被赋值变量><赋值操作符><赋值表达式>
赋值操作符:可以是“=”或“<=”分别代表阻塞型和非阻塞型复制类型
(2)外部时间控制方式

#10   a =b;

相当于:

initial
begin
		#10
		a = b
end

(3)内部时间控制方式

a = #10   b;

相当于

initial
begin
		temp =b;
		#10;
		a = temp;
end

(4)阻塞性过程赋值语句 =
a.顺序块中的各条阻塞型赋值语句将以他们在顺序块中的排列先后次序依次得到执行;
b.并行块中得各条阻塞型赋值语句同时执行执行;
(5)非阻塞性过程赋值语句 <=
在begin-end中,一条非阻塞性过程赋值语句的执行不会阻塞下一条语句的执行。
(6)连续赋值语句
a.显式连续赋值语句

线网型数据类型(赋值驱动强度)[线网型数据位宽] 线网型数据名;
assign #(延时量) 线网型数据名 = 赋值表达式

例如:
wire z,x,y;
assign #(3,2,4) z = x&y;

b.隐式连续赋值语句

线网型数据类型(赋值)驱动强度[线网型数据位宽]  #(延时量) 线网型数据名 = 赋值表达式

wire #(3,2,4) z = x&y;

c.延时量的基本格式:
#(delay1,delay2,delay3)
delay1指的是线网型数据转移到“1”状态的延时值-----上升延时
delay2指的是线网型数据转移到“0”状态的延时值-----下降延时
delay3指的是线网型数据转移到“Z(高阻)”状态的延时值-----关断延时
(7)过程赋值语句
1> assign和deassign:前者式用来实现对寄存器类型变量的连续赋值操作,而不能对线网型数据进行连续赋值操作;后者撤销连续赋值的语句
注意:
deassign语句撤销对寄存器变量的连续赋值后,该寄存器变量仍将保持该语句执行之前的取值。
例如:

reg[3:0]   out;
initial 
begin
		out = 0;                               //s1
		assign out = 1;                    //s2
		assign out = 2;                     //s3
		deassign out;                          //s4 撤销连续赋值的语句
end

//执行撤销连续赋值的语句后,取值仍保持为2

2> force和release
force语句的优先级高于assign语句,我们称为强制语句。
release语句force语句的连续操作,–释放语句

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值