1. 什么是BSDL文件?
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。
2. BSDL文件的获取方式1:BSDL Libraryhttps://www.bsdl.info/

这个网站几乎包括所有支持JTAG芯片的BSDL文件,超过100家半导体公司的上万款芯片,包括MCU、DSP、PowerPC、CPLD、FPGA等,现在还在持续更新中。
支持通过芯片型号或IDCODE搜索对应的BSDL文件,可以在线进行预览,非常方便
方式2:各芯片的官方网站
在各大芯片厂商的官方网站一般会提供BSDL文件,下面以Xilinx、Altera、Microsemi、ST意法半导体为例,介绍如何获取BSDL文件。
Xilinx FPGA BSDL文件获取
Xilinx CPLD/FPGA BSDL文件一般位于开发环境ISE或Vivado安装路径下:
ISE 14.7对应路径为,例如Artix-7系列XC7A100T的BSDL文件位于:
Xilinx\14.7\ISE_DS\ISE\artix7\data

Vivado 2018.3对应路径如下:
Vivado\Vivado\2018.3\ids_lite\ISE\artix7\data

除了开发环境的安装目录,Xilinx还在官方网站上提供有各系列FPGA的BSDL文件下载:
https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/device-models/bsdl-models/artix-series-fpgas.htmlAltera FPGA BSDL文件获取
由于我的电脑没装Quartus开发环境,所以不确定BSDL文件是否能在安装路径下找到,Altera官方网站也可以进行下载:
IEEE 1149.1 BSDL 文件下载
https://www.intel.cn/content/www/cn/zh/support/programmable/support-resources/board-layout/bsd-11491.html
IEEE 1149.6 BSDL 文件下载
https://www.intel.cn/content/www/cn/zh/support/programmable/support-resources/board-layout/bsd-11496.html
Microsemi FPGA BSDL文件获取
Microchip(Microsemi)FPGA的BSDL模型下载地址:
https://www.microsemi.com/product-directory/design-resources/1717-bsdl-models

ST MCU BSDL文件获取
意法半导体MCU的BSDL文件可以到官方网站搜索BSDL,就会弹出对应系列的BSDL文件包。
部分系列的BSDL文件下载地址:
STM32F1:https://www.st.com/content/ccc/resource/technical/ecad_models_and_symbols/bsdl_model/75/4a/50/d0/ad/aa/49/92/stm32f1_bsdl.zip/files/stm32f1_bsdl.zip/jcr:content/translations/en.stm32f1_bsdl.zipSTM32F2:https://www.st.com/content/ccc/resource/technical/ecad_models_and_symbols/bsdl_model/e9/d6/86/75/13/99/46/c8/stm32f2_bsdl.zip/files/stm32f2_bsdl.zip/jcr:content/translations/en.stm32f2_bsdl.zipSTM32F17:https://www.st.com/content/ccc/resource/technical/ecad_models_and_symbols/bsdl_model/ad/a6/69/0f/70/95/49/92/stm32f7_bsdl.zip/files/stm32f7_bsdl.zip/jcr:content/translations/en.stm32f7_bsdl.zip

3. BSDL文件示例
下面是Xilinx CPLD XC95144的BSDL文件的全部内容:
---- BSDL File created/edited by BCAD BSD Editor Version 3.1----BSDE:Revision: $Header: /devl/xcs/repo/env/Jobs/iMPACT/data/xc9500/xc95144.bsd,v 1.2 2000/10/24 00:58:57 sanjays Exp $--BSDE:Description: Xilinx 144 macrocell FastFLASH ISP CPLDentity XC95144 isgeneric (PHYSICAL_PIN_MAP : string := "DIE_BOND" );port (    PB00_00: inout bit;    PB00_01: inout bit;    PB00_02: inout bit;    PB00_03: inout bit;    PB00_04: inout bit;    PB00_05: inout bit;    PB00_06: inout bit;    PB00_07: inout bit;    PB00_08: inout bit;    PB00_09: inout bit;    PB00_10: inout bit;    PB00_11: inout bit;    PB00_12: inout bit;    PB00_13: inout bit;    PB00_14: inout bit;    PB00_15: inout bit;    PB00_16: inout bit;    PB01_00: inout bit;    PB01_01: inout bit;    PB01_02: inout bit;    PB01_03: inout bit;    PB01_04: inout bit;    PB01_05: inout bit;    PB01_06: inout bit;    PB01_07: inout bit;    PB01_08: inout bit;    PB01_09: inout bit;    PB01_10: inout bit;    PB01_11: inout bit;    PB01_12: inout bit;    PB01_13: inout bit;    PB01_14: inout bit;    PB01_15: inout bit;    PB01_16: inout bit;    PB02_00: inout bit;    PB02_01: inout bit;    PB02_02: inout bit;    PB02_03: inout bit;    PB02_04: inout bit;    PB02_05: inout bit;    PB02_06: inout bit;    PB02_07: inout bit;    PB02_08: inout bit;    PB02_09: inout bit;    PB02_10: inout bit;    PB02_11: inout bit;    PB02_12: inout bit;    PB02_13: inout bit;    PB02_14: inout bit;    PB02_15: inout bit;    PB02_16: inout bit;    PB03_00: inout bit;    PB03_01: inout bit;    PB03_02: inout bit;    PB03_03: inout bit;    PB03_04: inout bit;    PB03_05: inout bit;    PB03_06: inout bit;    PB03_07: inout bit;    PB03_08: inout bit;    PB03_09: inout bit;    PB03_10: inout bit;    PB03_11: inout bit;    PB03_12: inout bit;    PB03_13: inout bit;    PB03_14: inout bit;    PB03_15: inout bit;    PB03_16: inout bit;    PB04_00: inout bit;    PB04_01: inout bit;    PB04_02: inout bit;    PB04_03: inout bit;    PB04_04: inout bit;    PB04_05: inout bit;    PB04_06: inout bit;    PB04_07: inout bit;    PB04_08: inout bit;    PB04_09: inout bit;    PB04_10: inout bit;    PB04_11: inout bit;    PB04_12: inout bit;    PB04_13: inout bit;    PB04_14: inout bit;    PB04_15: inout bit;    PB04_16: inout bit;    PB05_01: inout bit;    PB05_02: inout bit;    PB05_03: inout bit;    PB05_04: inout bit;    PB05_05: inout bit;    PB05_06: inout bit;    PB05_07: inout bit;    PB05_08: inout bit;    PB05_09: inout bit;    PB05_10: inout bit;    PB05_11: inout bit;    PB05_12: inout bit;    PB05_13: inout bit;    PB05_14: inout bit;    PB05_15: inout bit;    PB05_16: inout bit;    PB06_01: inout bit;    PB06_02: inout bit;    PB06_03: inout bit;    PB06_04: inout bit;    PB06_05: inout bit;    PB06_06: inout bit;    PB06_07: inout bit;    PB06_08: inout bit;    PB06_09: inout bit;    PB06_10: inout bit;    PB06_11: inout bit;    PB06_12: inout bit;    PB06_13: inout bit;    PB06_14: inout bit;    PB06_15: inout bit;    PB06_16: inout bit;    PB07_01: inout bit;    PB07_02: inout bit;    PB07_03: inout bit;    PB07_04: inout bit;    PB07_05: inout bit;    PB07_06: inout bit;    PB07_07: inout bit;    PB07_08: inout bit;    PB07_09: inout bit;    PB07_10: inout bit;    PB07_11: inout bit;    PB07_12: inout bit;    PB07_13: inout bit;    PB07_14: inout bit;    PB07_15: inout bit;    PB07_16: inout bit;    TCK: in bit;    TDI: in bit;    TDO: out bit;    TMS: in bit;    VCCINT_1: linkage bit;    VCCINT_2: linkage bit;    VCCINT_3: linkage bit;    VCCINT_VPP: linkage bit;    VCCIO_1: linkage bit;    VCCIO_2: linkage bit;    VCCIO_3: linkage bit;    VCCIO_4: linkage bit;    VCCIO_5: linkage bit;    VCCIO_6: linkage bit;    VSSINT_1: linkage bit;    VSSINT_2: linkage bit;    VSSINT_3: linkage bit;    VSSINT_4: linkage bit;    VSSIO_1: linkage bit;    VSSIO_2: linkage bit;    VSSIO_3: linkage bit;    VSSIO_4: linkage bit;    VSSIO_5: linkage bit;    VSSIO_6: linkage bit;    VSSIO_7: linkage bit;    VSSIO_8: linkage bit;    VSSIO_9: linkage bit);use STD_1149_1_1990.all;attribute PIN_MAP of XC95144 : entity is PHYSICAL_PIN_MAP;constant DIE_BOND: PIN_MAP_STRING:=    "PB00_00:PAD25," &    "PB00_01:PAD18," &    "PB00_02:PAD19," &    "PB00_03:PAD27," &    "PB00_04:PAD21," &    "PB00_05:PAD22," &    "PB00_06:PAD32," &    "PB00_07:PAD23," &    "PB00_08:PAD24," &    "PB00_09:PAD34," &    "PB00_10:PAD26," &    "PB00_11:PAD28," &    "PB00_12:PAD38," &    "PB00_13:PAD29," &    "PB00_14:PAD30," &    "PB00_15:PAD39," &    "PB00_16:PAD33," &    "PB01_00:PAD158," &    "PB01_01:PAD159," &    "PB01_02:PAD3," &    "PB01_03:PAD5," &    "PB01_04:PAD2," &    "PB01_05:PAD4," &    "PB01_06:PAD7," &    "PB01_07:PAD6," &    "PB01_08:PAD8," &    "PB01_09:PAD9," &    "PB01_10:PAD11," &    "PB01_11:PAD12," &    "PB01_12:PAD14," &    "PB01_13:PAD13," &    "PB01_14:PAD15," &    "PB01_15:PAD16," &    "PB01_16:PAD17," &    "PB02_00:PAD43," &    "PB02_01:PAD35," &    "PB02_02:PAD45," &    "PB02_03:PAD48," &    "PB02_04:PAD36," &    "PB02_05:PAD37," &    "PB02_06:PAD50," &    "PB02_07:PAD42," &    "PB02_08:PAD44," &    "PB02_09:PAD52," &    "PB02_10:PAD47," &    "PB02_11:PAD49," &    "PB02_12:PAD53," &    "PB02_13:PAD54," &    "PB02_14:PAD56," &    "PB02_15:PAD55," &    "PB02_16:PAD57," &    "PB03_00:PAD132," &    "PB03_01:PAD140," &    "PB03_02:PAD147," &    "PB03_03:PAD149," &    "PB03_04:PAD142," &    "PB03_05:PAD143," &    "PB03_06:PAD150," &    "PB03_07:PAD144," &    "PB03_08:PAD145," &    "PB03_09:PAD151," &    "PB03_10:PAD146," &    "PB03_11:PAD148," &    "PB03_12:PAD153," &    "PB03_13:PAD152," &    "PB03_14:PAD154," &    "PB03_15:PAD155," &    "PB03_16:PAD156," &    "PB04_00:PAD65," &    "PB04_01:PAD58," &    "PB04_02:PAD66," &    "PB04_03:PAD67," &    "PB04_04:PAD59," &    "PB04_05:PAD60," &    "PB04_06:PAD74," &    "PB04_07:PAD62," &    "PB04_08:PAD63," &    "PB04_09:PAD76," &    "PB04_10:PAD64," &    "PB04_11:PAD68," &    "PB04_12:PAD78," &    "PB04_13:PAD69," &    "PB04_14:PAD72," &    "PB04_15:PAD83," &    "PB04_16:PAD77," &    "PB05_01:PAD117," &    "PB05_02:PAD119," &    "PB05_03:PAD123," &    "PB05_04:PAD122," &    "PB05_05:PAD124," &    "PB05_06:PAD125," &    "PB05_07:PAD126," &    "PB05_08:PAD129," &    "PB05_09:PAD128," &    "PB05_10:PAD133," &    "PB05_11:PAD134," &    "PB05_12:PAD130," &    "PB05_13:PAD135," &    "PB05_14:PAD138," &    "PB05_15:PAD131," &    "PB05_16:PAD139," &    "PB06_01:PAD79," &    "PB06_02:PAD84," &    "PB06_03:PAD85," &    "PB06_04:PAD82," &    "PB06_05:PAD86," &    "PB06_06:PAD87," &    "PB06_07:PAD88," &    "PB06_08:PAD90," &    "PB06_09:PAD89," &    "PB06_10:PAD92," &    "PB06_11:PAD95," &    "PB06_12:PAD91," &    "PB06_13:PAD96," &    "PB06_14:PAD97," &    "PB06_15:PAD93," &    "PB06_16:PAD98," &    "PB07_01:PAD101," &    "PB07_02:PAD105," &    "PB07_03:PAD107," &    "PB07_04:PAD102," &    "PB07_05:PAD103," &    "PB07_06:PAD109," &    "PB07_07:PAD104," &    "PB07_08:PAD106," &    "PB07_09:PAD112," &    "PB07_10:PAD108," &    "PB07_11:PAD111," &    "PB07_12:PAD114," &    "PB07_13:PAD113," &    "PB07_14:PAD115," &    "PB07_15:PAD118," &    "PB07_16:PAD116," &    "TCK:PAD75," &    "TDI:PAD71," &    "TDO:PAD136," &    "TMS:PAD73," &    "VCCINT_1:PAD46," &    "VCCINT_2:PAD94," &    "VCCINT_3:PAD157," &    "VCCINT_VPP:PAD10," &    "VCCIO_1:PAD1," &    "VCCIO_2:PAD41," &    "VCCIO_3:PAD61," &    "VCCIO_4:PAD81," &    "VCCIO_5:PAD121," &    "VCCIO_6:PAD141," &    "VSSINT_1:PAD31," &    "VSSINT_2:PAD70," &    "VSSINT_3:PAD100," &    "VSSINT_4:PAD127," &    "VSSIO_1:PAD20," &    "VSSIO_2:PAD40," &    "VSSIO_3:PAD51," &    "VSSIO_4:PAD80," &    "VSSIO_5:PAD99," &    "VSSIO_6:PAD110," &    "VSSIO_7:PAD120," &    "VSSIO_8:PAD137," &    "VSSIO_9:PAD160";attribute TAP_SCAN_IN    of TDI : signal is true;attribute TAP_SCAN_OUT   of TDO : signal is true;attribute TAP_SCAN_MODE  of TMS : signal is true;attribute TAP_SCAN_CLOCK of TCK : signal is (1.00e+07, BOTH);attribute INSTRUCTION_LENGTH of XC95144 : entity is 8;attribute INSTRUCTION_OPCODE of XC95144 : entity is    "BYPASS ( 11111111)," &    "CONLD ( 11110000)," &    "EXTEST ( 00000000)," &    "FERASE ( 11101100)," &    "FBULK ( 11101101)," &    "FPGM ( 11101010)," &    "FPGMI ( 11101011)," &    "FVFY ( 11101110)," &    "FVFYI ( 11101111)," &    "HIGHZ ( 11111100)," &    "IDCODE ( 11111110)," &    "INTEST ( 00000010)," &    "ISCEN ( 11101000)," &    "SAMPLE ( 00000001)," &    "USERCODE ( 11111101)" ;attribute INSTRUCTION_CAPTURE of XC95144 : entity is "000XXX01";attribute INSTRUCTION_DISABLE of XC95144 : entity is "HIGHZ";attribute IDCODE_REGISTER of XC95144 : entity is    "0010" & "1001010100001000" & "00001001001" & "1";attribute USERCODE_REGISTER of XC95144 : entity is    "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";attribute REGISTER_ACCESS of XC95144 : entity is    "BYPASS ( CONLD, HIGHZ )," &    "ISCENABLE[12] ( ISCEN)," &    "ISCONFIGURATION[27] ( FERASE, FBULK, FPGM, FVFY)," &    "ISCDATA[10] ( FPGMI, FVFYI)";attribute BOUNDARY_CELLS of XC95144 : entity is        " BC_1";attribute BOUNDARY_LENGTH of XC95144 : entity is 432;attribute BOUNDARY_REGISTER of XC95144 : entity is    " 0 (BC_1, *, internal, X)," &    " 1 (BC_1, *, internal, X)," &    " 2 (BC_1, *, internal, X)," &    " 3 (BC_1, *, controlr, 0)," &    " 4 (BC_1, PB07_16, output3, X, 3, 0, Z)," &    " 5 (BC_1, PB07_16, input, X)," &    " 6 (BC_1, *, controlr, 0)," &    " 7 (BC_1, PB07_15, output3, X, 6, 0, Z)," &    " 8 (BC_1, PB07_15, input, X)," &    " 9 (BC_1, *, controlr, 0)," &    " 10 (BC_1, PB07_14, output3, X, 9, 0, Z)," &    " 11 (BC_1, PB07_14, input, X)," &    " 12 (BC_1, *, controlr, 0)," &    " 13 (BC_1, PB07_13, output3, X, 12, 0, Z)," &    " 14 (BC_1, PB07_13, input, X)," &    " 15 (BC_1, *, controlr, 0)," &    " 16 (BC_1, PB07_12, output3, X, 15, 0, Z)," &    " 17 (BC_1, PB07_12, input, X)," &    " 18 (BC_1, *, controlr, 0)," &    " 19 (BC_1, PB07_11, output3, X, 18, 0, Z)," &    " 20 (BC_1, PB07_11, input, X)," &    " 21 (BC_1, *, controlr, 0)," &    " 22 (BC_1, PB07_10, output3, X, 21, 0, Z)," &    " 23 (BC_1, PB07_10, input, X)," &    " 24 (BC_1, *, controlr, 0)," &    " 25 (BC_1, PB07_09, output3, X, 24, 0, Z)," &    " 26 (BC_1, PB07_09, input, X)," &    " 27 (BC_1, *, controlr, 0)," &    " 28 (BC_1, PB07_08, output3, X, 27, 0, Z)," &    " 29 (BC_1, PB07_08, input, X)," &    " 30 (BC_1, *, controlr, 0)," &    " 31 (BC_1, PB07_07, output3, X, 30, 0, Z)," &    " 32 (BC_1, PB07_07, input, X)," &    " 33 (BC_1, *, controlr, 0)," &    " 34 (BC_1, PB07_06, output3, X, 33, 0, Z)," &    " 35 (BC_1, PB07_06, input, X)," &    " 36 (BC_1, *, controlr, 0)," &    " 37 (BC_1, PB07_05, output3, X, 36, 0, Z)," &    " 38 (BC_1, PB07_05, input, X)," &    " 39 (BC_1, *, controlr, 0)," &    " 40 (BC_1, PB07_04, output3, X, 39, 0, Z)," &    " 41 (BC_1, PB07_04, input, X)," &    " 42 (BC_1, *, controlr, 0)," &    " 43 (BC_1, PB07_03, output3, X, 42, 0, Z)," &    " 44 (BC_1, PB07_03, input, X)," &    " 45 (BC_1, *, controlr, 0)," &    " 46 (BC_1, PB07_02, output3, X, 45, 0, Z)," &    " 47 (BC_1, PB07_02, input, X)," &    " 48 (BC_1, *, controlr, 0)," &    " 49 (BC_1, PB07_01, output3, X, 48, 0, Z)," &    " 50 (BC_1, PB07_01, input, X)," &    " 51 (BC_1, *, internal, X)," &    " 52 (BC_1, *, internal, X)," &    " 53 (BC_1, *, internal, X)," &    " 54 (BC_1, *, internal, X)," &    " 55 (BC_1, *, internal, X)," &    " 56 (BC_1, *, internal, X)," &    " 57 (BC_1, *, controlr, 0)," &    " 58 (BC_1, PB06_16, output3, X, 57, 0, Z)," &    " 59 (BC_1, PB06_16, input, X)," &    " 60 (BC_1, *, controlr, 0)," &    " 61 (BC_1, PB06_15, output3, X, 60, 0, Z)," &    " 62 (BC_1, PB06_15, input, X)," &    " 63 (BC_1, *, controlr, 0)," &    " 64 (BC_1, PB06_14, output3, X, 63, 0, Z)," &    " 65 (BC_1, PB06_14, input, X)," &    " 66 (BC_1, *, controlr, 0)," &    " 67 (BC_1, PB06_13, output3, X, 66, 0, Z)," &    " 68 (BC_1, PB06_13, input, X)," &    " 69 (BC_1, *, controlr, 0)," &    " 70 (BC_1, PB06_12, output3, X, 69, 0, Z)," &    " 71 (BC_1, PB06_12, input, X)," &    " 72 (BC_1, *, controlr, 0)," &    " 73 (BC_1, PB06_11, output3, X, 72, 0, Z)," &    " 74 (BC_1, PB06_11, input, X)," &    " 75 (BC_1, *, controlr, 0)," &    " 76 (BC_1, PB06_10, output3, X, 75, 0, Z)," &    " 77 (BC_1, PB06_10, input, X)," &    " 78 (BC_1, *, controlr, 0)," &    " 79 (BC_1, PB06_09, output3, X, 78, 0, Z)," &    " 80 (BC_1, PB06_09, input, X)," &    " 81 (BC_1, *, controlr, 0)," &    " 82 (BC_1, PB06_08, output3, X, 81, 0, Z)," &    " 83 (BC_1, PB06_08, input, X)," &    " 84 (BC_1, *, controlr, 0)," &    " 85 (BC_1, PB06_07, output3, X, 84, 0, Z)," &    " 86 (BC_1, PB06_07, input, X)," &    " 87 (BC_1, *, controlr, 0)," &    " 88 (BC_1, PB06_06, output3, X, 87, 0, Z)," &    " 89 (BC_1, PB06_06, input, X)," &    " 90 (BC_1, *, controlr, 0)," &    " 91 (BC_1, PB06_05, output3, X, 90, 0, Z)," &    " 92 (BC_1, PB06_05, input, X)," &    " 93 (BC_1, *, controlr, 0)," &    " 94 (BC_1, PB06_04, output3, X, 93, 0, Z)," &    " 95 (BC_1, PB06_04, input, X)," &    " 96 (BC_1, *, controlr, 0)," &    " 97 (BC_1, PB06_03, output3, X, 96, 0, Z)," &    " 98 (BC_1, PB06_03, input, X)," &    " 99 (BC_1, *, controlr, 0)," &    " 100 (BC_1, PB06_02, output3, X, 99, 0, Z)," &    " 101 (BC_1, PB06_02, input, X)," &    " 102 (BC_1, *, controlr, 0)," &    " 103 (BC_1, PB06_01, output3, X, 102, 0, Z)," &    " 104 (BC_1, PB06_01, input, X)," &    " 105 (BC_1, *, internal, X)," &    " 106 (BC_1, *, internal, X)," &    " 107 (BC_1, *, internal, X)," &    " 108 (BC_1, *, internal, X)," &    " 109 (BC_1, *, internal, X)," &    " 110 (BC_1, *, internal, X)," &    " 111 (BC_1, *, controlr, 0)," &    " 112 (BC_1, PB05_16, output3, X, 111, 0, Z)," &    " 113 (BC_1, PB05_16, input, X)," &    " 114 (BC_1, *, controlr, 0)," &    " 115 (BC_1, PB05_15, output3, X, 114, 0, Z)," &    " 116 (BC_1, PB05_15, input, X)," &    " 117 (BC_1, *, controlr, 0)," &    " 118 (BC_1, PB05_14, output3, X, 117, 0, Z)," &    " 119 (BC_1, PB05_14, input, X)," &    " 120 (BC_1, *, controlr, 0)," &    " 121 (BC_1, PB05_13, output3, X, 120, 0, Z)," &    " 122 (BC_1, PB05_13, input, X)," &    " 123 (BC_1, *, controlr, 0)," &    " 124 (BC_1, PB05_12, output3, X, 123, 0, Z)," &    " 125 (BC_1, PB05_12, input, X)," &    " 126 (BC_1, *, controlr, 0)," &    " 127 (BC_1, PB05_11, output3, X, 126, 0, Z)," &    " 128 (BC_1, PB05_11, input, X)," &    " 129 (BC_1, *, controlr, 0)," &    " 130 (BC_1, PB05_10, output3, X, 129, 0, Z)," &    " 131 (BC_1, PB05_10, input, X)," &    " 132 (BC_1, *, controlr, 0)," &    " 133 (BC_1, PB05_09, output3, X, 132, 0, Z)," &    " 134 (BC_1, PB05_09, input, X)," &    " 135 (BC_1, *, controlr, 0)," &    " 136 (BC_1, PB05_08, output3, X, 135, 0, Z)," &    " 137 (BC_1, PB05_08, input, X)," &    " 138 (BC_1, *, controlr, 0)," &    " 139 (BC_1, PB05_07, output3, X, 138, 0, Z)," &    " 140 (BC_1, PB05_07, input, X)," &    " 141 (BC_1, *, controlr, 0)," &    " 142 (BC_1, PB05_06, output3, X, 141, 0, Z)," &    " 143 (BC_1, PB05_06, input, X)," &    " 144 (BC_1, *, controlr, 0)," &    " 145 (BC_1, PB05_05, output3, X, 144, 0, Z)," &    " 146 (BC_1, PB05_05, input, X)," &    " 147 (BC_1, *, controlr, 0)," &    " 148 (BC_1, PB05_04, output3, X, 147, 0, Z)," &    " 149 (BC_1, PB05_04, input, X)," &    " 150 (BC_1, *, controlr, 0)," &    " 151 (BC_1, PB05_03, output3, X, 150, 0, Z)," &    " 152 (BC_1, PB05_03, input, X)," &    " 153 (BC_1, *, controlr, 0)," &    " 154 (BC_1, PB05_02, output3, X, 153, 0, Z)," &    " 155 (BC_1, PB05_02, input, X)," &    " 156 (BC_1, *, controlr, 0)," &    " 157 (BC_1, PB05_01, output3, X, 156, 0, Z)," &    " 158 (BC_1, PB05_01, input, X)," &    " 159 (BC_1, *, internal, X)," &    " 160 (BC_1, *, internal, X)," &    " 161 (BC_1, *, internal, X)," &    " 162 (BC_1, *, internal, X)," &    " 163 (BC_1, *, internal, X)," &    " 164 (BC_1, *, internal, X)," &    " 165 (BC_1, *, controlr, 0)," &    " 166 (BC_1, PB04_16, output3, X, 165, 0, Z)," &    " 167 (BC_1, PB04_16, input, X)," &    " 168 (BC_1, *, controlr, 0)," &    " 169 (BC_1, PB04_15, output3, X, 168, 0, Z)," &    " 170 (BC_1, PB04_15, input, X)," &    " 171 (BC_1, *, controlr, 0)," &    " 172 (BC_1, PB04_14, output3, X, 171, 0, Z)," &    " 173 (BC_1, PB04_14, input, X)," &    " 174 (BC_1, *, controlr, 0)," &    " 175 (BC_1, PB04_13, output3, X, 174, 0, Z)," &    " 176 (BC_1, PB04_13, input, X)," &    " 177 (BC_1, *, controlr, 0)," &    " 178 (BC_1, PB04_12, output3, X, 177, 0, Z)," &    " 179 (BC_1, PB04_12, input, X)," &    " 180 (BC_1, *, controlr, 0)," &    " 181 (BC_1, PB04_11, output3, X, 180, 0, Z)," &    " 182 (BC_1, PB04_11, input, X)," &    " 183 (BC_1, *, controlr, 0)," &    " 184 (BC_1, PB04_10, output3, X, 183, 0, Z)," &    " 185 (BC_1, PB04_10, input, X)," &    " 186 (BC_1, *, controlr, 0)," &    " 187 (BC_1, PB04_09, output3, X, 186, 0, Z)," &    " 188 (BC_1, PB04_09, input, X)," &    " 189 (BC_1, *, controlr, 0)," &    " 190 (BC_1, PB04_08, output3, X, 189, 0, Z)," &    " 191 (BC_1, PB04_08, input, X)," &    " 192 (BC_1, *, controlr, 0)," &    " 193 (BC_1, PB04_07, output3, X, 192, 0, Z)," &    " 194 (BC_1, PB04_07, input, X)," &    " 195 (BC_1, *, controlr, 0)," &    " 196 (BC_1, PB04_06, output3, X, 195, 0, Z)," &    " 197 (BC_1, PB04_06, input, X)," &    " 198 (BC_1, *, controlr, 0)," &    " 199 (BC_1, PB04_05, output3, X, 198, 0, Z)," &    " 200 (BC_1, PB04_05, input, X)," &    " 201 (BC_1, *, controlr, 0)," &    " 202 (BC_1, PB04_04, output3, X, 201, 0, Z)," &    " 203 (BC_1, PB04_04, input, X)," &    " 204 (BC_1, *, controlr, 0)," &    " 205 (BC_1, PB04_03, output3, X, 204, 0, Z)," &    " 206 (BC_1, PB04_03, input, X)," &    " 207 (BC_1, *, controlr, 0)," &    " 208 (BC_1, PB04_02, output3, X, 207, 0, Z)," &    " 209 (BC_1, PB04_02, input, X)," &    " 210 (BC_1, *, controlr, 0)," &    " 211 (BC_1, PB04_01, output3, X, 210, 0, Z)," &    " 212 (BC_1, PB04_01, input, X)," &    " 213 (BC_1, *, controlr, 0)," &    " 214 (BC_1, PB04_00, output3, X, 213, 0, Z)," &    " 215 (BC_1, PB04_00, input, X)," &    " 216 (BC_1, *, internal, X)," &    " 217 (BC_1, *, internal, X)," &    " 218 (BC_1, *, internal, X)," &    " 219 (BC_1, *, controlr, 0)," &    " 220 (BC_1, PB03_16, output3, X, 219, 0, Z)," &    " 221 (BC_1, PB03_16, input, X)," &    " 222 (BC_1, *, controlr, 0)," &    " 223 (BC_1, PB03_15, output3, X, 222, 0, Z)," &    " 224 (BC_1, PB03_15, input, X)," &    " 225 (BC_1, *, controlr, 0)," &    " 226 (BC_1, PB03_14, output3, X, 225, 0, Z)," &    " 227 (BC_1, PB03_14, input, X)," &    " 228 (BC_1, *, controlr, 0)," &    " 229 (BC_1, PB03_13, output3, X, 228, 0, Z)," &    " 230 (BC_1, PB03_13, input, X)," &    " 231 (BC_1, *, controlr, 0)," &    " 232 (BC_1, PB03_12, output3, X, 231, 0, Z)," &    " 233 (BC_1, PB03_12, input, X)," &    " 234 (BC_1, *, controlr, 0)," &    " 235 (BC_1, PB03_11, output3, X, 234, 0, Z)," &    " 236 (BC_1, PB03_11, input, X)," &    " 237 (BC_1, *, controlr, 0)," &    " 238 (BC_1, PB03_10, output3, X, 237, 0, Z)," &    " 239 (BC_1, PB03_10, input, X)," &    " 240 (BC_1, *, controlr, 0)," &    " 241 (BC_1, PB03_09, output3, X, 240, 0, Z)," &    " 242 (BC_1, PB03_09, input, X)," &    " 243 (BC_1, *, controlr, 0)," &    " 244 (BC_1, PB03_08, output3, X, 243, 0, Z)," &    " 245 (BC_1, PB03_08, input, X)," &    " 246 (BC_1, *, controlr, 0)," &    " 247 (BC_1, PB03_07, output3, X, 246, 0, Z)," &    " 248 (BC_1, PB03_07, input, X)," &    " 249 (BC_1, *, controlr, 0)," &    " 250 (BC_1, PB03_06, output3, X, 249, 0, Z)," &    " 251 (BC_1, PB03_06, input, X)," &    " 252 (BC_1, *, controlr, 0)," &    " 253 (BC_1, PB03_05, output3, X, 252, 0, Z)," &    " 254 (BC_1, PB03_05, input, X)," &    " 255 (BC_1, *, controlr, 0)," &    " 256 (BC_1, PB03_04, output3, X, 255, 0, Z)," &    " 257 (BC_1, PB03_04, input, X)," &    " 258 (BC_1, *, controlr, 0)," &    " 259 (BC_1, PB03_03, output3, X, 258, 0, Z)," &    " 260 (BC_1, PB03_03, input, X)," &    " 261 (BC_1, *, controlr, 0)," &    " 262 (BC_1, PB03_02, output3, X, 261, 0, Z)," &    " 263 (BC_1, PB03_02, input, X)," &    " 264 (BC_1, *, controlr, 0)," &    " 265 (BC_1, PB03_01, output3, X, 264, 0, Z)," &    " 266 (BC_1, PB03_01, input, X)," &    " 267 (BC_1, *, controlr, 0)," &    " 268 (BC_1, PB03_00, output3, X, 267, 0, Z)," &    " 269 (BC_1, PB03_00, input, X)," &    " 270 (BC_1, *, internal, X)," &    " 271 (BC_1, *, internal, X)," &    " 272 (BC_1, *, internal, X)," &    " 273 (BC_1, *, controlr, 0)," &    " 274 (BC_1, PB02_16, output3, X, 273, 0, Z)," &    " 275 (BC_1, PB02_16, input, X)," &    " 276 (BC_1, *, controlr, 0)," &    " 277 (BC_1, PB02_15, output3, X, 276, 0, Z)," &    " 278 (BC_1, PB02_15, input, X)," &    " 279 (BC_1, *, controlr, 0)," &    " 280 (BC_1, PB02_14, output3, X, 279, 0, Z)," &    " 281 (BC_1, PB02_14, input, X)," &    " 282 (BC_1, *, controlr, 0)," &    " 283 (BC_1, PB02_13, output3, X, 282, 0, Z)," &    " 284 (BC_1, PB02_13, input, X)," &    " 285 (BC_1, *, controlr, 0)," &    " 286 (BC_1, PB02_12, output3, X, 285, 0, Z)," &    " 287 (BC_1, PB02_12, input, X)," &    " 288 (BC_1, *, controlr, 0)," &    " 289 (BC_1, PB02_11, output3, X, 288, 0, Z)," &    " 290 (BC_1, PB02_11, input, X)," &    " 291 (BC_1, *, controlr, 0)," &    " 292 (BC_1, PB02_10, output3, X, 291, 0, Z)," &    " 293 (BC_1, PB02_10, input, X)," &    " 294 (BC_1, *, controlr, 0)," &    " 295 (BC_1, PB02_09, output3, X, 294, 0, Z)," &    " 296 (BC_1, PB02_09, input, X)," &    " 297 (BC_1, *, controlr, 0)," &    " 298 (BC_1, PB02_08, output3, X, 297, 0, Z)," &    " 299 (BC_1, PB02_08, input, X)," &    " 300 (BC_1, *, controlr, 0)," &    " 301 (BC_1, PB02_07, output3, X, 300, 0, Z)," &    " 302 (BC_1, PB02_07, input, X)," &    " 303 (BC_1, *, controlr, 0)," &    " 304 (BC_1, PB02_06, output3, X, 303, 0, Z)," &    " 305 (BC_1, PB02_06, input, X)," &    " 306 (BC_1, *, controlr, 0)," &    " 307 (BC_1, PB02_05, output3, X, 306, 0, Z)," &    " 308 (BC_1, PB02_05, input, X)," &    " 309 (BC_1, *, controlr, 0)," &    " 310 (BC_1, PB02_04, output3, X, 309, 0, Z)," &    " 311 (BC_1, PB02_04, input, X)," &    " 312 (BC_1, *, controlr, 0)," &    " 313 (BC_1, PB02_03, output3, X, 312, 0, Z)," &    " 314 (BC_1, PB02_03, input, X)," &    " 315 (BC_1, *, controlr, 0)," &    " 316 (BC_1, PB02_02, output3, X, 315, 0, Z)," &    " 317 (BC_1, PB02_02, input, X)," &    " 318 (BC_1, *, controlr, 0)," &    " 319 (BC_1, PB02_01, output3, X, 318, 0, Z)," &    " 320 (BC_1, PB02_01, input, X)," &    " 321 (BC_1, *, controlr, 0)," &    " 322 (BC_1, PB02_00, output3, X, 321, 0, Z)," &    " 323 (BC_1, PB02_00, input, X)," &    " 324 (BC_1, *, internal, X)," &    " 325 (BC_1, *, internal, X)," &    " 326 (BC_1, *, internal, X)," &    " 327 (BC_1, *, controlr, 0)," &    " 328 (BC_1, PB01_16, output3, X, 327, 0, Z)," &    " 329 (BC_1, PB01_16, input, X)," &    " 330 (BC_1, *, controlr, 0)," &    " 331 (BC_1, PB01_15, output3, X, 330, 0, Z)," &    " 332 (BC_1, PB01_15, input, X)," &    " 333 (BC_1, *, controlr, 0)," &    " 334 (BC_1, PB01_14, output3, X, 333, 0, Z)," &    " 335 (BC_1, PB01_14, input, X)," &    " 336 (BC_1, *, controlr, 0)," &    " 337 (BC_1, PB01_13, output3, X, 336, 0, Z)," &    " 338 (BC_1, PB01_13, input, X)," &    " 339 (BC_1, *, controlr, 0)," &    " 340 (BC_1, PB01_12, output3, X, 339, 0, Z)," &    " 341 (BC_1, PB01_12, input, X)," &    " 342 (BC_1, *, controlr, 0)," &    " 343 (BC_1, PB01_11, output3, X, 342, 0, Z)," &    " 344 (BC_1, PB01_11, input, X)," &    " 345 (BC_1, *, controlr, 0)," &    " 346 (BC_1, PB01_10, output3, X, 345, 0, Z)," &    " 347 (BC_1, PB01_10, input, X)," &    " 348 (BC_1, *, controlr, 0)," &    " 349 (BC_1, PB01_09, output3, X, 348, 0, Z)," &    " 350 (BC_1, PB01_09, input, X)," &    " 351 (BC_1, *, controlr, 0)," &    " 352 (BC_1, PB01_08, output3, X, 351, 0, Z)," &    " 353 (BC_1, PB01_08, input, X)," &    " 354 (BC_1, *, controlr, 0)," &    " 355 (BC_1, PB01_07, output3, X, 354, 0, Z)," &    " 356 (BC_1, PB01_07, input, X)," &    " 357 (BC_1, *, controlr, 0)," &    " 358 (BC_1, PB01_06, output3, X, 357, 0, Z)," &    " 359 (BC_1, PB01_06, input, X)," &    " 360 (BC_1, *, controlr, 0)," &    " 361 (BC_1, PB01_05, output3, X, 360, 0, Z)," &    " 362 (BC_1, PB01_05, input, X)," &    " 363 (BC_1, *, controlr, 0)," &    " 364 (BC_1, PB01_04, output3, X, 363, 0, Z)," &    " 365 (BC_1, PB01_04, input, X)," &    " 366 (BC_1, *, controlr, 0)," &    " 367 (BC_1, PB01_03, output3, X, 366, 0, Z)," &    " 368 (BC_1, PB01_03, input, X)," &    " 369 (BC_1, *, controlr, 0)," &    " 370 (BC_1, PB01_02, output3, X, 369, 0, Z)," &    " 371 (BC_1, PB01_02, input, X)," &    " 372 (BC_1, *, controlr, 0)," &    " 373 (BC_1, PB01_01, output3, X, 372, 0, Z)," &    " 374 (BC_1, PB01_01, input, X)," &    " 375 (BC_1, *, controlr, 0)," &    " 376 (BC_1, PB01_00, output3, X, 375, 0, Z)," &    " 377 (BC_1, PB01_00, input, X)," &    " 378 (BC_1, *, internal, X)," &    " 379 (BC_1, *, internal, X)," &    " 380 (BC_1, *, internal, X)," &    " 381 (BC_1, *, controlr, 0)," &    " 382 (BC_1, PB00_16, output3, X, 381, 0, Z)," &    " 383 (BC_1, PB00_16, input, X)," &    " 384 (BC_1, *, controlr, 0)," &    " 385 (BC_1, PB00_15, output3, X, 384, 0, Z)," &    " 386 (BC_1, PB00_15, input, X)," &    " 387 (BC_1, *, controlr, 0)," &    " 388 (BC_1, PB00_14, output3, X, 387, 0, Z)," &    " 389 (BC_1, PB00_14, input, X)," &    " 390 (BC_1, *, controlr, 0)," &    " 391 (BC_1, PB00_13, output3, X, 390, 0, Z)," &    " 392 (BC_1, PB00_13, input, X)," &    " 393 (BC_1, *, controlr, 0)," &    " 394 (BC_1, PB00_12, output3, X, 393, 0, Z)," &    " 395 (BC_1, PB00_12, input, X)," &    " 396 (BC_1, *, controlr, 0)," &    " 397 (BC_1, PB00_11, output3, X, 396, 0, Z)," &    " 398 (BC_1, PB00_11, input, X)," &    " 399 (BC_1, *, controlr, 0)," &    " 400 (BC_1, PB00_10, output3, X, 399, 0, Z)," &    " 401 (BC_1, PB00_10, input, X)," &    " 402 (BC_1, *, controlr, 0)," &    " 403 (BC_1, PB00_09, output3, X, 402, 0, Z)," &    " 404 (BC_1, PB00_09, input, X)," &    " 405 (BC_1, *, controlr, 0)," &    " 406 (BC_1, PB00_08, output3, X, 405, 0, Z)," &    " 407 (BC_1, PB00_08, input, X)," &    " 408 (BC_1, *, controlr, 0)," &    " 409 (BC_1, PB00_07, output3, X, 408, 0, Z)," &    " 410 (BC_1, PB00_07, input, X)," &    " 411 (BC_1, *, controlr, 0)," &    " 412 (BC_1, PB00_06, output3, X, 411, 0, Z)," &    " 413 (BC_1, PB00_06, input, X)," &    " 414 (BC_1, *, controlr, 0)," &    " 415 (BC_1, PB00_05, output3, X, 414, 0, Z)," &    " 416 (BC_1, PB00_05, input, X)," &    " 417 (BC_1, *, controlr, 0)," &    " 418 (BC_1, PB00_04, output3, X, 417, 0, Z)," &    " 419 (BC_1, PB00_04, input, X)," &    " 420 (BC_1, *, controlr, 0)," &    " 421 (BC_1, PB00_03, output3, X, 420, 0, Z)," &    " 422 (BC_1, PB00_03, input, X)," &    " 423 (BC_1, *, controlr, 0)," &    " 424 (BC_1, PB00_02, output3, X, 423, 0, Z)," &    " 425 (BC_1, PB00_02, input, X)," &    " 426 (BC_1, *, controlr, 0)," &    " 427 (BC_1, PB00_01, output3, X, 426, 0, Z)," &    " 428 (BC_1, PB00_01, input, X)," &    " 429 (BC_1, *, controlr, 0)," &    " 430 (BC_1, PB00_00, output3, X, 429, 0, Z)," &    " 431 (BC_1, PB00_00, input, X)";end XC95144;

4. BSDL文件的应用
BSDL文件可以在一些边界扫描的软件中被使用,如XJTAG,TopJTAG等等,通过加载对应的BSDL文件可以实现对芯片外部所有管脚的读取和控制。具体使用方法,我会在后面的文章介绍。