fpga系列 HDL: 05 阻塞赋值(=)与非阻塞赋值(<=)

  • 在Verilog硬件描述语言(HDL)中,信号的赋值方式主要分为两种:连续赋值和过程赋值。每种赋值方式有其独特的用途和语法,并适用于不同类型的电路描述。

1. 连续赋值(Continuous Assignment,assign 和=)

  • 连续赋值主要用于描述组合逻辑,通常与assign关键字一起使用。它在顶层模块或过程块外部进行,用于对wire类型的信号赋值。

特点

  • 组合逻辑:连续赋值用于实现组合逻辑,表示输出信号始终等于表达式的值。
  • 实时更新:当右边的表达式中的任何信号发生变化时,左边的信号会立即更新。
  • 信号类型:通常用于wire类型信号。

示例

示例 1

module blink_led(
    input wire a,
    output wire b
);

assign b = a;

endmodule

在这里插入图片描述

示例 2

module combinational_logic (
    input wire a,
    input wire b,
    output wire c
);
    // c 始终等于 a 和 b 的逻辑与
    assign c = a & b;
endmodule

在这里插入图片描述

2. 过程赋值(Procedural Assignment)

  • 过程赋值用于过程块(如alwaysinitial块)内,适用于描述组合逻辑或时序逻辑。过程赋值可以进一步分为两种:阻塞赋值(=)和非阻塞赋值(<=)。

2.1 阻塞赋值(Blocking Assignment,=

特点 :

  • 顺序执行:阻塞赋值按书写顺序执行,一个语句必须在前一个语句完成后才能执行下一个语句。
  • 阻塞行为:在赋值完成之前,后续的语句不会执行。相当于“阻塞”了后续操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值