我是BSDLAnno,是什么?如何使用它来创建配置后的BSDL文件?-Xilinx-AMD社区-FPGA CPLD-ChipDebug

我是BSDLAnno,是什么?如何使用它来创建配置后的BSDL文件?

描述

关键词:边界扫描

此应答记录为BSDLANNO提供文档信息。

解决方案

修改后的2006年9月:
-更新支持的体系结构
BSDLANNO如何修改文件的说明
-更新已知问题

布斯兰诺
BSDLANNO实用程序与以下家族兼容:
ViTEX,ViTEX-E,ViTEX II,ViTEX II PRO,ViTEX II PRO X,VITEX-4,VITEX-5,SpartanII,SpTAN-IIE,SPARTAN-3,SPARTAN-3E,XC9500,XC9500 XL,XC9500 XV,XPLA3(CultRunter),XBR(CoolRunner II)

本文件包含以下部分:
– BSDLAnno概述
– BSDLAnno Syntax
BSDLANNO输入文件
BSDLANO输出文件
BSDLANO选项
BSDL文件的组成和概述
配置Xilinx器件的边界扫描行为
BSDLANNO 5.1I的已知问题和局限性

BSDLANO概述
边界扫描描述语言由IEEE规范1149.1定义为“定义器件边界扫描体系结构的通用方法”。Xilinx提供了描述预配置边界扫描架构的1149.1和1532(适用于仅适用的器件)BSDL文件。对于大多数Xilinx器件族,边界扫描结构在配置器件之后发生变化,因为边界扫描寄存器位于I/O缓冲器和读出放大器后面:

BSCAN寄存器-GT;IO缓冲器/SENAMP & GT;PAD

硬件以这种方式排列,使得边界扫描逻辑在设计所指定的I/O标准下工作。这允许在整个可用I/O标准范围内进行边界扫描测试。

由于边界扫描寄存器和PAD之间的某些连接可能改变,因此当器件配置时,边界扫描架构被有效地改变。这些更改通常需要通过POST配置BSDL文件传送到边界扫描测试仪。如果边界扫描体系结构的改变没有反映在BSDL文件中,边界扫描测试可能会失败。

Xilinx现在提供BSDLANNO工具来自动修改BSDL文件以进行配置后的互连测试。BSDLANNO从路由的“.NCD”文件(FPGA)或“设计.PNX”文件(CPLDS)获得必要的设计信息,并生成反映器件的后配置边界扫描架构的BSDL文件。

BSDLANO语法
使用以下语法生成带有BSDLAnno的配置后BSDL文件:

BSDLANNO选项]因循守旧输出文件[BSD ]

这个因循守旧是指定设计的设计源文件。对于FPGA设计,“FILILE”是路由(Par PAR)NCD文件,并且必须具有“.NCD”扩展名。对于CPLD设计,“FILE”是“设计.pnx”文件。

这个输出文件[BSD]是设计专用BSDL文件的目的地。“.bSD”扩展是可选的。BSDL文件名的长度,包括“.bSD”扩展名,不能超过24个字符。

例如
BSDLANNO-S IEEE1149设计

BSDLANNO输入文件
BSDLANNO需要两个输入文件来生成一个配置后的BSDL文件:
-从Xilinx安装区域自动读取的预配置BSDL文件
-路由的“.NCD”文件(FPGA)或“.pNX”文件(CPLD),由您指定为因循守旧

BSDLANO输出文件
BSDLANNO的输出是一个ASCII(文本)格式的BSDL文件,该文件已被修改以反映信号方向性(输入/输出/双向)、未使用的I/OS和其他设计特定的边界扫描行为。

BSDLANO选项
本节提供关于BSDLANNO命令行选项的信息。

[-S IEEE1149] IEEE1532

“-s”指示要修改的BSDL文件的版本。(大多数用户需要IEEE1149文件。)

BSDLANNO修改
JTAG兼容器件的制造商必须为这些器件提供BSDL文件。BSDL文件描述了JTAG兼容器件的边界扫描结构,并在VHDL的子集中写入。下面是IEEE 1149.1 BSDL文件的五个主要部分,以及BSDLANNO如何修改每个部分的说明。

1。实体声明
实体声明是一个VHDL构造,用于标识由BSDL文件描述的器件的名称。

例如(从XCV50EYPQ240.BSD文件):
实体XCV50EYPQ240是

BSDLANNO更改实体声明以避免名称冲突。新的实体声明与“输入NCD”或“.pNX”文件中的设计名称匹配。

2。通用参数
“泛型”参数指定由BSDL文件描述的包。

例如(从XCV50EYPQ240.BSD文件):
泛型(物理-PixMAP:String:=“PQ240”);

BSDLANNO不修改泛型参数。

三。逻辑端口描述
逻辑端口描述列出器件上的所有I/O,并说明PIN是否为输入(位;)、输出(IOUT BIT)、双向(IOUT BIT),或不可用于边界扫描(链接位;)。配置为输出的引脚被描述为“IOUT”,因为即使当PIN仅用作输出时,输入边界扫描单元仍然保持连接。将输出描述为“输入”反映了器件的实际边界扫描能力,并允许更大的测试覆盖率。

并不是所有模具上的I/O都可用(或“粘合”)在所有包装中。未绑定的I/OS在预配置BSDL文件中定义为“链接”位。

例如(从XCV50EYPQ240.BSD文件):
端口(
CLKKYP179:输入位;
DONEYP120:输入比特;
GCK0YP92:位内;
GCK1YP89:位;
GCK2Y210:位内;
GCK3Y213:In位;
GND:链接比特向量(1到32);
IITHIP123:IOUT位;PAD96
IOPUP3:IOUT位;PAD191
IOP.P4:IOUT位;PAD190
IOPYP5:IOUT位;PAD189
IOU-P6:IOUT位;PAD188

BSDLANNO修改逻辑端口描述,使其与配置后的边界扫描电路的能力相匹配。修改如下:

-专用引脚(JTAG、模式、完成等)未被修改。
由你定义为双向的PIN被保留为“InOut-BIT”。
-由您定义的PIN作为输入被更改为“位内”。
由您定义的引脚作为输出被更改为“输入位”。
未使用的引脚仍然是“InOut-BIT”。
差分对的N侧变为“联动位”。

4。封装引脚映射
封装引脚映射显示了器件芯片上的焊盘如何连接到器件封装上的引脚。

例如(从XCV50EYPQ240.BSD文件):
“CCKKYP179:P179,”和
“DONEYP120:P120”;
“GCK0YP92:P92”;
“GCK1YP89:P89,”&
“GCK2Y210:210”,以及
“GCK3Y213:213”和
GND:(P1、P8、P14、P22、P29、P37、P45、P51、P59、P69);
P75、P83、P91、P98、P106、P112、P119、P129、P135、P143;
p151、p158、p166、p172、p182、p190、p196、p204、p11、p19;
“227,P23 3”,“&
“iNITHP123:P123,”&
“IOYP3:P3,”和
“IOYP4:P4,”和
“IOYP5:P5,”和
“IOYP6:P6,”和

BSDLANNO不修改包引脚映射。

5。使用语句
使用语句调用包含在BSDL文件中引用的属性、类型、常量等的VHDL包。

例如(从XCV50EYPQ240.BSD文件):
使用STDY114911194.4;

BSDLANNO不修改使用语句。

6。扫描端口识别
扫描端口标识标识以下JTAG引脚:TDI、TDO、TMS、TCK和TrST(如果使用的话)。(TrST是一个可选的JTAG引脚,不被Xilinx器件使用)。

例如(从XCV50EYPQ240.BSD文件):
TDI的属性TopyScIXIN:信号是真的;
TMS的属性TopySCAN模式:信号是真的;
TDO的属性TopyScRayIOUT:信号为真;
TCK的属性TopySCAN时钟:信号为(33.0E6,两者);

BSDLANNO不修改扫描端口标识。

7。分接头描述
TAP描述提供关于器件的JTAG逻辑的附加信息。包括指令寄存器长度、指令操作码、器件IDCODE等。这些特性是特定于器件的,并且可能从器件到器件差别很大。

例如(从XCV50EYPQ240.BSD文件):
XCV50EY-PQ240实体的属性兼容模式
XCV50EYPQ240的属性指令长度:实体为5;
XCV50EYPQ240的属性指令代码
XCV50EYPQ240的属性指令捕获:实体为“XXX01”;
XCV50EYPQ240的属性IDCODELY寄存器:实体

BSDLANNO不修改TAP描述。

8。边界寄存器描述
边界寄存器描述给出了器件上的边界扫描单元的结构。器件上的每个引脚可以具有多达三个边界扫描单元,每个单元由寄存器和锁存器组成。边界扫描测试向量被加载到这些寄存器中或扫描这些寄存器。

例如(从XCV50EYPQ240.BSD文件):
XCV50EYPQ240实体的属性边界寄存器
——CynNUM(类型、端口、函数、安全性、CCEL、DISVALL、DISRSLT)
“0(BCY1,*,控制,1),”和
“1(BCY1,IOYP184,OUTPUT3,X,0, 1,PUL0),”和-PAD48
“2(BCY1,IOYP184,输入,X),”和“-PAD48”

每个IOB都有三个与它相关联的边界扫描寄存器:控制、输出和输入。BSDLANNO修改边界寄存器描述如下所述:

单端引脚的BSDL文件修改
如果PIN 57已被配置为单端三态输出引脚,则不需要进行代码修改:

-三态输出引脚(具有输入部件的三态输出)
“9(BCY1,*,控制,1),”和
“10(BCY1,PAD57,OutPUT3,X,9, 1,Z),”和
“11(BCY1,PAD57,输入,X),”和

如果PIN 57被配置为单端输入,则修改如下:
-PIN被配置为输入
“9(BCY1,*,内部,1),”和
“10(BCY1,*,内部,X),”和
“11(BCY1,PAD57,输入,X),”和

如果PIN 57被配置为单端输出,则将其视为单端双向PIN:
–PIN被配置为输出
“9(BCY1,*,控制,1),”和
“10(BCY1,PAD57,OutPUT3,X,9, 1,Z),”和
“11(BCY1,PAD57,输入,X),”和

如果引脚57未被配置或未在设计中使用,则不修改:
-PIN被配置为“未使用”
“9(BCY1,*,控制,1),”和
“10(BCY1,PAD57,OUTPUT3,X,9, 1,PUL0),”和
“11(BCY1,PAD57,输入,X),”和

说明:
对单端引脚的唯一修改是当PIN被配置为输入时。在这种情况下,边界扫描逻辑从输出驱动器断开,并且不能在引脚上输出。当PIN被配置为输出时,边界扫描输入寄存器保持连接到该PIN。因此,边界扫描逻辑具有与PIN被配置为双向PIN的相同能力。

用于差分引脚的BSDL文件修改
如果PIN 57被配置为双向、三态输出或输出P侧差分PIN,则修改如下:
“9(BCY1,*,控制,1),”和
“10(BCY1,PAD57,OutPUT3,X,9, 1,Z),”和
“11(BCY1,PAD57,输入,X),”和

如果引脚57被配置为P侧差分输入引脚,则修改如下:
“9(BCY1,*,内部,1),”和
“10(BCY1,*,内部,X),”和
“11(BCY1,PAD57,输入,X),”和

如果引脚57被配置为n侧差分引脚(所有类型:输入、输出、3态输出和双向),则修改如下:
“9(BCY1,*,内部,1),”和
“10(BCY1,*,内部,X),”和
“11(BCY1,*,内部,X),”和

说明:
大多数边界扫描器件仅为每个差分对使用三个边界扫描寄存器。大多数器件不提供直接的边界扫描控制在每个单独的引脚上,而是在两个引脚对上。当考虑两个引脚只传输一个比特信息时,这是有意义的,因此,只需要一个输入、输出和控制寄存器。在Xilinx器件中如何处理差分引脚产生混淆,因为每个引脚有三个边界扫描单元,或者差分对的六个寄存器。N端寄存器保留在边界扫描寄存器中,但不以任何方式连接到PIN,这就是为什么N端寄存器被列为POST配置BSDL文件中的“内部”寄存器的原因。由于边界寄存器位于输出缓冲器和输入感测放大器后面,P侧寄存器也控制N侧引脚的行为。例如,当一个值被放置在P侧输出扫描寄存器中并且输出被启用时,反向值由输出驱动器驱动到N侧引脚。这与边界扫描逻辑无关。

总之,所有与差分PIN对的相互作用由连接到P侧引脚的边界扫描单元来处理。为了捕获差分对上的值,扫描P侧输入寄存器。为了在差分对上驱动一个值,将值移到P侧输出寄存器。N端扫描寄存器中的值对该管脚没有影响。

9。设计警告部分的修改
BSDLAnno将以下设计警告添加到BSDL文件:
“此BSDL文件已被修改以反映POST配置”&
BSDLANO的行为。BSDLANNO不修改USER1,“&
用户2或用户代码寄存器。关于细节和“和”的细节。
BSDLANNO的局限性,请参阅Xilinx开发“&
系统参考指南。

10。标题注释
从BSDLAnno添加的标题注释中删除“beta”指定如下:
——
–BSDLANNO POST配置文件设计和实体名称GT;
–BSDLANNO & BSDLANNO版本号& GT;

后配置边界扫描行为
由Xilinx提供的BSDL文件反映了未配置器件的边界扫描行为。
在配置之后,器件的边界扫描行为可能改变。配置之前的双向I/O引脚现在只能被输入。
边界扫描测试向量通常来自BSDL文件;因此,如果要在配置的Xilinx器件上执行边界扫描测试,则应该修改BSDL文件以反映器件的配置边界扫描行为。
-只要可能,边界扫描测试应该在未配置的Xilinx器件上执行。未配置的器件允许更好的测试覆盖率,因为所有I/OS都可用于双向扫描向量。

配置XILIX器件的边界扫描测试仅在以下情况下进行:
-当无法防止配置时
-当使用差分信号标准时(除非差分信号)位于Xilinx器件之间,在这种情况下,两种器件都可以进行预配置测试。差分对的每一侧将表现为单端信号。

5.1I BSDLANO的已知问题、限制和注释

1。差分对N端的处理需要改进。
该文档的早期版本指出,“BSDLAnno当前从边界寄存器中移除差分对的N侧。将修改BSDLANNO的未来版本,将BSDL文件中的差分对注解为“分组端口”,并在边界寄存器中包括N侧差分引脚,每个IEEE 1149.1节B.8。

Xilinx在这一点上推翻了这一决定。Xilinx认为,当前处理差分引脚对是描述配置的Xilinx器件的BSCAN架构的最好方式。

反对将N端标记为链接位的理由是,您失去了单独测试该PIN的能力。然而,Xilinx n侧引脚上的BSCAN单元与PIN断开,因此当引脚被配置为差分对的N侧时,这些单元没有使用。因此,BSDLANNO正确地将这些单元标记为“链接”。混淆的原因在于,差分对的N侧引脚具有其自己的边界扫描单元非常罕见——大多数器件使用每一个差分对的一组边界扫描单元(输入、输出、3-状态)。标记n侧作为“链接”导致一组BSCAN单元用于一对引脚,这正是大多数具有差分对的器件所提供的。为了控制差分对,需要访问p侧BSCAN单元,这是BSDLANNO提供的修改所提供的。

2。用户定义的边界扫描寄存器(USER1和USER 2寄存器)没有注释。
BSDLANNO不能在配置后的BSDL文件中注释用户定义的边界扫描寄存器。没有计划添加这个功能。

三。控制寄存器“安全”值没有正确处理。
请看(赛灵思解答15419)欲了解更多信息。

4。边界扫描单元类型的错误修改
BSDLANO在所有情况下错误地修改边界扫描单元类型到BCY1。BSDLAnno不应该改变细胞类型。若要纠正此问题,请检查未修改的BSDL文件以确定正确的单元格类型,然后用文本编辑器执行“查找和替换”,以将BCY1的所有实例更改为正确的单元格类型。

5。PIN方向性的诠释
配置PIN方向性的处理是一些争论的主题。例如,BSDLAnno不把被配置为输出的引脚作为输出——它们被看作双向引脚,因为这反映了在配置的器件中可用的真实边界扫描结构。对于一些期望FPGA设计中描述的电路的方向性反映在BSDL文件中的客户来说,这可能是个问题。然而,如果BSDLAnno将输出简单地看作输出(而不是双向),则会降低总体测试覆盖率,这对其他客户来说是有问题的。

BSDLANNO的任务是在配置的Xilinx器件中反映真实边界扫描结构,以最大限度地提高测试覆盖率。虽然这对某些客户来说可能是不方便的,但Xilinx认为,通过充分利用器件的边界扫描资源,这将有更大的好处。

请登录后发表评论

    没有回复内容