首页 > 解决方案 > 使用 reg 和在硬件中分配值有什么区别?

问题描述

我正在 FPGA 上编程,我想知道 reg 和具有赋值值的线之间的含义和区别是什么。

例如在verilog中

reg A;
wire B;

always @ (posedge clock) begin
A = 1'b1;
end

assign B = 1'b1;

A和B在硬件上的主要区别是什么?

编辑:我已经检查过寄存器使用了 FPGA 的资源,但是如果布线分配不使用寄存器,那么这些值是如何获得的?

标签: verilogfpga

解决方案


你问了一个错误的问题。它应该听起来像:

reg和有什么区别wire

reg是一种数据类型,应该在事务之间保持其状态。类型的数据reg可以在always块中分配一个值(其中包含顺序编程代码)。

wire是一种互连介质,旨在连接模块。它是无状态的,不应该保持状态,应该始终被驱动。驱动它们的方式称为连续分配,由assign关键字表示。连线不能在 always 块和 require 中分配任何值assign

这里还有另一个很好的解释: Verilog 模块中的 reg 和 wire 有什么区别


推荐阅读