两个双口ram之间数据的传递

1.如果两个双口ram数据位宽相同,则采用时钟快的ram等待时钟慢的ram来完成从一个ram中读取数据并存储到另一个ram中;例如从ram A中读取数据到ramB中,ram A的时钟为20M,而ram B的时钟为40M,可以重复读ram A来覆盖写ram B的方法,如果把ramB中的数据读取出写到ram A中,ram B需要等待ram A一个时钟后再改变地址。

2.如果两个双口ram数据位宽不同,可以通过移位或者拼凑位数来达到两个ram 之间的数据读写;例如,ram A的数据位宽为10,ram B的数据位宽为2,如果从A中读取数据写到B中,则ram A 每变动一次地址,需要有5个ram B的地址来接收数据,假如ram A B的读写时钟相同,则ram A 读取一个数据并写到ram B中至少需要5个时钟周期,考虑到ram读取的延时,对ram B 的地址addrB进行分析,一般初始化地址为0,0-4需要四次时钟累加,而4-9、9-14、......需要5次时钟累加,对于初始时第一次写入的5个时钟需要处理,方便做循环处理,可以通过延时或状态机来处理,使用6个时钟来读取1个位宽10的数据并写入到5个位宽为2的ram中。如下:A中100个数据写到B中500个地址中:

always@(posedge clk_high or negedge rst_n)
	if(~rst_n)
		main_state<=IDLE;
	else
		main_state&
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值