- 题分析
- 位宽转换,转换比为1:4,上下级用握手方式传输数据,要充分考虑反压情况
- 输入
- din_valid, din_ready, din[4:0]
- 输出
- dout_valid, dout_ready, dout[19:0]
- 输出信号寄存1拍,则输出比输入信号延迟1拍
- 中间寄存器
- holding[2:0]
- 过程
- holding负责计算din握手成功次数,即上级传入多少tick
- 那么如果位宽拼接是1:4,则希望valid=(holding==4)
- din_ready:
- 如果dout_valid拉高时dout_ready拉低,则数据无法传输,为了防止dout数据被冲毁,此时din_ready需拉低,即din_ready=dout_ready;
- 但是如果dout_valid未拉高,则数据未拼接完成,仍有承载能力,可以继续接收上级数据,即din_ready=!dout_valid;
- 那么合并即可:din_ready=!dout_valid | dout_ready。
- holding负责计算din握手成功次数,即上级传入多少tick
-
-
- holding:
- holding是上级传输数据数量的计数器ÿ
- holding:
-