0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_length |
service_id |
service
param byte 0 |
service
param byte 1 |
service
param byte 2 |
service
param byte 3 |
service
param byte 4 |
service
param byte 5 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data
byte 0 |
data
byte 1 |
data
byte 2 |
data
byte 3 |
data
byte 4 |
data
byte 5 |
data
byte 6 |
data
byte 7 |
||||||||
[...] |
|||||||||||||||
data byte
2032 |
data
byte 2033 |
data
byte 2034 |
data
byte 2035 |
data
byte 2036 |
data
byte 2037 |
data
byte 2038 |
data
byte 2039 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_length |
service_resp_id + 0x80 |
return
code |
return
byte 0 |
return
byte 1 |
return
byte 2 |
return
byte 3 |
return
byte 4 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data
byte 0 |
data
byte 1 |
data
byte 2 |
data
byte 3 |
data
byte 4 |
data
byte 5 |
data
byte 6 |
data
byte 7 |
||||||||
[...] |
|||||||||||||||
data byte
2032 |
data
byte 2033 |
data
byte 2034 |
data
byte 2035 |
data
byte 2036 |
data
byte 2037 |
data
byte 2038 |
data
byte 2039 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len |
service_id = 0x00 |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len |
service_resp_id = 0x80 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
0x03 |
0x00 |
||||||||||||||
0x01 |
0x23 |
0x45 |
0x67 |
0x89 |
0xAB |
0xCD |
0xEF |
||||||||
0xEF |
0x01 |
0x23 |
0x45 |
0x67 |
0x89 |
0xAB |
0xCD |
||||||||
0xCD |
0xEF |
0x01 |
0x23 |
0x45 |
0x67 |
0x89 |
0xAB |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
0x03 |
0x80 |
||||||||||||||
0x01 |
0x23 |
0x45 |
0x67 |
0x89 |
0xAB |
0xCD |
0xEF |
||||||||
0xEF |
0x01 |
0x23 |
0x45 |
0x67 |
0x89 |
0xAB |
0xCD |
||||||||
0xCD |
0xEF |
0x01 |
0x23 |
0x45 |
0x67 |
0x89 |
0xAB |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service_id = 0x02 |
(A)
row |
(B) major |
(C)
minor |
(D)
length |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service_resp_id = 0x82 |
return_code |
A |
FLR_READ_TARGET_ROW |
Row offset for read | 1 byte |
B |
FLR_READ_TARGET_MAJ | Major offset for read | 1 byte |
C |
FLR_READ_TARGET_MIN |
Minor offset for read | 1 byte |
D |
FLR_READ_TARGET_LEN |
Length of the read (in frames) | 1 byte |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service
id = 0x03 |
(A)
frame buffer offset |
(B)
write length |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service
resp. id = 0x83 |
return
code |
A |
FLR_WRITE_TARGET_OFF |
Offset in the frame buffer (in
frames) | 2 bytes |
B |
FLR_WRITE_TARGET_LEN |
Write length (in frames) | 2 bytes |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service_id = 0x04 |
(A) word offset |
(B) word count |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len |
service
resp. id = 0x84 |
return
code |
(C) buffer length |
||||||||||||
buffer
word 1 |
buffer
word 2 |
buffer
word 3 |
buffer
word 4 |
||||||||||||
buffer
word 5 |
... | buffer word "word count" |
A |
FLR_GET_BUFFER_WORD_OFF |
Offset in the frame buffer (in buffer words) | 2 bytes |
B |
FLR_GET_BUFFER_WORD_COUNT |
Length (in buffer words) | 2 bytes |
C |
FLR_GET_BUFFER_BUFFER_LEN |
Maximum size of the working buffer (in buffer words) |
2 bytes |
OK | No error |
DATA_BUF_LEN |
The data buffer is too small |
OUT_OF_RANGE |
word offset and/or word count are too large according ot the working buffer size. |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len |
service_id = 0x05 |
(A) word offset |
(B) word count |
|
|||||||||||
buffer word 1 | buffer
word 2 |
buffer
word 3 |
buffer
word 4 |
||||||||||||
buffer
word 5 |
... |
buffer
word "word count" |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 | service_resp_id = 0x85 |
return
code |
A |
FLR_SET_BUFFER_OFF |
Offset in the frame buffer (in buffer words) | 2 bytes |
B |
FLR_SET_BUFFER_WORD_COUNT |
Length (in buffer words) | 2 bytes |
OK | No error |
OUT_OF_RANGE |
word offset and/or word count are too large according ot the working buffer size. |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service_id = 0x06 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x01 |
service_resp_id = 0x86 |
return
code |
|||||||||||||
64-bit config bitfield |
bit index |
description (0=disabled, 1=enabled) |
63 |
Enable debug text output on
second serial port, of request information |
62 |
Enable debug text output on
second serial port, of read/write target dump |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x01 |
service_id = 0x07 |
||||||||||||||
64-bit config bitfield |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service_resp_id = 0x87 |
return_code |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service
id = 0x09 |
(A) raw data length |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service
resp. id = 0x89 |
return
code |
A |
FLR_WRITE_RAW_LEN |
Write length (in bytes) | 2 bytes |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x01 |
service_id = 0x21 |
(A) row |
(B) maj | (C) idx | (D) LUT |
|
|||||||||
64-bit LUT equation |
A |
FLR_SET_LUT_EQU_ROW |
"Row" coordinate in the bitstream | 1 byte |
B |
FLR_SET_LUT_EQU_MAJ |
"Major" coordinate in the bitstream | 1 byte |
C |
FLR_SET_LUT_EQU_IDX | Index in the major |
1 byte |
D |
FLR_SET_LUT_EQU_LUT | LUT type |
1 byte |
FRP_LUT_A_XM | 0x00 |
FRP_LUT_B_XM | 0x01 |
FRP_LUT_C_XM | 0x02 |
FRP_LUT_D_XM | 0x03 |
FRP_LUT_A_MM | 0x04 |
FRP_LUT_B_MM | 0x05 |
FRP_LUT_C_MM | 0x06 |
FRP_LUT_D_MM | 0x07 |
FRP_LUT_A_XL | 0x08 |
FRP_LUT_B_XL | 0x09 |
FRP_LUT_C_XL | 0x0A |
FRP_LUT_D_XL | 0x0B |
FRP_LUT_A_LL | 0x0C |
FRP_LUT_B_LL | 0x0D |
FRP_LUT_C_LL | 0x0E |
FRP_LUT_D_LL | 0x0F |
A6 |
A5 |
A4 |
A3 |
A2 |
A1 |
O |
0 |
0 |
0 |
0 |
0 |
0 |
X (LSB) |
0 |
0 |
0 |
0 |
0 |
1 |
X |
... |
||||||
1 |
1 |
1 |
1 |
1 |
0 |
X |
1 |
1 |
1 |
1 |
1 |
1 |
X (MSB) |
MSB .........LSB
O = 0 -> 0x0000000000000000
O = 1 -> 0xFFFFFFFFFFFFFFFF
O = A1 -> 0xAAAAAAAAAAAAAAAA
O = A2 -> 0xCCCCCCCCCCCCCCCC
O = A3 -> 0xF0F0F0F0F0F0F0F0
O = A4 -> 0xFF00FF00FF00FF00
O = A5 -> 0xFFFF0000FFFF0000
O = A6 -> 0xFFFFFFFF00000000
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x02 |
service_id = 0x23 |
(A) row |
(B) maj | (C) idx | (D) type |
|
|||||||||
Global logic block config bitfield |
|||||||||||||||
Flip-Flop SR initialization |
Multiplexer input selection |
A |
FLR_GET_LOGIC_CONF_ROW |
"Row" coordinate in the bitstream | 1 byte |
B |
FLR_GET_LOGIC_CONF_MAJ |
"Major" coordinate in the bitstream | 1 byte |
C |
FLR_GET_LOGIC_CONF_IDX | Index in the major |
1 byte |
D |
FLR_GET_LOGIC_CONF_TYP |
Logic block type |
1 byte |
0x00 |
Reserved |
|
0x01 |
FLR_LOGIC_M |
M type |
0x02 |
FLR_LOGIC_L | L type |
0x03 ~ 0xFF |
Reserved |
bit index |
Mnemonic | description (0=disabled, 1=enabled) |
0 |
CLK_INV | |
1 |
SYNC_ATTR | |
2 |
ALL_LATCH |
|
3 |
SR_ENABLE |
|
4 |
CE_ENABLE |
|
5 |
PRECY_INIT |
|
6 |
Reserved |
|
7 |
Reserved |
|
8 |
CY0_A |
|
9 |
CY0_B |
|
10 |
CY0_C |
|
11 |
CY0_D |
|
12 ~ 63 |
Reserved |
bit index |
Mnemonic |
Description |
0 ~ 3 |
FLR_LOGIC_CONF_FF__ML_{A, B, C, D} |
|
4 ~ 7 |
FLR_LOGIC_CONF_FF5_ML_{A, B, C, D} | |
8 ~ 11 |
FLR_LOGIC_CONF_FF__X__{A, B, C, D} | |
12 ~ 15 |
FLR_LOGIC_CONF_FF5_X__{A, B, C, D} | |
16 ~ 31 |
Reserved |
bit index |
Mnemonic |
Description |
32 ~ 35 |
FLR_LOGIC_CONF_OUTMUX_A |
|
36 ~ 39 |
FLR_LOGIC_CONF_OUTMUX_B |
|
40 ~ 43 |
FLR_LOGIC_CONF_OUTMUX_C |
|
44 ~ 47 |
FLR_LOGIC_CONF_OUTMUX_D |
|
48 ~ 51 |
FLR_LOGIC_CONF_FFMUX__A |
|
52 ~ 55 |
FLR_LOGIC_CONF_FFMUX__B |
|
56 ~ 59 |
FLR_LOGIC_CONF_FFMUX__C |
|
60 ~ 63 |
FLR_LOGIC_CONF_FFMUX__D |
Code |
Mnemonic |
OUTMUX |
FFMUX |
0x0 |
FLR_LOGIC_MUX_SEL0 |
5Q |
MC31 (D) or F7 (A and C) or F8 (B) |
0x1 |
FLR_LOGIC_MUX_SEL1 | MC31 (D) or F7 (A and C) or F8 (B) | CY |
0x2 |
FLR_LOGIC_MUX_SEL2 | CY |
XOR |
0x3 |
FLR_LOGIC_MUX_SEL3 | XOR |
X |
0x4 |
FLR_LOGIC_MUX_SEL4 | O5 |
O5 |
0x5 |
FLR_LOGIC_MUX_SEL5 | O6 |
O6 |
0x6 ~ 0xF |
Reserved |
Reserved |
Reserved |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = req_len |
service_id = 0x30 |
(A) row |
(B) maj | (C) idx | (D) switch
count |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Switch id 1 | Switch
id 2 |
Switch
id 3 |
Switch
id 4 |
||||||||||||
Switch
id 5 |
... |
Switch
id "switch count" |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = req_len |
service
id = 0xB0 |
return_code | |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Switch
id 1 status |
Switch
id 2 status |
Switch
id 3 status |
Switch
id 4 status |
||||||||||||
Switch
id 5 status |
... |
Switch
id sw_n status |
A |
FLR_GET_SWITCH_ROW |
"Row" coordinate in the bitstream | 1 byte |
B |
FLR_GET_SWITCH_MAJ |
"Major" coordinate in the bitstream | 1 byte |
C |
FLR_GET_SWITCH_IDX | Index in the major |
1 byte |
D |
FLR_GET_SWITCH_LEN | Number of requested switch status |
2 bytes |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service_id = 0x40 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service
id = 0xC0 |
return_code | (A) bit values |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service_id = 0x41 |
(A) bit values |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
data_len = 0x00 |
service
id = 0xC1 |
return_code | |