【VIVADO使用2】如何手动修改hdf文件

hdf文件时逻辑工程师交给驱动工程师工作 的最重要的文件,但是有时候我们需要手动修改hdf文件,这样子驱动工程师不用再手动修改内部内容了。



首先想到的是hdf文件是一个压缩包,直接解压,然后修改内容,最后再压缩就行了,但是这样子是有问题的,因为sdk读进去hdf文件时会做一个校验,猜测vivado导出的时候,会对hdf文件做一个处理。


所以我找了一下hdf文件产生的过程:

.hdf----->.sysdef---->package of hwdef & bitfile & bmm file;

.hwdef---->package of psu_init.c , psu_init.h......;

即hdf文件时sysdef文件的一个copy(猜测加了一些头和尾信息),sysdef文件是hwdef,bitfile,bmm文件打包后的文件,hwdef文件是psu_init.c....的打包文件,上面这些打包及copy过程均可以用vivado中的tcl命令产生,所以如果要修改psu_init.c......中的文件,那么重点就是如何修改一个vivado识别的hwdef文件,然后试了一种方法是可以的(这里用7zip解压软件为例):

1.将vivado工程写impl下的.hwdef文件提取到当前目录,然后删除掉解压之前的hwdef文件,然后修改内容;

2.然后选中当前目录中上一步解压出来的文件和修改的文件,添加到*.zip压缩,压缩后修改zip文件为hwdef文件;

3.最后vivado tcl下输入

write_sysdef -hwdef "d:/system_wrapper.hwdef" -bitfile "d:/system_wrapper.bit" -file "d:/system_wrapper.sysdef"

从而产生sysdef文件


file copy -force d:/system_wrapper.sysdef d:/system_wrapper.hdf

从而产生一个sdk导进去没有问题的hdf文件。



还需要补充的内容是hdf各个文件的作用。

hdf文件内容有


1.psu_init.tcl,用于debug模式;

2.psu_init.c,用于FSBL;


你可能感兴趣的:(FPGA)