如何在JTAG链中Program多个ViTeX器件?-Xilinx-AMD社区-FPGA CPLD-ChipDebug

如何在JTAG链中Program多个ViTeX器件?

描述

一般描述:

我使用多个ViTeX器件连接在JTAG菊花链中(一个器件的TDO连接到另一个器件的TDI,所有TCK作为一个TCK连接在一起,并且所有TMS引脚都作为一个TMS引脚连接)。

是否有可能通过ViTeXJTAG引脚配置整个菊花链?

解决方案

是的–请使用以下软件和硬件程序:

首先,为JTAG配置准备ViTeX位流。对于ViTeX菊花链中的每个位流,使用下面的命令行创建.bit文件:

BITGE-G STARTUPCLK:JTAGLCK设计名称NCD

其中“DealNo.NCD”是从PAR路由的NCD文件的名称。

如果您不这样做,ViTeX器件将接受比特流,完成和/或init都将是高的,但器件将不响应刺激。上面的选项指示ViTeX器件使用TCK引脚上的时钟来完成JTAG配置过程。

如果您不希望使用TCK来启动启动序列,则必须使用SARTUPIPVITEX符号来附加特定的内部时钟网络,用于启动序列。然后必须指示BITGEN使用USECLK启动“G:USECLK”选项。

如果您仅在加电后通过JTAG配置ViTeX器件,则必须将ViTeX器件的模式引脚设置为101(M2=1,M1=0,M0=1 nopuluPS)或001(M2=0,M1=0,M0=1拉升)。如果在上电之前不将模式引脚设置为101或001,然后输入配置指令,则ViTeX器件可能无法可靠配置。

现在,将您的位文件放入JTAGProgrammer软件中完成配置。(如果你使用你自己的软件,请继续阅读。)

使用以下步骤一次配置菊花链中的器件:

1。将CFGIN指令加载到第一个器件中(在所有下游器件中使用旁路)。

2。在第一位流中没有前导零点的移位。

三。通过测试逻辑复位(TLR)过程。

4。在第一器件中加载旁路和第二器件中的CFGGIN(在所有下游器件中使用旁路)。

5。用31个前导零移位第二比特流。

6。通过TLR过程。

对每个相继的器件重复步骤4到6,在器件被配置之前减少每个器件的前零个数。

7。将JStutt命令加载到所有器件中。

8。转到DR和时钟TCK十二次。

在这一点上所有的器件都应该是活动的。

单个ViTeX器件的JTAG配置故障排除

注意,在ViTeX器件上,TAP始终是活动的,并且可以用于故障排除。在JTAG配置模式下,完成的PIN与非JTAG配置模式完全一样。在使用ViTeX的JTAG配置模式中,您可以监视已完成的PIN,以查看比特流是否已成功加载到器件中。

如果完成了Low,存在三种可能的情况:整个比特流尚未被发送,整个比特流已被发送,但启动序列尚未完成,或者发生了错误。如果完成PIN变高,这意味着ViTeX器件已经接收到整个比特流,并且比特流没有被破坏。

如果完成的PIN没有变高,则用JTAGLK的“-G”选项创建比特流,并且已经执行JStand指令,检测到比特流中的错误是可能的。在ViTeX器件的非JTAG配置中,这种类型的故障通过/init引脚显示。在ViTeXJTAG配置中,外部/ init引脚不用于报告状态,但可以查看内部/ init信号。

如果您已经完成了ViTeXJTAG配置,并且完成的PIN保持了Low,您可以通过以下步骤检查是否在比特流中检测到错误:

1。将水龙头移动到测试逻辑复位状态。

2。加载CFGIN指令。

三。转到Stand DR状态并在下面的64位模式中移动:

4。加载CFGOXOUT指令。

5。在读取TDO时,32次移动DR和时钟TCK。

数据是状态寄存器的内容。如果发生CRC错误,最后一位将是1。在成功配置之后,32位通常是:

最右边的位子是最后一个移出来的。如果返回值偏离上述值,则可能存在配置上的问题。

请登录后发表评论

    没有回复内容