Xilinx 是否有方法将设计参数从自定义IP传递到软件

Xilinx 是否有方法将设计参数从自定义IP传递到软件,xilinx,vivado,Xilinx,Vivado,我有一个带有一些设计参数的自定义IP。 它们是从IP公开的,所以我可以在块设计中使用IP时自定义它们 我希望能够在固件代码中使用这些参数 例如,当使用简单GPIO时,xparameters.h标题中公开了几个参数: #define XPAR_GPIO_0_BASEADDR 0x41200000 #define XPAR_GPIO_0_HIGHADDR 0x4120FFFF #define XPAR_GPIO_0_DEVICE_ID XPAR_GPIO_DEVICE_ID #define XPAR

我有一个带有一些设计参数的自定义IP。 它们是从IP公开的,所以我可以在块设计中使用IP时自定义它们

我希望能够在固件代码中使用这些参数

例如,当使用简单GPIO时,
xparameters.h
标题中公开了几个参数:

#define XPAR_GPIO_0_BASEADDR 0x41200000
#define XPAR_GPIO_0_HIGHADDR 0x4120FFFF
#define XPAR_GPIO_0_DEVICE_ID XPAR_GPIO_DEVICE_ID
#define XPAR_GPIO_0_INTERRUPT_PRESENT 0
#define XPAR_GPIO_0_IS_DUAL 0
除此之外,最感兴趣的基址是
is_DUAL
参数,该参数是在块设计中实例化IP时设置的

对于我的自定义IP,只有
BASEADDR
HIGHADDR
显示在标头中


所以,问题是,有没有办法公开我的自定义参数?

xparameters.h的内容是由IP的软件驱动程序中的TCL脚本生成的。如果您还没有创建驱动程序,默认情况下,您将得到一个通用驱动程序,它只将这些地址添加到xparameters.h

您可以查看gpio驱动程序,了解如何执行所需操作。它位于SDK安装目录下的
data/embeddedsw/XilinxProcessorIPLib/drivers/gpio\u v4\u 4
,TCL脚本位于
data/gpio.TCL
中。在该脚本中,有一个生成函数在生成BSP时运行,您可以在其中添加代码以执行任何需要的操作,包括将文本输出到xparameters.h。
define_include_file
行是输出GPIO内核所有这些参数的行


您可以使用gpio或其他工具作为创建自己的驱动程序的参考。完成此操作后,将其添加到SDK中的存储库列表中,然后修改BSP配置以将该驱动程序用于IP实例。(或者,如果您创建新的BSP,它可能会自动选择。)

太棒了!有没有关于如何为定制IP设计驱动程序的常规文档?我试过这么做一次,但因为找不到文档而放弃了……UG1138有一些信息(请参阅“MDD”部分),但它不是世界上最好的文档。我总是比较幸运地以股票驱动因素为例。