如何将布局受限的从属 entity 应用到另一个项目 (专业版)

文章来源
Macnica Engineer

如何将布局受限的从属 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公司愿意为您提供更详细的技术解答。

 

更多信息: