如何使用Altera Interface Planner高效设计FPGA引脚布局
Altera Interface Planner 用于探索设备的外设架构,并高效地分配接口。通过实时进行拟合和合法性检查,防止非法引脚分配。此方法消除了复杂的错误消息,无需等待完整编译过程,因此加快了 I/O 设计过程。本文将介绍 Altera Interface Planner,方便大家使用 Altera Quartus® Prime Pro Edition 开发软件,高效地设计引脚布局。
I/O 规划中的挑战
以下为 Altera Interface Planner 的目标环境:
- 目标 Quartus Prime:Quartus Prime 专业版
- 目标 FPGA:Quartus Prime 专业版支持的 FPGA 系列
在现代 FPGA 中创建 I/O 分配主要面临的挑战包括:日益复杂的 I/O 标准和 FPGA I/O 结构 (准确设计引脚布局需要更多指导步骤)、PCB 开发与 FPGA 设计同时进行 (或稍早) 和在设计周期早期验证引脚分配。为了应对这些挑战,Quartus Prime 提供了 Pin Planner 和 I/O Assignment Analysis 解决方案。
接下来创建 I/O 布局规划,在下图 (图1) 所示的工作流程中,将分别使用 Pin Planner 和 I/O Assignment Analysis。此流程使用 I/O Assignment Analysis 来分析引脚分配,I/O Assignment Analysis 的准确性取决于设计的完整性。如果检测到任何错误,需要在 Pin Planner 或其他工具中修复它们,并再次运行 I/O Assignment Analysis。如此循环往复,直到完成并验证所有 I/O 分配。
Altera 目前支持市场所需的多种协议,它还支持许多储存器接口,每个接口都有自己的放置规则。设计包含的接口越多,规则和限制就越复杂。即使工程师认为自己已经正确地放置了一个设计接口,但只有在完全编译期间运行 Fitter 或 I/O 分配分析时,才能知道它是否真的正确。如果一个元素因被放置在无效位置而导致不符合要求,则完全编译所花费的时间就会被浪费。
![图1 传统 I/O 规划流程](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage.coreimg.jpeg/1714563098811/-1----i-o------zh.jpeg)
I/O 布局规划工作流程
Quartus Prime Pro Edition Interface Planner 是一款引脚布局工具,可根据引脚布局规则以图形方式创建和实时验证复杂的 I/O 接口分配。下图 (图2) 显示了使用 Interface Planner 时的 I/O 布局规划工作流程。
![图2 使用 Interface Planner 的 I/O 规划流程](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy.coreimg.jpeg/1714563265571/-2----interface-planner---i-o------zh.jpeg)
Interface Planner 使用 Fitter 实时验证引脚分配,因此虽然需要预先进行逻辑综合 (Synthesis),但设计不需要完美无缺。要将界面设计分配给设备的资源,只需拖放或双击平面图即可。创建的分配计划将以 TCL 脚本的形式生成并执行,并在反映项目后进行编译。
I/O 布局规划工作详细步骤
接下来将介绍 Interface Planner 的工作流程详细步骤,如下图 (图3) 所示。请注意,此时用户应已完成引脚分配。
![图3 Interface Planner 工作流程](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy_1460069664.coreimg.png/1714563380552/-3.png)
一、综合设计
在 Quartus Prime Pro Edition (以下简称 Quartus Prime) 中,从 Processing 菜单或 Compilation Dashboard 运行 Analysis & Synthesis,如下图 (图4) 所示:
![图4 运行分析与综合](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy_1747851004.coreimg.png/1714563467503/-4--------.png)
二、启动并初始化 Interface Planner
点击 Tools 菜单,启动 Interface Planner。单击下图 (图5) 所示 Flow 窗格中的 Initialize Interface Planner 以检查 Fitter 基础和现有位置分配的有效性。如果存在冲突或违规,错误消息将显示在控制台窗格中。
![图5 Initialize Interface Planner](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy_803057232.coreimg.png/1714563580528/-5---------.png)
三、检查导入的任务并更新计划
单击 Flow 窗格中的 View Assignments。Assignments 选项卡将变为活动状态并列出项目中存在的所有分配,如下图 (图6) 所示。接下来单击 Flow 窗格中的 Update Plan,已启用配置的分配将应用于设计以进行规则检查。
![图6 View Assignments](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy_243827737.coreimg.jpeg/1714563699459/-6------zh.jpeg)
四、放置设计元素
如下图 (图7) 所示,单击 Flow 窗格中的 Plan Design (Plan 选项卡变为活动状态)。
![图7 Plan Design](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy_535418637.coreimg.jpeg/1714563799059/-7------zh.jpeg)
如果单击 Design 窗格中未分配的设计元素右侧的按钮,Legal Locations 窗格中将显示可分配位置的列表,并且该位置将在 Chip View 中以轮廓显示。当从 Legal Locations 窗格中指定放置位置时,Chip View 显示将变成一条对角线。要确认分配位置,请双击下图 (图8) Legal Locations 窗格中的位置信息。
![图8 确认位置 (Legal Locations 窗格)](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy_.coreimg.jpeg/1714563908561/-8-------------zh.jpeg)
大家还可以切换到如下图 (图9) 所示的 Package View 以查看接口中使用的 I/O 引脚,也可以截取计划的屏幕截图,以便稍后将其与编译的设计进行比较。
![图9 Package View](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy__1828569812.coreimg.jpeg/1714563988808/-9------zh.jpeg)
五、验证 I/O 计划
完成放置规范后,单击下图 (图10) Flow 窗格中的 Validate Plan,这将验证已创建的任务并使其准备好导出。
![图10 Validate Plan](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy__1045187826.coreimg.png/1714564082254/-10-----.png)
也可以通过选择下图 (图11) 中的 Save Floorplan 来保存当前的布局设置:
![图11 Save Floorplan](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy__943876860.coreimg.png/1714564149805/-11------.png)
六、导出计划文件
如下图 (图12) 所示,单击 Flow 窗格中的 Export Constraints 并使用 tcl 脚本保存配置的放置信息:
![图12 Export Constraints](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy__811699153.coreimg.png/1714564258951/-12-----.png)
七、导入工程并编译
关闭 Interface Planner 并打开要导入的 Quartus Prime 项目。从 Tools 菜单 > Tcl Script,如下图 (图13) 所示,指定导出的 tcl 文件,然后单击 Run 以应用它。分配信息反映在 Pin Planner 和 Assignment Editor 中,可以轻松查看和最终检查脚本信息。在运行脚本之前可以使用 Edit 按钮对其进行编辑。例如 Interface Planner 不会在设计中导出所有的分配类型,如果只想进行引脚分配而不是内部资源分配,则可以通过注释或删除它们,从而仅提供脚本的引脚分配部分。
![图13 Tcl Script](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy__1461348905.coreimg.png/1714564365394/-13.png)
接下来运行编译。由于 Analysis & Synthesis 阶段到 Fitter (Finalize) 阶段需要很长时间才能运行,如果只想评估布局,可以在下图 (图14) 的 Compile Dashboard 中启用 Early Place 选项并执行 Early Place 编译。
![图14 Early Place](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_copy__1769842303.coreimg.png/1714564470005/-14-----.png)
编译完成后,启动 Chip Planner (Tools 菜单) 并检查布局,如下图 (图15) 所示:
![](/apac/cytech/zh/products-support/technical-articles/how-efficiently-design-fpga-pinouts-altera-interface-planner/_jcr_content/root/container/container/container/resizableimage_978805795.coreimg.jpeg/1715688536913/-15---chip-planner.jpeg)
总结
Quartus Prime Pro Edition 的 Interface Planner 消除了为 FPGA 创建专业规划的工作量和难度,特别是日益多样化和复杂 I/O 接口,它可允许仅创建有效的位置分配。通过使用 Altera Interface Planner,可以减少进行位置分配所花费的时间。欲了解更多英特尔相关方案或技术信息,可点击下方「联系我们」,提交您的需求,骏龙科技公司愿意为您提供更详细的技术解答。
更多信息: