说明
由于英特尔® Quartus® Prime Pro 软件 22.3 及更早版本中存在一个问题,您可能会看到通过以下报告方法之一在 MLAB 中实现的内存报告了包含读支持功能的内存的循环:
- Timing Analyzer 报告中的“Found 组合loop of * 节点”警告。
- “设计助手(合成)”报告中的“LNT-30011 - 设计包含组合环”规则冲突。
- 设计助手(签核)报告中的“TMC-20017 - 检测到的循环”规则冲突。
- 在 Timing Analyzer 中运行“check_timing”报告时报告的“循环”。
- “节点:* 被确定为时钟,但找不到关联的时钟分配。” Timing Analyzer 报告中的警告。
报告的循环是由于在 MLAB 输出端实施了锁存器以支持读支持功能而产生的。此锁存器没有正确分析时序,这意味着无法保证硬件中的功能。
放置在 MLAB 内存块中的以下内存实现样式可能会出现此问题:
- 直接推断包含读取启用功能的内存的 RTL 代码。
- 直接内存实例化,包括读支持功能和 MLAB 或自动ram_block_type设置
解决方法
要变通解决此问题, 执行以下操作 之一 :
- 避免使用读启用功能。
- 对于 RTL 推断的内存,请使用 ramstyle 属性强制内存进入 M20K 内存模块。
- 对于直接内存实例 化,将 ram_block_type 设置为 M20K
- 使用以下 QSF 分配来防止从 M20K 内存映射到 MLAB:“set_global_assignment 名称BLOCK_RAM_TO_MLAB_CELL_CONVERSION关闭”