共3条
1/1 1 跳转至页
有关Virtex-6 FPGA Block RAM 设计咨询 - 地址空间重叠
只看楼主 1楼
在某些情况下,可能导致 Virtex-6 FPGA block RAM 内容损坏。只有在为 block RAM 的 CLKA 和 CLKB 配置了不同时钟的情况下, 使用下列任何一种设置时才会出现此问题:为 RAMB36E1 或RAMB18E1 组件设置的真正双端口 (TDP) 模式 其中 WRITE_MODE = READ_FIRST为 RAMB36E1 或 RAMB18E1 元件设置的简单双端口 (SDP) 模式,包括 错误纠正代码 (ECC) 实现 在某个重叠地址上,当一个端口在执行写操作而另一个端口在尝试进行后续的读操作时,读操作可能会失败,并且被写入的存储器位置的内容可能会损坏。如果 Block RAM 的 CLKA 和 CLKB 受同一个时钟驱动,那么将不会发生冲突,并且可以成功执行读写操作而不会发生存储器损坏。有关哪些时钟机制会受到此问题影响的更多详情,请参阅下列图表,并查阅“解决方法”部分以获取解决此问题的方法。图 1:表 1:地址冲突条件 RAMB36E1 原语RAMB18E1 原语地址冲突在满足下列所有条件下才会发生地址冲突:- 同时启用了两个端口(ENA 和 ENB = 1)- 两个端口使用的不是同一个时钟 (CLKA ≠ CLKB)- 时钟之间的相位偏移介于 100 ps 和 3 ns 之间(或下一个时钟沿) - 对于两个端口来说,A14-A8、A5 和 A0 都是相同的在满足下列所有条件下才会发生地址冲突:- 同时启用了两个端口(ENA 和 ENB = 1)- 两个端口使用的不是同一个时钟 (CLKA ≠ CLKB)- 时钟之间的相位偏移介于 100 ps 和 3 ns 之间(或下一个时钟沿) - 对于两个端口来说,A13-A7 和 A4 都是相同的受影响的组件:RAMB18E1 或 RAMB36E1,其 WRITE_MODE 在任一端口上均设置为 READ_FIRSTRAM_MODE=SDP 的 RAMB18E1 或 RAMB36E1所有 UNIMacro 组件,其 WRITE 模式在任一端口上均设置为 READ_FIRST软件行为:在 ISE 11.4 和更高版本的软件中 - 将在 READ_FIRST 模式(包括 SDP 和 ECC 模式)的 block RAM 设计中生成一个警告消息,并且 CLKA 和 CLKB 将与不同的时钟相关联。在 ISE 12.1 和更高版本中 - 仿真的结果向用户阐明了此问题。 已更新了仿真模型以向用户发出此条件警报,并且反映可能发生损坏的未知因素。在 ISE 12.2 和更高版本中,已为简单双端口模式的 Block RAM 配置添加了 WRITE_FIRST 模式支持。如需更多详情,请参阅“解决方法”部分。受影响的 IP:某些 版本的 IP 受地址重叠问题的影响。为了避免发生此问题,请使用 ISE 12.1 或更高版本中的最新版 IP。解决方法:对于真正双端口 (TDP) 模式,请确定是否绝对有必要使用 READ_FIRST 模式。 如果没有必要,请使用 WRITE_FIRST 或 NO_CHANGE 模式。在 12.1 软件中推出更新的仿真模型时,应该使用该模型对所有情况执行完整时序仿真。 为了识别任何潜在的冲突,至少应该运行综合后仿真。从 12.2 ISE 软件开始,简单双端口 (SDP) Block RAM 将提供 WRITE_FIRST 模式支持。对于使用同一时钟驱动的 RDCLK 和 WRCLK 的所有 SDP Block RAM,请使用 READ_FIRST 模式,因为在这种情况下将不发生任何冲突。如果 SDP Block RAM 的 RDCLK 和 WRCLK 受不同时钟驱动,请使用 WRITE_FIRST 模式。在 WRITE_FIRST 模式下,用户必须按照避免冲突的要求进行设计,当一个端口执行写操作,而另一个端口同时从相同的位置执行读操作时将存在这种要求。系统已更新了 CoreGenerator IP 和 XST 来支持 WRITE_FIRST 模式特性。如果使用 Block RAM 生成器来生成 Block RAM 的简单双端口配置,请选择并生成 v4.2 版的内核来使用 WRITE_FIRST 模式。 FIFO 生成器 v6.2 在必要时会自动使用 WRITE_FIRST 简单双端口 Block RAM。要为 SDP Block RAM 启用 WRITE_FIRST 模式,请在 UCF 文件的任何所需 Block RAM 中添加以下两个约束:INST <BRAM_inst_name> WRITE_MODE_A = WRITE_FIRST; INST <BRAM_inst_name> WRITE_MODE_B = WRITE_FIRST; 适用于器件Virtex-6 CXTVirtex-6 HXTVirtex-6 LXVirtex-6 LXTVirtex-6 SXT设计工具ISE Design Suite - 11.4ISE Design Suite - 11.5
共3条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |