使用Quartus将用户模块封装成网表文件:Quartus17.0及之前版本.qxp文件、Quartus17.1及之后版本.qdb文件(下)

Xilinx FPGA平台下如何封装用户的源代码,形成网表文件的操作教程,具体见:
使用Vivado将包含Xilinx IP的用户模块封装成网表文件(也适用不包含Xilinx IP的用户模块)

Altera/Intel FPGA平台下如何封装用户的源代码,形成网表或加密文件并在其他工程中调用的具体实现教程分上下两部分,本文为下部分,讲述Quartus17.1及之后版本用户逻辑封装及调用教程。

Quartus17.0及之前版本用户逻辑封装及调用教程为上部分内容,具体见:
使用Quartus将用户模块封装成网表文件:Quartus17.0及之前版本.qxp文件、Quartus17.1及之后版本.qdb文件(上)

2、Quartus17.1及之后版本用户逻辑封装及调用教程

英特尔Quartus Prime专业版用户指南:基于块的设计 —英文版
相关内容:1.5. Design Block Reuse Flows

中文版 中文版 中文版 ----提醒三遍哦
Intel Quartus Prime Pro Edition用户指南: 设计编译 ----中文版
相关内容:1.6. 导出编译结果

封装IP:
实战:
步骤1

打开包含待封装模块的工程,并至少完成综合阶段,即至少完成下图中“1”所示过程,然后就可以看到整个工程的层级结构。
若待封装的模块就是该工程的顶层,那么直接进入步骤2.否则按照序号顺序执行,其中假定“2”为待封装模块。完成“4”指示步骤后我们会看到在待封装模块的后面出现“5”指示的图标。然后需要再次执行综合过程,即至少完成下图中“1”所示过程。在这里插入图片描述
在这里插入图片描述

步骤2

点击“Export Design Partition”,再弹出的对话框中选择要生成的网表模块,然后点击“OK”,网表文件.qdb将会在指定路径下生成。
在这里插入图片描述
在这里插入图片描述

调用IP:
步骤1

使用提供的端口信息实例化设计模块。

步骤2

当调用上述生成的网表文件时,只需提供.qdb即可,另外,在代码中调用时和一般情况一样。
将.qdb添加到工程中的方法:

图形界面下添加

新工程中已经包含了仅含端口信息的.v文件,并对整个工程进行综合,然后封装IP步骤1的操作再次执行一遍
在这里插入图片描述
然后在Design Partitions Window可以看到下图所示信息
在这里插入图片描述

接着在Partitions Database File里指定qdb路径,完成后即可实现调用IP,接着就可以进行工程编译。
在这里插入图片描述

脚本模式下添加

打开工程的.qsf脚本,并在其中加入下述代码:

set_instance_assignment -name PARTITION XXX -to u0|u0|XXX_u -entity green_bs
set_instance_assignment -name PARTITION_COLOUR 4278190335 -to u0|u0|XXX_u -entity green_bs
set_instance_assignment -name QDB_FILE_PARTITION ../../qdb/XXX.qdb -to u0|u0|XXX_u -entity green_bs

注意:待封装模块在这个工程中的层级结构需要和新工程中qdb所在的层级结构相同,否则会报错,这一点是我认为不太友好的地方,希望Quartus工具后续能在这个地方改进。

### 创建和使用器件封装Quartus中创建和使用器件封装涉及多个方面的工作流程,包括项目建立、工程配置以及特定于目标器件的操作。 对于Quartus17.0之前版本,在进行用户逻辑封装时会生`.qxp`文件作为文件格式[^1]。而对于Quartus17.1及其后续版本,则采用`.qdb`文件示同样的概念。这明不同版本之间存在差异化的处理方式和技术细节变化。 当准备一个新的Quartus工程项目时,通过菜单中的`FILE——NEW——NEW Quartus II Project`选项可以启动向导并允许自定义working directory(工作目录),这一过程为项目的构建提供了基础环境设置[^2]。 进一步深入到具体的工程设定环节: - **工程命名与路径指定**:明确给定工程名称,并指明其存储位置。 - **顶层文件名确认**:确定整个设计结构中最顶端模块的名字。 - **已有设计文件和库文件加入**:把预先完的设计单元或者第三方提供的组件纳入当前工作中。 - **器件型号选定**:依据实际需求挑选合适的FPGA/CPLD设备类型。 - **EDA工具参数调整**:针对外部仿真器或其他辅助开发软件做必要的适配性调节[^3]。 如果遇到诸如“Can't place all RAM cells in design”的编译错误提示,可能是因为所选器件资源不足以容纳现有设计方案造的。此时应当考虑优化代码减少占用空间或是更换更大容量的目标芯片以解决问题[^4]。 然而关于如何直接在Quartus内部实现器件级别的定制化封装操作指南并未直接提及于此处参考资料之中。通常来说,这类高级功能往往涉及到更深层次的知识背景和技术文档的支持。一般情况下,官方手册或在线帮助中心会有更为详尽的指导说明可供查阅学习。 ```bash # 示例命令用于展示如何查看Quartus的帮助文档 quartus --help ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值