赛灵思
直播中

卢家辉

7年用户 189经验值
私信 关注
[问答]

怎么使用virtex 5上的Block RAM来实现延迟线?

我正在尝试使用virtex 5上的Block RAM来实现延迟线。延迟线需要将数据延迟一个时钟周期。
这可能使用Block RAM吗?
我尝试使用简单的双端口RAM,“先读”作为操作模式。
我正在写一个地址并在下一个时钟上读取它。
然后需要另一个时钟周期来准备数据。
有谁知道我能早点准备好产出吗?
如果是这样,我将能够实现这个具有一个时钟周期延迟的延迟线。
目前,它出现了两个时钟周期的延迟。
谢谢

回帖(5)

杨玲

2020-6-18 15:56:35
我很困惑为什么你会使用Block RAM进行单周期延迟。
你在试吗
制作一个可变延迟线,可以有1到N个延迟周期,其中N很大?
如果没有Block RAM没有多大意义。
无论如何我会认为你想要的
如果你想要尽可能低的延迟,“先写”。
记住读写
都是在时钟边缘注册,但在写入第一模式时,读取单元格
写入将返回新数据而不是先前的数据。
我会模仿
这是为了看它是否符合你的需要。
- Gabor
- Gabor
举报

陈明

2020-6-18 16:01:47
谢谢。
尽管我得到了碰撞检测警告,但“先写”似乎可以完成这项工作。
我正在使用Port A进行写作。
我将该模式设置为“先写入”,然后我从端口B读取,我正在使用“先写”模式。
因为我只是从它读取,所以B端口模式真的很重要吗?
我正在使用一个简单的双端口ram。
我会使用寄存器而不是块ram,但我正在寻找保存触发器的方法,因此使用ram作为延迟线是我能想到的另一种方式。
举报

杨玲

2020-6-18 16:08:41
谢谢。
尽管我得到了碰撞检测警告,但“先写”似乎可以完成这项工作。
我正在使用Port A进行写作。
我将该模式设置为“先写入”,然后我从端口B读取,我正在使用“先写”模式。
因为我只是从它读取,所以B端口模式真的很重要吗?
我正在使用一个简单的双端口ram。
我会使用寄存器而不是块ram,但我正在寻找保存触发器的方法,因此使用ram作为延迟线是我能想到的另一种方式。
举报

陈明

2020-6-18 16:24:40
当您的BRAM端口使用相同的时钟时,通常可以忽略碰撞警告
写 - 写冲突除外,如果一个端口是只读的,则不会发生这种情况。
通常,FPGA比块RAM有更多的触发器,所以使用它似乎很奇怪
除非你有一个非常不寻常的设计,否则BRAM可以保存人字拖鞋。
您也可以使用BRAM
使用综合或地图选项替换LUT。
如果你真的需要很多人字拖鞋
没有那么多LUT,你可以使用LUT作为SRL16CE组件来取代一些触发器。
仅在没有重置期限的情况下实施一个(或多个)循环延迟将允许工具使用SRL
如果能节省资源,自动使用LUT。
任何具有复位的寄存器通常都是
需要一个触发器。
- Gabor
- Gabor
举报

更多回帖

发帖
×
20
完善资料,
赚取积分