EDA技术实用教程 您所在的位置:网站首页 阻塞与非阻塞赋值的区别 EDA技术实用教程

EDA技术实用教程

2024-07-15 16:58| 来源: 网络整理| 查看: 265

一、连续赋值语句

连续赋值语句用于把值赋给线网型变量(不能为寄存器型变量赋值)

连续赋值语句的基本格式如下:

assign 目标变量名 = 驱动表达式;

其中assign是连续赋值命名的关键词。由assign引导的赋值语句的执行方式是,当等号右侧的驱动表达式中的任一信号变量发生变化时,此表达式即被计算一遍,并将获得的数据立即赋给等号左侧的变量名所标示的目标变量。

对于并行语句,无论有多少行语句,都是同时执行的,与语句的前后次序无关。以关键词assign引导的赋值语句实际上属于并行赋值语句,即在模块module_endmodule中所有的由assign引导的语句都是并行运行的。

例如: module F A _ D f (A, B, Cin, Sum, Cout ) ; input A, B, Cin; output Sum, Cout ; assign Sum = A ^B ^Cin; assign Cout = (A & Cin) | (B & Cin) | (A & B) ; endmodule

在本例中,有两个连续赋值语句。这些赋值语句是并发的,与其书写的顺序无关。

二、过程赋值语句

用于对reg型变量赋值,有两种方式:阻塞式赋值,非阻塞式赋值。

1、阻塞式赋值

Verilog中,用“=”作为阻塞赋值语句的赋值符号,如y=b。

阻塞式赋值的特点是,一旦执行完当前的赋值语句,赋值目标变量y即刻获得来自等号右侧表达式的计算值。

2、非阻塞式赋值

Verilog中,用“



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有