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工具后续能在这个地方改进。