赞
踩
在valid-ready双向握手机制下,对valid和data进行打拍实现对下游接口的valid信号时序优化。无论下游ready是否有效,数据均会在寄存器中寄存一拍。要求数据输出不能丢弃或乱序,且下游的valid和data为寄存器输出。
接口如下:
- module forward_pipe #(
- parameter WIDTH = 8)
- (
- input clk,
- input rst_n,
-
- input [WIDTH -1:0]data_in,
- input data_in_valid,
- output data_in_ready,
-
- output[WIDTH -1:0]data_out,
- output data_out_valid,
- input data_out_ready
- );
-
- 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。