阻塞赋值与非阻塞赋值
阻塞赋值:用“=”表示,计算等号右边,期间不允许任何其他语句干扰,必须等这个赋值语句完成后,再进行下一条赋值语句。
串行块(begin-end)中 ,各条阻塞赋值语句就像C语言一样按顺序执行。
非阻塞赋值:用“<=”表示,在赋值开始时刻,计算所有赋值号右边的语句,赋值结束时刻,同时更新赋值号左边的语句,整个赋值期间,允许其他任何语句的操作。
非阻塞赋值只能用于对寄存器变量进行赋值,因此只能用于“initial”和“always”块中,而不能用于连续赋值“assign”。
相比于阻塞赋值,非阻塞赋值对应的电路结构一般与触发沿有关,只有在触发沿时刻才能进行非阻塞赋值。