1 2#------------------------------------------------------------------------------ 3# $File: xilinx,v 1.10 2022/12/18 14:59:32 christos Exp $ 4# This is Aaron's attempt at a MAGIC file for Xilinx .bit files. 5# Xilinx-Magic@RevRagnarok.com 6# Got the info from FPGA-FAQ 0026 7# 8# Rewritten to use pstring/H instead of hardcoded lengths by O. Freyermuth, 9# fixes at least reading of bitfiles from Spartan 2, 3, 6. 10# http://www.fpga-faq.com/FAQ_Pages/0026_Tell_me_about_bit_files.htm 11# 12# First there is the sync header and its length 130 beshort 0x0009 14>2 belong =0x0ff00ff0 15>>&0 belong =0x0ff00ff0 16>>>&0 byte =0x00 17>>>&1 beshort =0x0001 18>>>&3 string a Xilinx BIT data 19# Next is a Pascal-style string with the NCD name. We want to capture that. 20>>>>&0 pstring/H x - from %s 21# And then 'b' 22>>>>>&1 string b 23# Then the model / part number: 24>>>>>>&0 pstring/H x - for %s 25# Then 'c' 26>>>>>>>&1 string c 27# Then the build-date 28>>>>>>>>&0 pstring/H x - built %s 29# Then 'd' 30>>>>>>>>>&1 string d 31# Then the build-time 32>>>>>>>>>>&0 pstring/H x \b(%s) 33# Then 'e' 34>>>>>>>>>>>&1 string e 35# And length of data 36>>>>>>>>>>>>&0 belong x - data length %#x 37 38# Raw bitstream files 390 long 0xffffffff 40>&0 belong 0xaa995566 Xilinx RAW bitstream (.BIN) 41 42# AXLF (xclbin) files used by AMD/Xilinx accelerators. 43# The file format is defined by XRT source tree: 44# https://github.com/Xilinx/XRT/blob/master/src/runtime_src/core/include/xclbin.h 45# Display file size, creation date, accelerator shell name, xclbin uuid and 46# number of sections. 47 480 string xclbin2 AMD/Xilinx accelerator AXLF (xclbin) file 49>0x130 lequad x \b, %lld bytes 50>0x138 leqdate x \b, created %s 51>0x160 string >0 \b, shell "%.64s" 52>0x1a0 ubelong x \b, uuid %08x 53>0x1a4 ubeshort x \b-%04x 54>0x1a6 ubeshort x \b-%04x 55>0x1a8 ubeshort x \b-%04x 56>0x1aa ubelong x \b-%08x 57>0x1ae ubeshort x \b%04x 58>0x1c0 lelong x \b, %d sections