关键问题
由于英特尔® Quartus® Prime Pro Software 版本 18.0 或更早出现问题,当两个分区在具有 top_level_1.sv 和 top_level_2.sv 的两个不同的项目中编译,并使用QDB_FILE_PARTITION分配到具有 top_level_3.sv 的第三个项目中重新使用,由于双行时钟区域重叠,您将看到以下内部错误:
内部错误:子系统:VPR20KMAIN,文件:/quartus/fitter/vpr20k/altera_arch_common/altera_arch_re_network_routing_constraints.cpp
top_level_1.sv、top_level_2.sv 和 top_level_3.sv 三个顶级文件来自 3 个不同的设计,并且每种设计在外设接口、使用的设计模块等方面都有所不同。因此,开发人员项目(使用 top_level_1.sv 和 top_level_2.sv 的项目),其中分区最初被编译并导出,没有关于两个导出分区被重用的消费者项目(一个带有 top_level_3.sv 的项目)的全面信息。
- 时钟扇区由图中的绿色框定义。1
- 行时钟区域为半时钟扇区宽,而一行 LAB 行高,用图中的红色点缀框表示。1
- 在消费者项目中,当两个重复使用的分区在此区域中重叠时,您会看到上面的“内部错误”
为解决这一问题,请在 开发人员项目中使用逻辑锁区域,以避免在消费者项目中采用两个重复使用的分区来调整同一行时钟区域。
例如:
- 从将重新使用这两个分区的消费者项目中,确定黄色和紫色分区的大致位置。选择两个分区的逻辑锁限制,这样行时钟区域不会重叠。
- 在开发人员项目中,借助 top_level_1.sv,使用从紫色分区的消费者项目中识别出的逻辑锁区域限制,接着在最终阶段编译和导出分区。
- 在开发人员项目中,借助 top_level_2.sv,使用从黄色分区的消费者项目中识别出的逻辑锁区域限制,最后阶段对分区进行编译和导出。
- 导出的分区在消费项目中重新使用时,会使用 top_level_3.sv,使用非转移逻辑锁约束来维护开发人员项目中定义的位置。
此问题计划在英特尔® Quartus® Prime Pro 软件的未来版本中修复。