修改时间 10-18-2020 06:01 PM
我的问题是怎样将回读出来的数据和golden_bitstream进行对比
我用的器件是zynq7020;在vivado下,我用以下命令生成了一份调试比特流,从中可以看出每一帧地址对应的帧数据:
set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design]
在我的程序中,我使用PCAP接口逐帧回读比特流数据,也就是说,我在程序中输入某个帧地址,可以回读出这一帧的内容。
但是我不清楚,怎样验证回读出来的数据是否正确呢?因为我回读出的数据,和调试比特流中该地址的数据并不匹配。
我想知道,如何从比特流文件中,找到某一帧地址对应的golden数据。因为后续我需要对某个地址的数据进行刷新,所以我需要获得一份“地址-数据”的对应关系,我现在通过逐帧回读已经得到了,但是我无法验证回读出来的数据是否正确。
PCAP回读是否存在位交换机制等?
修改时间 10-19-2020 02:17 PM
真正通过PCAP写入PL或者从PL读回的数据和“.bit"文件有大小端的区别,你可以用过bootgen把".bit"文件转换为bin文件,bif文件可以参考下面链接里的bif。
即,
Generating .bin from .bit file using Bootgen
bootgen -image Full_Bitstream.bif -arch zynq -process_bitstream bin |
Full_Bitstream.bif file should contains the below lines:
all: { design_1_wrapper.bit /* Bitstream file name */ } |
修改时间 10-19-2020 02:59 PM
谢谢~
我不太了解您说的PMUFW,但是我希望知道zynq系列的擦洗(scrub)功能的实现,我已经知道scrub的相关寄存器操作指令,但在xdevcfg.h文件中不清楚该如何使用相关函数,并没有给出参考代码;
在回读时我用的是XDcfg_Transfer(&DcfgInstance, (&CmdBuf[0]),CmdIndex, RegData, 1, XDCFG_PCAP_READBACK);其中最后一项transfertype是XDCFG_PCAP_READBACK,但是写单配置帧时,我就不清楚我的指令该怎么发送给FPGA了~~
修改时间 10-19-2020 06:14 PM
devcfg driver的example里有加载PL的例子,
C:\Xilinx\SDK\2018.3\data\embeddedsw\XilinxProcessorIPLib\drivers\devcfg_v3_5\examples\xdevcfg_polled_example.c
利用用的参数是XDCFG_NON_SECURE_PCAP_WRITE
修改时间 10-21-2020 10:07 AM
您好~我尝试运行了一下官方提供的这个PL动态重配置的代码,并在其中添加了PL的复位。但是好像并没有重构成功,程序运行没有报错,但板子的config_done灯不亮,这会是什么原因呢?我单步调试了我的程序,发现代码中使能PCAP时钟的部分没有执行,于是我通过xil_out32手动设置了,但是依然没有重构成功。