Bitstream file starts with comment section, that contains plain text with metadata about project. It finishes with empty line.
Example:
# Anlogic Infotech Corporation ASCII Bitstream
# Version: 4.2.885
# Design name: system
# Architecture: eagle_s20
# Package: BG256
# Date: 2018/11/14 10:50
# Bitstream CRC: 0111010001100000
# USER CODE: 00000000000000000000000000000000
After that data is packed in blocks. Before each block there is a 16 bit big-endian value containing size in bits of block data.
Example:
Size | Data |
---|---|
0080 | ffffffffffffffffffffffffffffffff |
0080 | ffffffffffffffffffffffffffffffff |
0020 | cc55aa33 |
0050 | f00000060a014c35a3bd |
0050 | c20000066900050089a5 |
First three blocks are presenting bitstream start signature. Data also finish with thwo all-ff blocks.
Command | Flag | Size | Data (CRC if flag 0) | Description |
---|---|---|---|---|
f0 | 00 | 0006 | 0a014c35 a3bd | Device ID |
c2 | 00 | 0006 | 69000500 89a5 | CFG_1 |
c3 | 00 | 0006 | d0b04bb0 43f3 | CFG_2 |
c7 | 00 | 0006 | 04eb01e8 2ac6 | FRAMES |
c8 | 00 | 0006 | 00000480 9888 | |
c1 | 00 | 0006 | 00000000 13be | VERSION_UCODE |
ca | 00 | 0006 | 00000000 a384 | |
c5 | 00 | 0006 | 00000038 c333 | |
f1 | 00 | 0004 | 0000 78af | RESET_CRC |
f3 | 00 | 00a0 | xxxxxxxx xxxx | |
ec | f0 | 0001 | This is number of blocks to follow + 1 block of 78 zeros | |
f7 | 00 | 0004 | 0000 e8aa | Done |
CRC algorithm used is: CRC-16/BUYPASS
FRAMES:1075 BYTES_PER_FRAME:257 (2056 bits) BYTES_PER_MEM_FRAME:1152 (9216 bits)
Device | Part | Package | Device ID |
---|---|---|---|
AL3A06LG144C7 | al3_6 | LQFP144 | 10006c31 |
AL3A06BG256C7 | al3_6 | BGA256 | 10006c31 |
AL3A10LG144C7 | al3_10 | LQFP144 | 18006c31 |
AL3A10BG256C7 | al3_10 | BGA256 | 18006c31 |
AL3A10BG256B | al3_10 | BGA256B | 14006c31 |
AL3S10LG144 | al3_s10 | LQFP144 | 12006c31 * |
AL3S10NG88 | al3_s10 | QFN88 | 12006c31 * |
AL3A10NG88 | al3_s10 | QFN88 | 12006c31 * |
* device id not written in bitstream at all
Device | Part | Package | Device ID |
---|---|---|---|
EF1L300LG100 | elf_3 | LXLQFP100 | 112d0c33 |
EF1A300LG100 | elf_3 | AMLQFP100 | 152d0c33 |
EF1A300LG44 | elf_3 | AMLQFP44 | 122d0c33 |
EF1L650LG100 | elf_6 | LXLQFP100 | 012d0c33 |
EF1L650LG144 | elf_6 | LXLQFP144 | 002d0c33 |
EF1A650LG100 | elf_6 | AMLQFP100 | 052d0c33 |
EF1A650LG144 | elf_6 | AMLQFP144 | 042d0c33 |
FRAMES:765 BYTES_PER_FRAME:204 (1632 bits) BYTES_PER_MEM_FRAME:1152 (9216 bits)
Device | Part | Package | Device ID |
---|---|---|---|
EF2L15LG100B | ef2_1 | EF2L15LG100B | 04004c37 |
EF2L15LG144B | ef2_1 | EF2L15LG144B | 04004c37 |
EF2L15BG256B | ef2_1 | EF2L15BG256B | 04004c37 |
EF2L25XG42B | ef2_2 | EF2L25XG42B | 01004c37 |
EF2L25BG256B | ef2_2 | EF2L25BG256B | 01004c37 |
EF2L45LG144B | ef2_4 | EF2L45LG144B | 03004c37 |
EF2L45BG256B | ef2_4 | EF2L45BG256B | 03004c37 |
EF2M45LG64B | ef2_4 | EF2M45LG64B | 00004c37 |
EF2M45LG48B | ef2_4 | EF2M45LG48B | 00004c37 |
EF2S45VG81C | ef2_s4 | EF2S45VG81C | 02004c37 |
EF2M45VG81C | ef2_s4 | EF2M45VG81C | 02004c37 |
ef3_1 and ef3_2 FRAMES:765 BYTES_PER_FRAME:204 (1632 bits) BYTES_PER_MEM_FRAME:1152 (9216 bits)
ef3_4 and ef4_9 FRAMES:1046 BYTES_PER_FRAME:286 (2288 bits) BYTES_PER_MEM_FRAME:1152 (9216 bits)
Device | Part | Package | Device ID |
---|---|---|---|
EF3L15CG256B | ef3_1 | EF3L15CG256B | 09004c37 |
EF3L25CG256B | ef3_2 | EF3L25CG256B | 0a004c37 |
EF3L40CG332B | ef3_4 | EF3L40CG332B | 02008c3b |
EF3L40CG324B | ef3_4 | EF3L40CG324B | 04008c3b |
EF3L90CG400B | ef3_9 | EF3L90CG400B | 00008c3b |
FRAMES:1259 BYTES_PER_FRAME:488 (3904 bits) BYTES_PER_MEM_FRAME:1152 (9216 bits)
Device | Part | Package | Device ID |
---|---|---|---|
EG4X15BG256 | eagle_15 | BGA256X | 00014c35 |
EG4A15BG256 | eagle_15 | BGA256A | 0e014c35 |
EG4X20BG256 | eagle_20 | BGA256X | 00014c35 |
EG4A20BG256 | eagle_20 | BGA256A | 08014c35 |
EG4A20NG88 | eagle_20 | QFN88 | 0c014c35 |
EG4D20EG176 | eagle_s20 | EQFP176 | 04014c35 |
EG4S20BG256 | eagle_s20 | BG256 | 0a014c35 |
EG4S20NG88 | eagle_s20 | QFN88 | 06014c35 |
EG4S20CG324 | eagle_s20 | CG324 | 02014c35 |