取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
Contributor
Contributor
649 次查看
注册日期: ‎07-19-2020

zynq比特流回读

我的问题是怎样将回读出来的数据和golden_bitstream进行对比
我用的器件是zynq7020;在vivado下,我用以下命令生成了一份调试比特流,从中可以看出每一帧地址对应的帧数据:
set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design]
在我的程序中,我使用PCAP接口逐帧回读比特流数据,也就是说,我在程序中输入某个帧地址,可以回读出这一帧的内容。
但是我不清楚,怎样验证回读出来的数据是否正确呢?因为我回读出的数据,和调试比特流中该地址的数据并不匹配。

0040129A.png
我想知道,如何从比特流文件中,找到某一帧地址对应的golden数据。因为后续我需要对某个地址的数据进行刷新,所以我需要获得一份“地址-数据”的对应关系,我现在通过逐帧回读已经得到了,但是我无法验证回读出来的数据是否正确。

PCAP回读是否存在位交换机制等?

Zhejiang University,China;
0 项奖励
回复
8 回复数
Xilinx Employee
Xilinx Employee
583 次查看
注册日期: ‎05-11-2010

真正通过PCAP写入PL或者从PL读回的数据和“.bit"文件有大小端的区别,你可以用过bootgen把".bit"文件转换为bin文件,bif文件可以参考下面链接里的bif。

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841645/Solution+Zynq+PL+Programming+With+FPGA+Manager

即,

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 */
}
0 项奖励
回复
Contributor
Contributor
575 次查看
注册日期: ‎07-19-2020

谢谢您的回答~我还有一个问题,就是如何通过PCAP接口写一帧配置帧(我只实现了单配置帧的回读功能),具体的关于如何使用XDEVCFG_TRANSFER这个函数我还不太清楚,这个函数中的transfer_type应该怎么选呢?

Zhejiang University,China;
0 项奖励
回复
Xilinx Employee
Xilinx Employee
571 次查看
注册日期: ‎05-11-2010

你可以参考一下PMUFW里面的代码,它也是使用xil_fpga library操作PCAP的。

0 项奖励
回复
Contributor
Contributor
561 次查看
注册日期: ‎07-19-2020

谢谢~

我不太了解您说的PMUFW,但是我希望知道zynq系列的擦洗(scrub)功能的实现,我已经知道scrub的相关寄存器操作指令,但在xdevcfg.h文件中不清楚该如何使用相关函数,并没有给出参考代码;

在回读时我用的是XDcfg_Transfer(&DcfgInstance, (&CmdBuf[0]),CmdIndex, RegData, 1, XDCFG_PCAP_READBACK);其中最后一项transfertype是XDCFG_PCAP_READBACK,但是写单配置帧时,我就不清楚我的指令该怎么发送给FPGA了~~

Zhejiang University,China;
0 项奖励
回复
Xilinx Employee
Xilinx Employee
529 次查看
注册日期: ‎05-11-2010

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

0 项奖励
回复
Contributor
Contributor
445 次查看
注册日期: ‎07-19-2020

您好~我尝试运行了一下官方提供的这个PL动态重配置的代码,并在其中添加了PL的复位。但是好像并没有重构成功,程序运行没有报错,但板子的config_done灯不亮,这会是什么原因呢?

Zhejiang University,China;
0 项奖励
回复
Contributor
Contributor
420 次查看
注册日期: ‎07-19-2020

您好~我尝试运行了一下官方提供的这个PL动态重配置的代码,并在其中添加了PL的复位。但是好像并没有重构成功,程序运行没有报错,但板子的config_done灯不亮,这会是什么原因呢?我单步调试了我的程序,发现代码中使能PCAP时钟的部分没有执行,于是我通过xil_out32手动设置了,但是依然没有重构成功。1.PNG

Zhejiang University,China;
0 项奖励
回复
Participant
Participant
265 次查看
注册日期: ‎06-24-2020

您好,我目前 也在做配置位流回读比较,请问可以加一下联系吗15251770061

0 项奖励
回复