【问题标题】:How to add delay to Tri-state Buffer如何向三态缓冲区添加延迟
【发布时间】:2023-03-11 16:25:02
【问题描述】:

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

分配垫=(启用)?数据输入:1'bz;

类似

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

但它不会工作。这样做的正确方法是什么?

【问题讨论】:

    标签: verilog delay assign bidirectional inout


    【解决方案1】:

    你应该把延迟放在assignpad之间

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

    此延迟将在 data_in 和切换到高阻抗时看到。
    您可以分别控制上升、失败和关闭时间。例如:

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

    没有开启时间,所以如果你只想延迟data_in,你需要创建一个间歇性分配

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

    您可以在IEEE Std 1800-2012 § 10.3 连续分配中了解有关延迟分配语句的更多信息。注意 SystemVerilog 允许对网络和变量类型进行赋值语句,Verilog 仅支持网络类型。

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

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 2014-12-21
      • 1970-01-01
      • 2019-12-15
      • 2017-09-13
      • 2020-11-14
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      相关资源
      最近更新 更多