发 帖  
原厂入驻New
[问答] FPGA如何知道它们在从串行菊花链中的位置
91 FPGA
分享
亲爱的专家,
我正在尝试编程两个ARtiX-7,连接在从串行菊花链中,如UG470(1.9)图9-1所示。两个编程文件连接在一起,使用Vivado 2014.4的write_cfgmem命令进行编程。
最终结果是两个FPGA都使用相同的代码进行编程。
预期的结果是两者都使用自己的固件。
FPGA如何知道它们在从串行菊花链中的位置?
write_cfgmem生成的.bin文件的结构在哪里记录?
0
2020-6-1 08:58:16   评论 分享淘帖 邀请回答
13个回答
供参考:
对于ISE工具(不适用于Vivado 2014.4)以下用户指南中的“PROM文件创建和编程流程”章节http://www.xilinx.com/support/documentation/user_guides/ug161.pdf有关PROM文件创建的说明
方法。
如果您的系统中还有ISE工具版本(以及Vivado 2014.4),则上述(ug161)信息非常有用。
以下论坛帖子也有一些相关的讨论
http://forums.xilinx.com/xlnx/board/crawl_message?board.id=CNFG&message.id=445
_______________________________________________如果有助于解决您的查询,请将此帖子标记为“接受为解决方案”。
因此,它将有助于其他论坛用户直接参考答案。如果您认为该信息有用且面向答复,请给予此帖子称赞。
2020-6-1 09:09:00 评论

举报

UG191讨论了Spartan和Virtex器件,以及PROMgen和影响工具。
我找不到Vivado 2014.4的影响或影响。
尝试启动一个会产生错误[Vivado 12-3625]。
我应该单独下载iMPACT,并使用它代替Vivado来生成编程文件吗?
有关详细信息,UG191请参阅“ISE®软件在线帮助”。
菊花链中的FPGA如何知道用于配置自己的二进制文件?
根据UG470(v1.9),“串行菊花链中的第一个器件是最后配置的”。
第一个设备如何知道,有多少个下游芯片(读取:何时配置)?
我猜这是编码到由WITE_CFGMEM生成的文件中,在我的情况下失败了。
有没有办法研究PROM文件的内容,以确保它按预期制作?
我很乐意比较hexdump agains规范,或使用用户友好的工具,无论什么可用。
2020-6-1 09:21:23 评论

举报

错字,第一段,最后一句:Ug161(不是191)。
2020-6-1 09:40:45 评论

举报

对于2014.4工具,我们需要使用硬件管理器(2014.X工具中不提供Impact工具)。
有关更多详细信息,请参阅http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_4/ug936-vivado-tutorial-programming-debugging.pdf
以下论坛帖子是关于“如何为多个SP-6 FPGA创建从属串行文件”。您也可以为您的案例(7系列)应用相同的方法。
http://forums.xilinx.com/t5/Spartan-Family-FPGAs/How-to-create-Slave-Serial-file-for-more-than-one-Spartan-6-FPGA/td-p/254886
附加数据仅供参考:如果您的系统中还有2013.X版VIvado工具,那么您可以使用实验室工具。有关详细信息,请参阅http://www.xilinx.com/support/answers/54939.html。
_______________________________________________如果有助于解决您的查询,请将此帖子标记为“接受为解决方案”。
因此,它将有助于其他论坛用户直接参考答案。如果您认为该信息有用且面向答复,请给予此帖子称赞。
2020-6-1 09:48:03 评论

举报

感谢你能这么快回复。
我没有完全理解它。
我认为当工作站直接连接到FPGA时会使用硬件管理器;
我正在尝试使用串行从菊花链对设备进行编程。描述硬件管理器的文档首先连接到目标 - 在学习使用串行从属菊花链时我不能这样做。
我现在已经安装了旧的labtools,并在上面链接的论坛讨论中草拟了一个组合二进制文件。文件由影响14.7制作。
与Vivado所做的不同(魔法aa995566令牌在Vivado制作的文件中出现两次,iMPACT开始制作三次),但我仍然无法将单独的固件编程到FPGA中。第一个FPGA在看到固件后立即启动

UG470声明上游应该是最后配置。
因此,第一个FPGA已经没有意识到需要等待下游芯片。
对于Vivado制造和iMPACT制造的“PROM文件”都是如此。
我无法使用iMPACT检查这些组合文件;
这有可能吗?
Vivado 2014.4组合的文件应该有效吗?
我仍然想知道FPGA如何知道它们在从串行菊花链中的位置。
2020-6-1 10:00:22 评论

举报

UG470指出,FPGA知道它们的位置(每个设备使用哪个比特流),因为PROM文件生成器通过将下游配置数据嵌套到上游设备的配置数据包中来重新配置配置比特流。
2020-6-1 10:07:15 评论

举报

马克,
感谢您提供信息丰富的帖子。
你能详细说明吗?
重新格式化的PROM文件的结构是否可供阅读?
将我的实际“PROM”文件与Artix芯片预期的格式进行比较将有助于找到(并修复)我的问题的根本原因。
2020-6-1 10:26:57 评论

举报

我仍然无法使用串行菊花链配置为芯片编写不同的代码。
问题最明显的证明是第一个fpga在收到第一个核心后立即开始工作;
预期的行为是它将核心传递给下游并且不自行编程。
我可以单独编程核心。
因此,我当前的假设是那些单独的位文件正在工作。
问题很可能是将它们组合成从串行格式化的编程流。
如何调试这样的问题?
在我看来,合乎逻辑的下一步是将Vivado(或promgen)生成的“bin stream”与Artix芯片预期的头部进行比较。
但是,这需要一些额外的细节,以了解FPGA应该知道它们在从串行菊花链中的位置。
请帮忙。
2020-6-1 10:44:43 评论

举报

两个设备的DONE引脚是否连接在一起,因为它们应该是。
------您是否尝试在Google中输入问题?
如果没有,你应该在发布之前。太多结果?
尝试添加网站:www.xilinx.com
2020-6-1 10:50:46 评论

举报

我将DONE引脚连接到同一根电线,如图9-1中的GB470(1.9)所示。
出于调试目的,我还尝试了UG470(v1.9)图9-2,并分离了DONE引脚。
图9.2电路按预期工作,但不幸的是我需要串行菊花链(图9-1)工作。
2020-6-1 11:02:26 评论

举报

当配置失败时,回读第二个fpga的状态寄存器,看看哪个寄存器没有设置
http://www.xilinx.com/support/answers/24024.html
--Krishna
2020-6-1 11:12:14 评论

举报

谢谢你的问题。
尝试编程链后读取配置寄存器会产生大量位:
get_property REGISTER.CONFIG_STATUS [lindex [get_hw_devices] 0] 01010000000110000011111110001100
问题1:是否有UG描述其含义?
如果其他有类似问题的人碰巧正在阅读这个帖子,我终于找到了一种编程芯片的方法。在UG835(v2014.4)2014年11月19日,第1329页,声明“你可以指定多个位文件,
导致文件在菊花链中连接。“,然后是一个示例语法,显示如何加载多个比特流。但是,该语法至少在我正在使用的设置中不起作用。
前一页中的语法有效(假设所有其他标志,如“-interface”,“ - format”,“ - disableablewap”,列出位文件的顺序,以及与各个比特流相关的选项恰好同时发生
也是正确的)。
在串行菊花链中,我可以从使用压缩位文件中受益。
但是,只有当上游fpga的.bit文件(写入write_cfgmem)具有未设置的“compress”属性时,我的解决方案才有效。
问题2:菊花链编程文件的生成是否适用于压缩的所有比特流?
如果没有,那么UG应该提一下吗?
在大多数情况下,我正在尝试使用压缩比特流。
2020-6-1 11:19:06 评论

举报

q1:状态寄存器描述在ug470表5-27中
http://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf
2020-6-1 11:34:16 评论

举报

只有小组成员才能发言,加入小组>>

96个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表