用ram实现寄存器堆_FPGA设计基础——RAM的应用(二)

79a9f153b1af9d2f72fa392f55b1074f.png

上一篇文章介绍了RAM的基本特性(FPGA设计基础——RAM的应用(一)),本文接着介绍RAM的一些应用和注意事项。

(续)3、RAM的使用场景

场景1:表项

某设计输入的数据带一个8bit的user_id,指示该数据属于哪一个user,现在要求统计每个user收到的数据的个数,统计到1024*1024*1024即可,超过了统计计数器的最大值的话,可以翻转。

简单粗暴的方法,定义256个32bit的计数器,来一个数据后,先看user_id是多少,然后相应的计数器加1。如果user_id的不是8bit,是12bit,支持4K个user_id了?那这个方法可能就不好用了。即使是采用数组的方式,那也需要4K*30bit = 120K的reg,太浪费资源。

如下图所示,可以采用RAM来存放各个user_id的计数值,用user_id作为ram的地址,将各个user_id对应的计数值写入到RAM对应的地址中。每来一个数据,根据该数据的user_id读取ram中的值,然后将该值加1后再写回ram中。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值