文章目录
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 Library
https://www.bsdl.info/
这个网站几乎包括所有支持JTAG芯片的BSDL文件,超过100家半导体公司的上万款芯片,包括MCU、DSP、PowerPC、CPLD、FPGA等,现在还在持续更新中。
支持通过芯片型号或IDCODE搜索对应的BSDL文件,可以在线进行预览,非常方便
方式2:各芯片的官方网站
在各大芯片厂商的官方网站一般会提供BSDL文件,下面以Xilinx、Altera、Microsemi、ST意法半导体为例,介绍如何获取BSDL文件。
Xilinx 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
Altera 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 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.zip
STM32F2:
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.zip
STM32F17:
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 CPLD
entity XC95144 is
generic (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文件可以实现对芯片外部所有管脚的读取和控制。具体使用方法,我会在后面的文章介绍。