Belle II KLM Scint Firmware
1
TrigBitsMux.vhd
1
library
ieee
;
2
use
ieee.std_logic_1164.
all
;
3
use
ieee.numeric_std.
all
;
4
use
ieee.std_logic_unsigned.
all
;
5
use
ieee.std_logic_misc.
all
;
6
library
work
;
7
use
work.
conc_intfc_pkg
.
all
;
8
use
work.
klm_scint_pkg
.
all
;
9
use
work.
klm_scrod_pkg
.
all
;
10
use
work.tdc_pkg.
all
;
11
12
13
entity
TrigBitsMux
is
14
port
(
15
clk
:
in
std_logic
;
16
-- rst : in std_logic;
17
18
mode
:
in
std_logic_vector
(
3
downto
0
)
;
19
period :
in
std_logic_vector
(
31
downto
0
);
20
tb_in
:
in
tb_vec_type
;
21
22
tb_out
:
out
tb_vec_type
23
)
;
24
end
entity
TrigBitsMux
;
25
26
architecture
behav
of
TrigBitsMux
is
27
28
signal
i_mode
:
std_logic_vector
(
3
downto
0
)
;
29
signal
i_period
:
std_logic_vector
(
31
downto
0
)
;
30
-- counter to generate test pattern
31
signal
i_tst_cnt
:
std_logic_vector
(
31
downto
0
)
:=
(
others
=
>
'
0
'
)
;
32
signal
i_tst_done
:
std_logic
:=
'
0
'
;
33
34
signal
i_vectrgbits
:
tb_vec_type
:=
(
others
=
>
(
others
=
>
'
0
'
)
)
;
35
signal
i_testtrgbits
:
tb_vec_type
;
36
37
begin
38
39
------------------------------------------------
40
-- generate test trg bits pattern
41
------------------------------------------------
42
TEST_PROC :
process
(clk)
43
begin
44
if
rising_edge
(
clk
)
then
45
46
i_period
<=
period
;
47
48
if
i_tst_cnt
<
i_period
then
49
i_tst_cnt
<=
i_tst_cnt
+
'
1
'
;
50
else
51
i_tst_cnt
<=
(
others
=
>
'
0
'
)
;
52
end
if
;
53
54
if
i_tst_cnt
=
i_period
then
55
i_testtrgbits
<=
(
others
=
>
B
"00001"
)
;
56
else
57
i_testtrgbits
<=
(
others
=
>
B
"00000"
)
;
58
end
if
;
59
60
end
if
;
61
end
process
TEST_PROC
;
62
------------------------------------------------
63
64
------------------------------------------------
65
-- MUX for trg bits
66
------------------------------------------------
67
process
(clk)
68
begin
69
if
rising_edge
(
clk
)
then
70
i_mode
<=
mode
;
71
case
i_mode
is
72
when
X
"1"
=
>
73
i_vectrgbits
<=
tb_in
;
-- daq mode
74
when
X
"2"
=
>
75
i_vectrgbits
<=
i_testtrgbits
;
-- test mode
76
when
X
"3"
=
>
77
i_vectrgbits
<=
tb_in
;
-- test mode
78
when
others
=
>
79
i_vectrgbits
<=
tb_in
;
80
end
case
;
81
end
if
;
82
end
process
;
83
------------------------------------------------
84
85
tb_out
<=
i_vectrgbits
;
86
87
end
behav
;
88
89
90
TrigBitsMux
Definition:
TrigBitsMux.vhd:13
conc_intfc_pkg
Definition:
conc_intfc_pkg.vhd:24
klm_scint_pkg
Definition:
klm_scint_pkg.vhd:7
klm_scrod_pkg
Definition:
klm_scrod_pkg.vhd:22
klm_scint
source
TrigBitsMux.vhd
Generated by
1.8.13