Если еще актуально, соответствие пинов индексам в BSR цепочке для 5CEBA9F23C7.
CODE
Device name : 5CEBA9F23C7
Total BSR cells : 576
----------------------------------------------------------------------------------------------------
BONDID | PAD | PINID | JTAG_BSR | MCF_NAME | DESIGN_NAME | IO_CELL_NAME | AUX_FUNCTION_NAME
----------------------------------------------------------------------------------------------------
pad: 627 | L6 | pin: 242 | bsr: 561 | X3Y115SUB_LOC3 | MSEL0 | IO_CONFIG | MSEL0
pad: 629 | J6 | pin: 244 | bsr: 562 | X3Y115SUB_LOC9 | MSEL1 | IO_CONFIG | MSEL1
pad: 632 | A2 | pin: 247 | bsr: 563 | X4Y115SUB_LOC6 | MSEL2 | IO_CONFIG | MSEL2
pad: 633 | E5 | pin: 248 | bsr: 564 | X4Y115SUB_LOC9 | MSEL3 | IO_CONFIG | MSEL3
pad: 635 | F3 | pin: 250 | bsr: 565 | X7Y115SUB_LOC3 | MSEL4 | IO_CONFIG | MSEL4
pad: 636 | C5 | pin: 251 | bsr: 566 | X119Y115SUB_LOC0 | UCLEAR | IO_CONFIG | GND
pad: 634 | A4 | pin: 249 | bsr: 567 | X7Y115SUB_LOC0 | NCONFIG | IO_CONFIG | nCONFIG
pad: 631 | G5 | pin: 246 | bsr: 568 | X4Y115SUB_LOC3 | NCE | IO_CONFIG | nCE
pad: 630 | H5 | pin: 245 | bsr: 569 | X4Y115SUB_LOC0 | NSTATUS | IO_NSTATCONDONE | nSTATUS
pad: 628 | K6 | pin: 243 | bsr: 570 | X3Y115SUB_LOC6 | CONF_DONE | IO_NSTATCONDONE | CONF_DONE
pad: 64 | V3 | pin: 12 | bsr: 571 | X9Y0SUB_LOC0 | DCLK | IO_CONFIG | DCLK
pad: 65 | AB4 | pin: 13 | bsr: 572 | X9Y0SUB_LOC3 | SPI_DATA0 | IO_CONFIG | AS_DATA0, ASDO, DATA0
pad: 63 | AB3 | pin: 11 | bsr: 573 | X7Y0SUB_LOC9 | SPI_DATA1 | IO_CONFIG | AS_DATA1, DATA1
pad: 61 | AA5 | pin: 9 | bsr: 574 | X7Y0SUB_LOC3 | SPI_DATA2 | IO_CONFIG | AS_DATA2, DATA2
pad: 59 | T4 | pin: 7 | bsr: 575 | X4Y0SUB_LOC9 | SPI_DATA3 | IO_CONFIG | AS_DATA3, DATA3
pad: 57 | R4 | pin: 5 | bsr: 576 | X4Y0SUB_LOC3 | NCSO | IO_CONFIG | nCSO, DATA4
Дальше ручками отредактировать BSDL файл в нужном месте.
Это скрипт для генерации полного списка.
Вызов dump_bsr_info <partname>, partname - полное название устройства включая "спидрейт" : 5CEBA9F23
C7CODE
load_package advanced_device
proc dump_bsr_info { part } {
if { [catch [load_device -part $part] ] } {
puts "Partname $part not exist"
} else {
puts "Device name : $part"
dump_ios
}
unload_device
}
proc dump_ios {} {
set pad_cnt [ get_pad_data INT_PAD_COUNT ]
set pin_cnt [ get_pkg_data INT_PIN_COUNT ]
set bsr_count [ get_pad_data int_jtag_bsr_count ]
set pad_name0 ""
set pad_ic_name0 ""
set pad_ic_name1 ""
set pad_ic_name2 ""
set pad_ic_name3 ""
set pad_ic_name4 ""
set pad_ic_name5 ""
set pad_pin_id ""
set pad_wire_id ""
set pad_jtag_bsr ""
puts "Total BSR cells : $bsr_count"
puts [string repeat "-" 100]
set output [format "%8s | %4s | %8s | %8s | %18s | %10s | %12s | %10s" BONDID PAD PINID JTAG_BSR MCF_NAME DESIGN_NAME IO_CELL_NAME AUX_FUNCTION_NAME]
puts $output
puts [string repeat "-" 100]
for { set i 0 } { $i < $pad_cnt } { incr i} {
set pad_jtag_bsr -1
if { [ get_pad_data -pad $i BOOL_IS_BONDED] } {
catch { set pad_name0 [ get_pad_data -pad $i STRING_USER_PIN_NAME ] } { set pad_name0 "NA" }
catch { set pad_ic_name0 [ get_pad_data -pad $i STRING_MCF_NAME ] } { set pad_ic_name0 "NA" }
catch { set pad_ic_name1 [ get_pad_data -pad $i STRING_IC_DESIGN_NAME ] } { set pad_ic_name1 "NA" }
catch { set pad_ic_name2 [ get_pad_data -pad $i STRING_IC_IO_CELL_NAME ] } { set pad_ic_name2 "NA" }
catch { set pad_ic_name3 [ get_pad_data -pad $i STRING_IC_IO_BLOCK_CELL_NAME ] } { set pad_ic_name3 "NA" }
catch { set pad_ic_name4 [ get_pad_data -pad $i STRING_AUXILIARY_FUNCTION_NAME ] } { set pad_ic_name4 "NA" }
catch { set pad_ic_name5 [ get_pad_data -pad $i STRING_IO_DECODER_NAME ] } { set pad_ic_name5 "NA" }
catch { set pad_pin_id [ get_pad_data -pad $i INT_PIN_ID ] } { set pad_pin_id -1 }
catch { set pad_wire_id [ get_pad_data -pad $i INT_WIREBOND_PAD_NUMBER ] } { set pad_wire_id -1 }
catch { set pad_jtag_bsr [ get_pad_data -pad $i INT_JTAG_BSR_INDEX ] } { set pad_jtag_bsr -1}
} else {
catch { set pad_name0 [ get_pad_data -pad $i STRING_USER_PIN_NAME ] } { set pad_name0 "NA" }
catch { set pad_ic_name0 [ get_pad_data -pad $i STRING_MCF_NAME ] } { set pad_ic_name0 "NA" }
catch { set pad_ic_name1 [ get_pad_data -pad $i STRING_IC_DESIGN_NAME ] } { set pad_ic_name1 "NA" }
catch { set pad_ic_name2 [ get_pad_data -pad $i STRING_IC_IO_CELL_NAME ] } { set pad_ic_name2 "NA" }
catch { set pad_ic_name3 [ get_pad_data -pad $i STRING_IC_IO_BLOCK_CELL_NAME ] } { set pad_ic_name3 "NA" }
catch { set pad_ic_name4 [ get_pad_data -pad $i STRING_AUXILIARY_FUNCTION_NAME ] } { set pad_ic_name4 "NA" }
catch { set pad_ic_name5 [ get_pad_data -pad $i STRING_IO_DECODER_NAME ] } { set pad_ic_name5 "NA" }
catch { set pad_pin_id [ get_pad_data -pad $i INT_PIN_ID ] } { set pad_pin_id -1 }
catch { set pad_wire_id [ get_pad_data -pad $i INT_WIREBOND_PAD_NUMBER ] } { set pad_wire_id -1 }
catch { set pad_jtag_bsr [ get_pad_data -pad $i INT_JTAG_BSR_INDEX ] } { set pad_jtag_bsr -1}
}
set output [format "pad:%4d | %4s | pin:%4d | bsr:%4d | %18s | %10s | %12s | %10s" $i $pad_name0 $pad_pin_id $pad_jtag_bsr $pad_ic_name0 $pad_ic_name1 $pad_ic_name2 $pad_ic_name4]
puts $output
}
puts [string repeat "-" 100]
}
Можно отредактировать стандартный BSDL генератор, но лень.
Подправленный BSDL генератор. ( из папки $... \tcl\internal\eda_bsd\ )
bsdl_utility.tcl.gz ( 11.44 килобайт )
Кол-во скачиваний: 144BSDL с конфигурационными выводами.
5CEBA9F23C7_pre.bsd.gz ( 12.04 килобайт )
Кол-во скачиваний: 152