下来想了下,我觉得最小深度应该是8,然后以4为分界线触发aful信号 首先这个题要保证2个条件,1、进了A的数据不能丢失。2、B处理模块要一直工作,中间不能因为没有数据输入而暂停 思路:  假设fifo深度是8,工作状态下,由于A比B快,因此fifo的数据个数一定会变成4,此时aful拉高,A输入停止,A流水线中的8个数据依次进入fifo,用了8个周期,这期间B读走了4个数据,fifo数据量的净增量为4,进而fifo的数据量变成了8,此时aful还是高电平,再过了8个周期后,期间B读走了4个数据,而A不会向fifo写数据(输入停止加流水线残余数据在上8个周期全部写完),进而fifo中的数据量变成4,此时aful拉低,A的输入开始进数据,从此时到A再次把流水线灌满,需要8个周期,这段时间fifo中剩余的4个数据刚好满足B模块工作的需要。 简单来说,就是为了保证数据不丢失,需要4个深度来缓冲,为了让B在A重新灌满流水线的8个周期内不停工,需要4个深度保底,加起来就是8。 --------------------------------------------------------------------------------------------------------------------------------------- 以上仅是个人观点,不当之处,欢迎指正
点赞 7

相关推荐

昨天 22:14
门头沟学院 Java
点赞 评论 收藏
分享
11-28 16:00
已编辑
武汉理工大学 Java
Tom哥981:这份简历是“短期项目硬堆中大型系统技术”的“技术炫技式造假模板”,槽点密集到能当反面教材: ### 1. 「项目时长」和「技术密度」严重脱节,造假痕迹焊死在简历上 两个项目时长分别是**3个月、2个月**,但堆了Spring AI、Elasticsearch、MinIO、Kafka、ShardingSphere、Docker、Sentinel等近20个中大型项目才用的技术——正常情况下,光把这些中间件的文档看完+环境搭好,3个月都不够,更别说实现“AI多轮对话、分库分表、RBAC权限、大模型调用”这些功能。 说白了:你这不是“做项目”,是把“后端技术栈清单”往项目里硬塞,明摆着“只调用了API,没碰过核心逻辑”。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务