在FPGA项目中遇到一个问题,大体是要实现不同数据的动态延迟,而且要实现流水作业。如下为示意图:
为此思考了方案一
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
有了方案,开始设计每个模块的实现,这里分为三个部分设计
1 前仲裁模块
这个实现的就是每个有两路信号过来时(以flag上升沿为标志),将这个信号依次分配给delay模块,可以考虑类似于3-8编码器的设计思路
下面为block视图
d1到d8是8级缓存,实现8级流水,当有信号来时,依次分流到d1——d8,再循环。
下面为modelsim仿真图
2 delay模块
这个模块实际就是一个状态机就能解决,分为idle 和 计数延迟两个状态
block视图为
3 后仲裁模块
使用 “与” 操作将8路信号串行输出
整体的block视图为