Verilog 如何向三态缓冲区添加延迟

Verilog 如何向三态缓冲区添加延迟,verilog,delay,assign,bidirectional,inout,Verilog,Delay,Assign,Bidirectional,Inout,我是verilog新手,所以我有一个非常简单的问题。我想在下面语句中的分配给pad之前添加延迟 分配焊盘=(启用)?数据单位:1'bz 差不多 assign pad = (enable) ? #10 data_in : 1'bz; 但这行不通。正确的方法是什么 您应该在分配和键盘 assign #10 pad = (enable) ? data_in : 1'bz; 此延迟将对数据_in和切换到high-Z产生影响。 您可以分别控制上升、失败和关闭时间。例如: assign #(10,10,

我是verilog新手,所以我有一个非常简单的问题。我想在下面语句中的
分配给
pad
之前添加延迟

分配焊盘=(启用)?数据单位:1'bz

差不多

assign pad = (enable) ? #10 data_in : 1'bz;

但这行不通。正确的方法是什么

您应该在
分配
键盘

assign #10 pad = (enable) ? data_in : 1'bz;
此延迟将对数据_in和切换到high-Z产生影响。
您可以分别控制上升、失败和关闭时间。例如:

assign #(10,10,0) pad = (enable) ? data_in : 1'bz;
没有开启时间,因此如果您只想延迟
中的
数据,\u,则需要创建一个间歇分配

wire #10 data_in_delayed = data_in;
assign pad = (enable) ? data_in_delayed : 1'bz;
您可以在§10.3“连续赋值”中了解有关带延迟赋值语句的更多信息。注SystemVerilog允许在网络和变量类型上分配语句,Verilog仅支持网络类型


另外,请注意,
#
延迟被合成忽略
#
延迟仅用于模拟。

您应将延迟放在
分配
pad

assign #10 pad = (enable) ? data_in : 1'bz;
此延迟将对数据_in和切换到high-Z产生影响。
您可以分别控制上升、失败和关闭时间。例如:

assign #(10,10,0) pad = (enable) ? data_in : 1'bz;
没有开启时间,因此如果您只想延迟
中的
数据,\u,则需要创建一个间歇分配

wire #10 data_in_delayed = data_in;
assign pad = (enable) ? data_in_delayed : 1'bz;
您可以在§10.3“连续赋值”中了解有关带延迟赋值语句的更多信息。注SystemVerilog允许在网络和变量类型上分配语句,Verilog仅支持网络类型

另外,请注意,
#
延迟被合成忽略<代码>#
延迟仅用于模拟