当前位置:   article > 正文

【芯片前端】保持代码手感——握手协议valid打拍时序优化_verilog中vld-rdy接口打拍

verilog中vld-rdy接口打拍

在valid-ready双向握手机制下,对valid和data进行打拍实现对下游接口的valid信号时序优化。无论下游ready是否有效,数据均会在寄存器中寄存一拍。要求数据输出不能丢弃或乱序,且下游的valid和data为寄存器输出。

接口如下:

  1. module forward_pipe #(
  2. parameter WIDTH = 8)
  3. (
  4. input clk,
  5. input rst_n,
  6. input [WIDTH -1:0]data_in,
  7. input data_in_valid,
  8. output data_in_ready,
  9. output[WIDTH -1:0]data_out,
  10. output data_out_valid,
  11. input data_out_ready
  12. );
  13. endmodule

题目解析

还是典型的握手协议题目,握手信号的打拍和enable型的还是有很大区别的。握手协议的产生valid和ready都可能是由复杂逻辑产生的,这时就需要对接口进行打拍以优化时序。相比而言,valid打拍的场景更为常用。

valid和data打拍核心还是在于两个寄存器,那么先来做一下valid的打拍寄存器。

对于valid的打拍,第一个问题是要不要带复位呢?显然是需要的,这种控制信号不带复位就是找挂呢。接下里,寄存器的en信号逻辑是什么呢?简单的方式,用(data_in_valid && data_in_ready) || (data_out_valid && data_out_ready)。

wire in_valid_en = (data_in_valid && data_in_ready) || (data_out_valid 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/206909
推荐阅读
相关标签
  

闽ICP备14008679号