Contents

  • JTAG边界扫描BSDL文件介绍

    • Contents

    • Introduction

    • Boundary-Scan Register

    • 边界扫描

    • BSDL文件解析

    • BSDL文件的应用

    • Reference

Introduction

BSDL
Boundary Scan Description Language的缩写,即边界扫描描述语言,属于VHDL的一个子集,内容符合VHDL的语法标准,用于描述JTAG在指定设备中的实现方式,只要设备符合JTAG标准,那么它必须具有对应的BSDL文件,

BSDL文件主要包括以下信息:

  • 当前芯片所支持的最大TCK频率

  • 定义了管脚的名称和序号

  • 定义了电源、时钟、配置、IO管脚等等。每个管脚的类型,如VCC、GND、CLK,管脚的名称及序号

  • 所有可用命令寄存器

  • 所有可用的数据寄存器,包括可能的预设值,例如:器件的IDCODE

BSDL目前有两种标准IEEE 1149.1和IEEE 1149.6。IEEE 1149.6在IEEE 1149.1标准的基础上丰富了一些内容,它可以兼容IEEE 1149.1。

BSDL资源

  • 所有厂家BSDL文件获取:https://www.bsdl.info/

  • Xilinx zynq BSDL文件获取: C:\Xilinx\Vitis\2020.2\data\parts\xilinx\zynq\public\bsdl

Boundary-Scan Register

TAP controler下寄存器分为两大类:指令寄存器和数据寄存器。

Bypass寄存器、Device Identification寄存器和Boundary-scan寄存器(边界扫描链),都属于数据寄存器。在调试当中,边界扫描寄存器(边界扫描链)最重要,使用的也最为频繁。

image.png

INTEST指令和Boundary-Scan 寄存器:
Boundary-Scan寄存器就是边界扫描链,一般一个芯片内部有多个边界扫描链。通过边界扫描链,可以进行部件间的连通性测试。当然,更重要的是可以对测试器件的输入输出进行观测和控制,以达到测试器件的内部逻辑的目的。INTEST指令是在IEEE 1149.1标准里面定义的一条很重要的指令:结合边界扫描链,该指令允许对开发板上器件的系统逻辑进行内部测试。

image.png

边界扫描

当TAP控制器进入“boundary-scan”的状态,其实也就是IR寄存器存入SAMPLE指令、EXTEST指令等,此时对应的DR寄存器就是边界扫描寄存器,这个寄存器将每个I/O单元连接在一起并且可以控制每个引脚。 

image.png

当芯片正常过程当中也是可以进行边界扫描的,例如对正常运行中的FPGA进行边界扫描,它可以将每个管脚的状态显示出来。

我们尝试读取管脚的值,对应的IR寄存器的指令是SAMPLE

BSDL文件解析

从下面xc7z020_clg400.bsd这个文件可以知道:

  • IR寄存器的长度是6位;

  • IR指令寄存器的指令清单,比如SAMPLE的是000001

  • 边界扫描链的长度是1077位

边界扫描寄存器有1077位,并不意味着有1077个管脚。

每一个管脚都有一个IO pad(芯片管脚处理模块),IO pad用1~3位寄存器(取决于该管脚是输入、三态输出或是输入输出均可)。当然一些IO pad包含的寄存器不一定包含在边界扫描链中。 xc7z020_clg400.bsd:

-- Instruction Register Description
attribute INSTRUCTION_LENGTH of XC7Z020_CLG400 : entityis6;
attribute INSTRUCTION_OPCODE of XC7Z020_CLG400 : entityis
        "IDCODE         (001001)," & -- DEVICE_ID
        "BYPASS         (111111)," & -- BYPASS
        "EXTEST         (100110)," & -- BOUNDARY
        "SAMPLE         (000001)," & -- BOUNDARY
        "PRELOAD        (000001)," & -- Same as SAMPLE
        "USERCODE       (001000)," & -- DEVICE_ID
        "HIGHZ          (001010)," & -- BYPASS
        "EXTEST_PULSE   (111100)," & -- BOUNDARY
        "EXTEST_TRAIN   (111101)," & -- BOUNDARY
        "ISC_ENABLE     (010000)," & -- ISC_CONFIG
        "ISC_PROGRAM    (010001)," & -- ISC_PDATA
-- Boundary-Scan Register Description
attribute BOUNDARY_LENGTH of XC7Z020_CLG400 : entityis1077;
attribute BOUNDARY_REGISTER of XC7Z020_CLG400 : entityis
-- cellnum (type, port, function, safe[, ccell, disval, disrslt])
        "   0 (BC_2, *, internal, 1)," &
        "   1 (BC_2, *, internal, 0)," & --  RSVDGND_0
        "   2 (BC_2, *, internal, X)," & --  RSVDGND_0
        "   3 (BC_2, RSVDVCC3_N6, input, X)," &
        "   4 (BC_2, RSVDVCC2_R6, input, X)," &
        "   5 (BC_2, RSVDVCC1_T6, input, X)," &
        "   6 (BC_2, CFGBVS_M6, input, X)," &
        "   7 (BC_2, *, internal, 1)," & --  PROGRAM_B
        "......," &
        "1063 (BC_2, *, internal, 1)," & --PS_SRST_B
        "1064 (BC_2, *, internal, X)," &
        "1065 (BC_2, *, internal, X)," &
        "1066 (BC_2, *, internal, X)," &
        "1067 (BC_2, *, internal, X)," &
        "1068 (BC_2, *, internal, X)," &
        "1069 (BC_2, *, internal, X)," &
        "1070 (BC_2, *, internal, X)," &
        "1071 (BC_2, *, internal, X)," &
        "1072 (BC_2, *, internal, X)," &
        "1073 (BC_2, *, internal, X)," &
        "1074 (BC_2, *, internal, X)," &
        "1075 (BC_2, *, internal, X)," &
        "1076 (BC_2, *, internal, X)";

BSDL文件的应用

BSDL文件可以在一些边界扫描的软件中被使用,如XJTAG,TopJTAG等等,通过加载对应的BSDL文件可以实现对芯片外部所有管脚的读取和控制。

image.png

  • 工具TopJtag:

    • TopJTAG Probe:边界扫描测试软件,可实现IO的读取、控制、波形的显示、脉冲的计数等。

    • TopJTAG Flash Programmer:可以对芯片外置的CFI Flash进行编程和读取。

    • 已100t开发板为例IO测试步骤:
      1. New project建立JTAG连接,部分Digilent JTAG可直接识别。
       

      image.png

      image.png


      2. 选择BSDL文件C:\Xilinx\SDK\2018.3\data\parts\xilinx\artix7\public\bsdl\xc7a100t_csg324.bsd,初始为SAMPLE状态,可通过instruction调整
      3. IO可添加波形查看
      jtag chain view中不同颜色代表IO不同状态。Pin values are color-coded. Black means 0, red — 1, brown — high-Z, and blue — linkage pin. 

      image.png

Reference

IEEE Standard 1149.1 - Test Access Port and Boundary-Scan Architecture

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐