如何将布局受限的从属 entity 应用到另一个项目 (专业版)
工作环境及 Pro Edition 分区规格
为了方便大家理解,以下将准备两个项目,分别为 [项目A] 和 [项目B]。我们需要在 [项目B] 中实现 [项目A] 中使用的低级别 entity。在这种情况下,器件型号和 Quartus Prime Pro Edition 环境如下表 (表1) 所示:
项目A | 项目B | |
FPGA | 相同型号 | |
Quartus Prime Pro Edition |
相同版本 (包括内部版本号) |
表1 器件型号和 Quartus Prime Pro Edition 环境
Pro Edition 的分区规格如下表 (表2) 所示两种,两者都将网表文件 qdb 导出到分区并在另一个项目中重复使用。接下来将为大家介绍使用 Quartus Prime Pro Edition 菜单并完成每个流程。
类型 | 概述 |
核心分区 | 只能包含核心资源 (LUT、寄存器、M20K 内存块和 DSP) |
根分区 | 根分区包含外设资源 (包括 I/O、HSSIO、PCIe、PLL) 和相关的核心资源,但核心分区保留用于进一步开发。 |
表2 Pro Edition 的分区规格
核心分区工作流程
下图为核心分区复用的过程流程图:
[项目A] 创建核心分区
① 在 Compilation Dashboard 上运行 Analysis & Synthesis 以执行设计的逻辑综合。
② 显示用于创建分区的 Design Partitions Window (Assignments 菜单)。
③ 在 Project Navigator 窗口,右键单击要为其创建分区的 entity,选择 Design Partition > Default (在 Type 下)。
验证指定实体是否已注册。
[项目A] 编译执行:在 Compilation Dashboard 中运行编译
[项目A] 导出 qdb
① 选择 Project 菜单 > 导出 Export Design Partition。
② 在 Export Design Partition 对话框中指定各项。
项目 | 概要 |
Partition name | 从下拉列表中指定要导出的 entity |
Partition Database File | 对于文件名,指定要生成的 .qdb 文件以及生成该文件的文件夹 (请勿更改文件名) |
Include entity-bound SDC files for the selected partition | 可以配置导出的 .qdb 是否包含实体绑定的 SDC 信息。 默认情况下,Stratix® 10 目标的 IP 使用绑定到实体的 SDC 文件。Arria® 10 目标的 IP 不使用绑定到实体的 SDC 文件。要在 Arria 10 中应用此选项,首先将 .sdc 绑定到 .qsf 中的entity。 |
Snapshot | 选择 synthesized 或 final |
③ 完成以上设置后,单击 OK 按钮,在指定文件夹中生成所需 entity 的 qdb 文件。需要注意,如果在 Design Partitions Window 中将 .qdb 设置为 Post Synthesis Export File 或 Post Final Export File,那么每次执行编译时都可以自动生成指定的分区。
[项目A] 注册 black box 文件
接下来为要导出的实体创建 black box 文件,注意保存文件时不要将其注册到 [项目A] 中。例:
module blinking_led (
output [3:0] value,
input clock
);
Endmodule
[项目B] 将 black box 文件注册到项目中
打开现有 [项目B],并使用 Project 中的 Add/Remove Files in Project (Project 菜单) 将步骤 4 中创建的 black box 文件注册到项目中。
[项目B] 执行 Hierarchy Elaboration
执行 Hierarchy Elaboration,以便 Quartus Prime 识别 [项目B] 的 entity 结构。
创建 [项目B] 分区
在 Project Navigator 窗口中,右键单击 black box entity 并选择 Design Partition > Default (在 Type 下)。
[项目B] 导入 qdb
① 显示 Design Partitions Window (Assignments 菜单)。
② 双击相关分区的分 Partition Database File 字段,使用浏览按钮选择 [项目A] 中生成的文件,指定 .qdb 文件。
[项目B] 编译执行
在 Compilation Dashboard 中运行编译。执行后,检查编译报告中的编译结果,确认所需的分区已成功应用到 [项目B],同时继承了 [项目A] 的布局布线,这样就完成了核心分区工作流程。
根分区工作流程
下图是根分区复用的过程流程图:
[项目A] 创建核心分区 (类型:Reserved Core)
① 运行 Analysis & Elaboration。
② 显示用于创建分区的 Design Partitions Window (Assignments 菜单)。
③ 在 Project Navigator 窗口中,右键单击要为其创建分区的 entity,然后选择 Design Partition > Reserved Core (在 Type 下)。
④ 为 Design Partitions Window 中的顶部 entity 生成 Post Synthesis Export File 或 Post Final Export File 指定 .qdb 文件。
如果要将 SDC 文件绑定到每个分区,这里不要指定 .qdb 文件,编译完成后,选择 Export Design Partition (Project菜单) 生成它。
[项目A] 设置 Logic Lock 区域
① 显示 Assignments 菜单 > Logic Lock Regions 窗口。
② 在 Project Navigator 窗口中,在核心分区上放置 Logic Lock 约束,右键单击 > Logic Lock Region > Create New Logic Lock Region。
③ 对区域进行以下设置:
・Origin:根据用户规格任意
・Width/Height:根据用户规格可选
・Reserved:On
・Core-Only:On
・Size/State:Fixed/Locked
・Routing Region:根据用户规格选择 Unconstrained 以外的设置
右键单击 Logic Lock Regions Window 中的分区 > Locate Node > Locate in Chip Planner。Chip Planner 将启动。
[项目A] 编译执行:在 Compilation Dashboard 中运行编译
[项目A] 导出 qdb
接下来验证 .qdb 文件是否已生成到项目文件夹中。如果在步骤 1.④ 中未指定 .qdb 文件,请在 Project 菜单 > Export Design Partition > Export Design Partition 对话框中指定每个项目,生成 .qdb 文件 (请参考核心分区工作流程操作 3)。
[项目B] 将 qdb 注册为根分区
① 打开现有 [项目B]。
② 显示 Design Partitions 窗口 (Assignments 菜单) 并双击 root_partition 的 Partition Database File 字段。使用浏览按钮指定 [项目A] 中生成的 .qdb 文件。
[项目B] 将 RTL 添加到 Reserved core 分区
Add/Remove Files in Project 中的文件 (Project 菜单) 以在项目中注册核心分区 RTL 和所有必需的 SDC 文件。
[项目B] 编译执行
在 Compilation Dashboard 中运行编译。执行完成后,在编译报告中查看编译结果,确保所需的分区仍然继承其在 [项目A] 中的布局布线,确认它已应用于 [项目B]。
总结
本文介绍如何将 Quartus® Prime Pro Edition 中较低级别 entity 的布局约束应用于另一个项目。欲了解更多英特尔相关方案或技术信息,可点击下方「联系我们」,提交您的需求,澳门人巴黎人1797公司愿意为您提供更详细的技术解答。