VME Commands For GAB_S30 Test V.2
updated on
Signals used:
To the GAB:
serfrm (MSB first) seradr (MSB first) serdat (LSB first)
Form the GAB:
serfrmout (MSB first) serdatout (MSB first)
protocol format:
serfrm:
|->frame bit (bit15)
| |->chip address (bit 14-11) = “0101” for gab
| | |->operation select (bit10-7)
| | | |->all zeros (bit6-0)
| | | |
| | | |
| | | |
1010100100000000
|
Op. select Bit(10..7) |
set |
operation |
|
1 |
-- |
Resetpll (not used) |
|
2 |
wpar |
load a parameter to register file |
|
3 |
rdstat |
Read status |
|
4 |
rdpar |
Read a parameter to VME |
|
5 |
rdtab |
Read TAB data to VME |
|
6 |
rdtrg |
Read trigger data to VME |
|
7 |
rdl2 |
Read level2 data to VME |
seradr:
|
operation |
valid bits |
note |
|
Load parameters |
(5..0) |
Load select (0-23, 48-55) |
|
Read parameters |
(5..0) |
Read select |
|
Read TAB inputs |
(8..5) |
Memory read address: data group select (0-31) |
|
|
(4..0) |
Memory read address: word address (0-11) |
|
Read trigger data |
(8..4) |
Memory read address: BC frame # of the 11 words |
|
|
(3..0) |
Memory read address: word address (0-11) |
|
Read level2 data |
(8..0) |
Memory read address |
Commands For Loading
Parameters From VME
|
serframe |
seradr |
serdat |
parameter |
note |
|
1010100100000000 |
0000000000000000 |
0000100100100100 |
th_eq1 |
ceq |
|
1010100100000000 |
0000000000000001 |
0000101101101101 |
th_eq2 |
ceq |
|
1010100100000000 |
0000000000000010 |
0000000000101101 |
th_jq1 |
cjq |
|
1010100100000000 |
0000000000000011 |
0000000000100100 |
th_jq2 |
cjq |
|
1010100100000000 |
0000000000000100 |
0000000101101101 |
th_er1 |
cer |
|
1010100100000000 |
0000000000000101 |
0000000100100100 |
th_er2 |
cer |
|
1010100100000000 |
0000000000000110 |
0000000011011011 |
th_jr1 |
cjr |
|
1010100100000000 |
0000000000000111 |
0000000101101101 |
th_jr2 |
cjr |
|
1010100100000000 |
0000000000001000 |
0000101101101101 |
th_em1 |
cem |
|
1010100100000000 |
0000000000001001 |
0000101101101101 |
th_em2 |
cem |
|
1010100100000000 |
0000000000001010 |
0000100100100100 |
th_jt1 |
cjt |
|
1010100100000000 |
0000000000001011 |
0000101101101101 |
th_jt2 |
cjt |
|
1010100100000000 |
0000000000001100 |
0000101101101101 |
th_jt3 |
cjt |
|
1010100100000000 |
0000000000001101 |
0000101101101101 |
th_jt4 |
cjt |
|
1010100100000000 |
0000000000001110 |
0000101101101101 |
th_ta1 |
cta |
|
1010100100000000 |
0000000000001111 |
0000101101101101 |
th_ta2 |
cta |
|
1010100100000000 |
0000000000010000 |
0110101010101011 |
th_et |
cet |
|
1010100100000000 |
0000000000010001 |
0100000000001010 |
th_me0 |
cme |
|
1010100100000000 |
0000000000010010 |
0100000000000010 |
th_me1 |
cme |
|
1010100100000000 |
0000000000010011 |
0100000000000011 |
th_me2 |
cme |
|
1010100100000000 |
0000000000010100 |
0100000000000100 |
th_me3 |
cme |
|
1010100100000000 |
0000000000010101 |
0000000000000101 |
th_jfr |
jetfr |
|
1010100100000000 |
0000000000010110 |
0000000000000011 |
th_cop |
acopj |
|
1010100100000000 |
0000000000010111 |
0000000000000100 |
th_bkb |
bkbk |
|
|
|
|
|
|
|
1010100100000000 |
0000000000110000 |
1111000011110000 |
hdsize |
|
|
1010100100000000 |
0000000000110001 |
0000000011110000 |
hdtype |
|
|
1010100100000000 |
0000000000110010 |
1000100010001000 |
hdformat |
|
|
1010100100000000 |
0000000000110011 |
0000000000000001 |
hdversion |
|
|
1010100100000000 |
0000000000110100 |
0000000010000001 |
hdbits |
|
|
1010100100000000 |
0000000000110101 |
0000000000010001 |
scldelay |
adjusted |
|
1010100100000000 |
0000000000110110 |
0000000000010010 |
L2delay |
adjusted |
|
1010100100000000 |
0000000000110111 |
0000000000000001 |
maxerror |
|
Commands For Reading
Parameters To VME
Same seradr
as loading
|
serframe |
seradr |
parameter |
note |
|
1010101000000000 |
0000000000000000 |
th_eq1 |
ceq |
|
1010101000000000 |
0000000000000001 |
th_eq2 |
ceq |
|
-- |
-- |
-- |
|
.
.
.
.
.
Commands For Reading Tab
Inputs To VME
Read a 12-bit data at each VME frame. Read one group of the data requires 32 or 8 VME read frames and addresses.
Example1: read 32 jetsouth data from the memory
|
serframe |
seradr |
note |
|
1010101010000000 |
0000000001100000 |
Read bit0 of the 12 memory words |
|
1010101010000000 |
0000000001100001 |
Read bit1 of the 12 memory words |
|
1010101010000000 |
0000000001100010 |
Read bit2 of the 12 memory words |
|
1010101010000000 |
0000000001100011 |
Read bit3 of the 12 memory words |
|
1010101010000000 |
0000000001100100 |
Read bit4 of the 12 memory words |
|
1010101010000000 |
0000000001100101 |
Read bit5 of the 12 memory words |
|
1010101010000000 |
0000000001100110 |
Read bit6 of the 12 memory words |
|
-- |
-- |
-- |
|
-- |
-- |
-- |
|
1010101010000000 |
0000000001111111 |
read bit32 of the 12 memory words |
Example2: read 8 scl data from the memory
|
serframe |
seradr |
note |
|
1010101010000000 |
0000000110000000 |
Read bit0 of the 12 memory words: sclsync |
|
1010101010000000 |
0000000110000001 |
Read bit1 of the 12 memory words: sclbc |
|
1010101010000000 |
0000000110000010 |
Read bit2 of the 12 memory words: sclturn |
|
1010101010000000 |
0000000110000011 |
Read bit3 of the 12 memory words: sclrun |
|
1010101010000000 |
0000000110000100 |
Read bit4 of the 12 memory words: sclaccept |
|
1010101010000000 |
0000000110000101 |
Read bit5 of the 12 memory words: sclinit |
|
1010101010000000 |
0000000110000110 |
Read bit6 of the 12 memory words: extra1 |
|
1010101010000000 |
0000000110000111 |
Read bit7 of the 12 memory words: extra2 |
Map of VME reading out input data : emsouth
|
Seradr(8..5) |
Seradr(4..0) |
Tab_data to read out by vme: 12
bits, lsb
first |
Input to term decision
module |
|
0 |
0 |
Tab0_data(0) |
Emsouth: word0 |
|
0 |
1 |
Tab0_data(1) |
Emsouth: word1 |
|
0 |
2 |
Tab0_data(2) |
Emsouth: word2 |
|
0 |
3 |
Tab0_data(3) |
.. |
|
0 |
4 |
Tab1_data(0) |
.. |
|
0 |
5 |
Tab1_data(1) |
.. |
|
0 |
6 |
Tab1_data(2) |
.. |
|
0 |
7 |
Tab1_data(3) |
.. |
|
0 |
8 |
Tab2_data(0) |
.. |
|
0 |
9 |
Tab2_data(1) |
.. |
|
0 |
10 |
Tab2_data(2) |
.. |
|
0 |
11 |
Tab2_data(3) |
Emsouth: word11 |
.. .. ..
.. .. ..
.. .. ..
.. .. ..
.. .. ..
|
Seradr(8..5) |
Seradr(4..0) |
Tab_data to read out by Vme: 12
bits, lsb first |
Input to term decision
module |
|
0 |
24 |
Tab6_data(0) |
Emsouth: word24 |
|
0 |
25 |
Tab6_data(1) |
.. |
|
0 |
26 |
Tab6_data(2) |
.. |
|
0 |
27 |
Tab6_data(3) |
.. |
|
0 |
28 |
Tab7_data(0) |
.. |
|
0 |
29 |
Tab7_data(1) |
.. |
|
0 |
30 |
Tab7_data(2) |
.. |
|
0 |
31 |
Tab7_data(3) |
Emsouth: word31 |
Map of VME reading out input data : emnorth
|
Seradr(8..5) |
Seradr(4..0) |
Tab_data to read out by vme: 12
bits, lsb
first |
Input to term decision
module |
|
2 |
0 |
Tab0_data(8) |
Emnorth: word0 |
|
2 |
1 |
Tab0_data(9) |
Emnorth: word1 |
|
2 |
2 |
Tab0_data(10) |
Emnorth: word2 |
|
2 |
3 |
Tab0_data(11) |
.. |
|
2 |
4 |
Tab1_data(8) |
.. |
|
2 |
5 |
Tab1_data(9) |
.. |
|
2 |
6 |
Tab1_data(10) |
.. |
|
2 |
7 |
Tab1_data(11) |
.. |
|
2 |
8 |
Tab2_data(8) |
.. |
|
2 |
9 |
Tab2_data(9) |
.. |
|
2 |
10 |
Tab2_data(10) |
.. |
|
2 |
11 |
Tab2_data(11) |
Emnorth: word11 |
.. .. ..
.. .. ..
.. .. ..
.. .. ..
.. .. ..
|
Seradr(8..5) |
Seradr(4..0) |
Tab_data to read out by Vme: 12
bits, lsb first |
Input to term decision
module |
|
2 |
24 |
Tab6_data(8) |
Emnorth: word24 |
|
2 |
25 |
Tab6_data(9) |
.. |
|
2 |
26 |
Tab6_data(10) |
.. |
|
2 |
27 |
Tab6_data(11) |
.. |
|
2 |
28 |
Tab7_data(8) |
.. |
|
2 |
29 |
Tab7_data(9) |
.. |
|
2 |
30 |
Tab7_data(10) |
.. |
|
2 |
31 |
Tab7_data(11) |
Emnorth: word31 |
Map of VME reading out input data :
|
Seradr(8..5) |
Seradr(4..0) |
Tab_data to read out by vme: 12
bits, lsb
first |
Input to term decision
module |
|
10 |
0 |
Tab0_data(40) |
Status from tab0 |
|
10 |
1 |
Tab0_data(41) |
Sync from tab0 |
|
10 |
2 |
Tab0_data(42) |
run from tab0 |
|
10 |
3 |
Tab0_data(43) |
bc from tab0 |
|
10 |
4 |
Tab1_data(40) |
Status from tab1 |
|
10 |
5 |
Tab1_data(41) |
Sync from tab1 |
|
10 |
6 |
Tab1_data(42) |
run from tab1 |
|
10 |
7 |
Tab1_data(43) |
bc from tab1 |
|
10 |
8 |
Tab2_data(40) |
Status from tab2 |
|
10 |
9 |
Tab2_data(41) |
Sync from tab2 |
|
10 |
10 |
Tab2_data(42) |
run from tab2 |
|
10 |
11 |
Tab2_data(43) |
bc from tab2 |
.. .. ..
.. .. ..
.. .. ..
.. .. ..
.. .. ..
|
Seradr(8..5) |
Seradr(4..0) |
Tab_data to read out by Vme: 12
bits, lsb first |
Input to term decision
module |
|
10 |
24 |
Tab6_data(40) |
Status from tab6 |
|
10 |
25 |
Tab6_data(41) |
Sync from tab6 |
|
10 |
26 |
Tab6_data(42) |
run from tab6 |
|
10 |
27 |
Tab6_data(43) |
bc from tab6 |
|
10 |
28 |
Tab7_data(40) |
Status from tab7 |
|
10 |
29 |
Tab7_data(41) |
Sync from tab7 |
|
10 |
30 |
Tab7_data(42) |
run from tab7 |
|
10 |
31 |
Tab7_data(43) |
bc from tab7 |
Map of VME reading out input data : SCL data
|
Seradr(8..5) |
Seradr(4..0) |
data to read out by Vme: 12 bits, lsb first |
|
12 |
0 |
sclsync |
|
12 |
1 |
sclbc |
|
12 |
2 |
sclturn |
|
12 |
3 |
sclrun |
|
12 |
4 |
sclaccept |
|
12 |
5 |
sclinit |
|
12 |
6 |
Extra1 |
|
12 |
7 |
Extra2 |
Commands For Reading Trigger
Data To VME
Read one 16-bit memory word at each VME read frame. 12 VME read frames and addresses are required to read out all 12 words for a BC frame.
The seradr(8..4) specifies the BC frame #, and seradr(3..0) is the word address.
Example: read 12 words which associate with BC frame = 31
|
serframe |
seradr |
note |
|
1010101100000000 |
0000000111110000 |
Read aterms |
|
1010101100000000 |
0000000111110001 |
Read bterms |
|
1010101100000000 |
0000000111110010 |
Read cterms |
|
1010101100000000 |
0000000111110011 |
Read dterms |
|
1010101100000000 |
0000000111110100 |
Read ot, serdatout(14..0) |
|
1010101100000000 |
0000000111110101 |
Read ox, serdatout(14..0) |
|
1010101100000000 |
0000000111110110 |
Read oy, serdatout(14..0) |
|
1010101100000000 |
0000000111110111 |
Read bco, serdatout(7..0) |
|
1010101100000000 |
0000000111111000 |
Read sclbco, serdatout(7..0) |
|
1010101100000000 |
0000000111111001 |
Read sclturno |
|
1010101100000000 |
0000000111111010 |
Read statuso, serdatout(7..0) |
|
1010101100000000 |
0000000111111011 |
Read all zeros (spare) |
Commands For Reading Level 2
Data To VME
14 16-bit words from vhd_l2port are written into the memory at each davo=1
Read one word at each VME read frame. Seradr specifies memory read address.
Example: read qterm0 at address=9
|
serframe |
seradr |
note |
|
1010101110000000 |
0000000000001001 |
Read out 16-bit terms0 to level 2 |
Command For Reading GAB
Status To VME
|
serframe |
|
1010100110000000 |