这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » Mouser » 有关Virtex-6 FPGA Block RAM 设计咨询 - 地址空间重叠

共3条 1/1 1 跳转至

有关Virtex-6 FPGA Block RAM 设计咨询 - 地址空间重叠

菜鸟
2015-01-28 16:08:47     打赏
在某些情况下,可能导致 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

菜鸟
2015-01-28 16:12:59     打赏
2楼
学习下

菜鸟
2015-01-28 16:23:25     打赏
3楼
学习学习

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]