Belle II KLM Scint Firmware  1
b2tt_symbols.vhd
1 ------------------------------------------------------------------------
2 -- b2tt_symbols.vhd
3 --
4 -- Mikihiko Nakao, KEK IPNS
5 --
6 -- 20120130 first version
7 -- 20130403 renamed to tt_symbols
8 -- 20130507 renamed back to b2tt_symbols
9 -- 20131002 TTYP_TEST added
10 -- 20160830 TTREG symbols added
11 ------------------------------------------------------------------------
12 library ieee;
13 use ieee.std_logic_1164.all;
14 use ieee.std_logic_unsigned.all;
15 use ieee.numeric_std.all;
16 
17 package b2tt_symbols is
18 -- - kcode
19  subtype octet10b_t is std_logic_vector (9 downto 0);
20  subtype octet_t is std_logic_vector (7 downto 0);
21 
22  constant K28_0 : octet_t := x"1c"; -- K.28.0 28 000 11100
23  constant K28_1 : octet_t := x"3c"; -- K.28.1 60 001 11100
24  constant K28_2 : octet_t := x"5c"; -- K.28.2 92 010 11100
25  constant K28_3 : octet_t := x"7c"; -- K.28.3 124 011 11100
26  constant K28_4 : octet_t := x"9c"; -- K.28.4 156 100 11100
27  constant K28_5 : octet_t := x"bc"; -- K.28.5 188 101 11100
28  constant K28_6 : octet_t := x"dc"; -- K.28.6 220 110 11100
29  constant K28_7 : octet_t := x"fc"; -- K.28.7 252 111 11100
30  constant K23_7 : octet_t := x"f7"; -- K.23.7 247 111 10111
31  constant K27_7 : octet_t := x"fb"; -- K.27.7 251 111 11011
32  constant K29_7 : octet_t := x"fd"; -- K.29.7 253 111 11101
33  constant K30_7 : octet_t := x"fe"; -- K.30.7 254 111 11110
34 
35  constant K28_0N : octet10b_t := "001111" & "0100"; -- K.28.0 x"0f4"
36  constant K28_1N : octet10b_t := "001111" & "1001"; -- K.28.1 x"0f9"
37  constant K28_2N : octet10b_t := "001111" & "0101"; -- K.28.2 x"0f5"
38  constant K28_3N : octet10b_t := "001111" & "0011"; -- K.28.3 x"0f3"
39  constant K28_4N : octet10b_t := "001111" & "0010"; -- K.28.4 x"0f2"
40  constant K28_5N : octet10b_t := "001111" & "1010"; -- K.28.5 x"0fa"
41  constant K28_6N : octet10b_t := "001111" & "0110"; -- K.28.6 x"0f6"
42  constant K28_7N : octet10b_t := "001111" & "1000"; -- K.28.7 x"0f8"
43  constant K23_7N : octet10b_t := "111010" & "1000"; -- K.23.7 x"3a8"
44  constant K27_7N : octet10b_t := "110110" & "1000"; -- K.27.7 x"368"
45  constant K29_7N : octet10b_t := "101110" & "1000"; -- K.29.7 x"2e8"
46  constant K30_7N : octet10b_t := "011110" & "1000"; -- K.30.7 x"1e8"
47 
48  constant K28_0P : octet10b_t := "110000" & "1011"; -- K.28.0 x"30b"
49  constant K28_1P : octet10b_t := "110000" & "0110"; -- K.28.1 x"306"
50  constant K28_2P : octet10b_t := "110000" & "1010"; -- K.28.2 x"30a"
51  constant K28_3P : octet10b_t := "110000" & "1100"; -- K.28.3 x"30c"
52  constant K28_4P : octet10b_t := "110000" & "1101"; -- K.28.4 x"30d"
53  constant K28_5P : octet10b_t := "110000" & "0101"; -- K.28.5 x"305"
54  constant K28_6P : octet10b_t := "110000" & "1001"; -- K.28.6 x"309"
55  constant K28_7P : octet10b_t := "110000" & "0111"; -- K.28.7 x"307"
56  constant K23_7P : octet10b_t := "000101" & "0111"; -- K.23.7 x"057"
57  constant K27_7P : octet10b_t := "001001" & "0111"; -- K.27.7 x"097"
58  constant K29_7P : octet10b_t := "010001" & "0111"; -- K.29.7 x"117"
59  constant K30_7P : octet10b_t := "100001" & "0111"; -- K.30.7 x"217"
60 
61  -- fee subsystem (copy of B2LFEE, with addition of PXD)
62 
63  constant TTFEE_UNDEF : std_logic_vector (3 downto 0) := "0000"; -- 0
64  constant TTFEE_SVD : std_logic_vector (3 downto 0) := "0001"; -- 1
65  constant TTFEE_CDC : std_logic_vector (3 downto 0) := "0010"; -- 2
66  constant TTFEE_BPID : std_logic_vector (3 downto 0) := "0011"; -- 3
67  constant TTFEE_EPID : std_logic_vector (3 downto 0) := "0100"; -- 4
68  constant TTFEE_ECL : std_logic_vector (3 downto 0) := "0101"; -- 5
69  constant TTFEE_BECL : std_logic_vector (3 downto 0) := "0101"; -- 5
70  constant TTFEE_EECL : std_logic_vector (3 downto 0) := "0110"; -- 6
71  constant TTFEE_KLM : std_logic_vector (3 downto 0) := "0111"; -- 7
72  constant TTFEE_BKLM : std_logic_vector (3 downto 0) := "0111"; -- 7
73  constant TTFEE_EKLM : std_logic_vector (3 downto 0) := "1000"; -- 8
74  constant TTFEE_TRG : std_logic_vector (3 downto 0) := "1001"; -- 9
75  constant TTFEE_PXD : std_logic_vector (3 downto 0) := "1010"; -- 10
76  constant TTFEE_DEMO : std_logic_vector (3 downto 0) := "1110"; -- 14
77  constant TTFEE_TEST : std_logic_vector (3 downto 0) := "1111"; -- 15
78 
79  -- - trigger type
80  -- TTYP_PIDx contains 2ns interval info from PID
81  -- TTYP_RSVx also cointains 2ns interval, usage to be defined later
82  -- other TTYP have no 2ns interval info
83 
84  subtype trigtyp_t is std_logic_vector (3 downto 0);
85  constant TTYP_PID0 : trigtyp_t := "0000"; -- 0
86  constant TTYP_PID1 : trigtyp_t := "0100"; -- 4
87  constant TTYP_PID2 : trigtyp_t := "1000"; -- 8
88  constant TTYP_PID3 : trigtyp_t := "1100"; -- c
89  constant TTYP_RSV0 : trigtyp_t := "0010"; -- 2
90  constant TTYP_RSV1 : trigtyp_t := "0110"; -- 6
91  constant TTYP_RSV2 : trigtyp_t := "1010"; -- a
92  constant TTYP_RSV3 : trigtyp_t := "1110"; -- e
93 
94  constant TTYP_ECL : trigtyp_t := "0001"; -- 1
95  constant TTYP_CDC : trigtyp_t := "0011"; -- 3
96  constant TTYP_DPHY : trigtyp_t := "0101"; -- 5 delayed physics
97  constant TTYP_RAND : trigtyp_t := "0111"; -- 7
98  constant TTYP_TEST : trigtyp_t := "1001"; -- 9 test pulse input
99  constant TTYP_RSV4 : trigtyp_t := "1011"; -- b
100  constant TTYP_RSV5 : trigtyp_t := "1101"; -- d
101  constant TTYP_NONE : trigtyp_t := "1111"; -- f also used for begin-run
102 
103  -- - payload
104  subtype payload_t is std_logic_vector (76 downto 0);
105  constant PAYLOAD_EMPTY : payload_t := x"0000000000000000000" & '0';
106 
107  -- - command
108  subtype ttpkt_t is std_logic_vector (11 downto 0);
109  constant TTPKT_IDLE : ttpkt_t := x"fff"; -- unused
110  constant TTPKT_TTAG : ttpkt_t := x"000";
111  constant TTPKT_FREQ : ttpkt_t := x"001";
112  constant TTPKT_RST : ttpkt_t := x"002";
113  constant TTPKT_CMD : ttpkt_t := x"003";
114  constant TTPKT_DISP : ttpkt_t := x"007";
115  constant TTPKT_REVO : ttpkt_t := x"00d";
116  constant TTPKT_INJV : ttpkt_t := x"00e";
117  constant TTPKT_SYNC : ttpkt_t := x"00f";
118 
119  -- - ttreg
120  -- 1f-1e, 01-00 are reserved for later addition
121  subtype ttreg_t is std_logic_vector (4 downto 0);
122  constant TTREG_CLOST : ttreg_t := "11101"; -- 1d
123  constant TTREG_TDOWN : ttreg_t := "11100"; -- 1c
124 
125  constant TTREG_TLOST : ttreg_t := "11011"; -- 1b
126  constant TTREG_TERR : ttreg_t := "11010"; -- 1a
127  constant TTREG_FERR : ttreg_t := "11001"; -- 19
128  constant TTREG_RERR : ttreg_t := "11000"; -- 18
129 
130  constant TTREG_LDOWN : ttreg_t := "10111"; -- 17
131  constant TTREG_LLOST : ttreg_t := "10110"; -- 16
132  constant TTREG_EBIT : ttreg_t := "10101"; -- 15
133  constant TTREG_BUSY : ttreg_t := "10100"; -- 14
134 
135  constant TTREG_IDLY : ttreg_t := "10011"; -- 13
136  constant TTREG_RDLY : ttreg_t := "10010"; -- 12
137  constant TTREG_ALIVE : ttreg_t := "10001"; -- 11
138  constant TTREG_BOUND : ttreg_t := "10000"; -- 10
139 
140  constant TTREG_TMASK : ttreg_t := "01111"; -- 0f
141  constant TTREG_EMASK : ttreg_t := "01110"; -- 0e
142  constant TTREG_JTAGE : ttreg_t := "01101"; -- 0d
143  constant TTREG_SEM : ttreg_t := "01100"; -- 0c
144 
145  constant TTREG_TTAG : ttreg_t := "01011"; -- 0b
146  constant TTREG_FTAG : ttreg_t := "01010"; -- 0a
147  constant TTREG_WCNTH : ttreg_t := "01001"; -- 09
148  constant TTREG_WCNTL : ttreg_t := "01000"; -- 08
149 
150  constant TTREG_ETIME : ttreg_t := "00111"; -- 07 (error or start)
151  constant TTREG_BTIME : ttreg_t := "00110"; -- 06 (boot)
152  constant TTREG_EREG : ttreg_t := "00101"; -- 05 (error or start)
153  constant TTREG_PREG : ttreg_t := "00100"; -- 04 (now)
154 
155  constant TTREG_ID : ttreg_t := "00011"; -- 03
156  constant TTREG_VER : ttreg_t := "00010"; -- 02
157  constant TTREG_USR : ttreg_t := "00001"; -- 01
158 
159 end package b2tt_symbols;
160 
161 -- - emacs outline mode setup
162 -- Local Variables: ***
163 -- mode:outline-minor ***
164 -- outline-regexp:"-- -+" ***
165 -- End: ***