【问题标题】:do we use blocking or non-blocking statement while we make latch in verilog?在 Verilog 中进行闩锁时,我们是使用阻塞语句还是非阻塞语句?
【发布时间】:2021-09-12 20:53:50
【问题描述】:

在verilog中制作闩锁的正确方法是什么? 当我尝试在 vivado 上合成两种方式时,两种情况下都会生成闩锁。我想了解我们是使用阻塞语句还是非阻塞语句?

i) 总是@(enable,input) 开始 q

ii) 总是@(enable,input) 开始 q = 输入; 结束

【问题讨论】:

    标签: verilog digital


    【解决方案1】:

    使用阻塞分配。

    对于综合,仅对边缘敏感的时序逻辑使用非阻塞分配。

    【讨论】:

      【解决方案2】:

      您提供的任何方法都不能用于制作闩锁。

      常用的编程模式如下:

      always @*
         if (en)
             q <= inp;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-01
        • 2019-02-05
        • 1970-01-01
        • 2020-05-18
        • 1970-01-01
        • 2012-11-13
        • 1970-01-01
        • 2014-10-19
        相关资源
        最近更新 更多