同时钟域下,模块间buffer深度、宽度设置

文章讲述了在同一时钟域内,模块A向其下属模块B传输数据的问题。由于模块A每时钟输出128bit,而模块B只能处理16bit,因此采用了将数据拆分为8组16bit并利用一个宽度为16bit、深度为8的buffer进行存储的方法。当buffer满时,通过buffer_full信号通知模块A暂停写入,处理完最后一个16bit数据后,buffer_full信号复位,允许新的数据写入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 同一时钟域下,模块A和模块B,其中模块A为模块B的上级模块,模块A每个时钟能输出128bit的数据,而模块B每个时钟只能处理16bit的数据,则需要在模块B中增加缓冲buffer,由于这种情况,无论buffer的深度设置为多少都会被填满的时候,所以将输入的128bit的数据进行拆解为8x16,所以将buffer的宽度设置为16bit,深度设置为8,并且设置buffer_full标志位,每当模块B接收到128bit数据便将buffer_full信号拉高;每当模块B处理数据到buffer中的最后一个16bit数据时,便将buffer_full信号拉低,让模块A写入128bit数据到buffer。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疾风小白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值