![]() |
Belle II KLM Scint Firmware
1
|
Entities | |
Behavioral | architecture |
Libraries | |
IEEE | |
work |
Use Clauses | |
STD_LOGIC_1164 | |
NUMERIC_STD | |
STD_LOGIC_MISC | |
STD_LOGIC_UNSIGNED | |
klm_scint_pkg | Package <klm_scint_pkg> |
Generics | |
baseline_g | std_logic_vector ( 11 downto 0 ) := " 110000000000 " |
SLOW_CTRL_BUFF | integer := 5 |
N_BITS_AVG_g | integer |
Ports | |
clk | in std_logic := ' 0 ' |
rst | in std_logic := ' 0 ' |
ped_sub_ena | in std_logic |
disambig_tb5 | in std_logic |
measure_peds | in std_logic |
stream_peds | in std_logic |
ena | in std_logic := ' 0 ' |
win_samp_start | in slv14 ( 4 downto 0 ) := ( others = > ( others = > ' 0 ' ) ) |
trig_bits | in slv5 ( 4 downto 0 ) := ( others = > " 00000 " ) |
asic_mask | in std_logic_vector ( 4 downto 0 ) := ( others = > ' 0 ' ) |
first_dig_win | in std_logic_vector ( 8 downto 0 ) |
last_dig_win | in std_logic_vector ( 8 downto 0 ) |
ped_fetch_asic_no | out std_logic_vector ( 2 downto 0 ) := ( others = > ' 0 ' ) |
ped_fetch_chan | out std_logic_vector ( 3 downto 0 ) := ( others = > ' 0 ' ) |
ped_win_samp_start | out std_logic_vector ( 13 downto 0 ) := ( others = > ' 0 ' ) |
ped_fetch_ena | out std_logic := ' 0 ' |
ped_fetch_ack | in std_logic := ' 0 ' |
ped_fifo_wr_asic | in std_logic_vector ( 4 downto 0 ) := ( others = > ' 0 ' ) |
ped_fifo_wr_chan | in std_logic_vector ( 3 downto 0 ) := ( others = > ' 0 ' ) |
ped_fifo_wr_ena | in std_logic := ' 0 ' |
ped_fifo_din | in std_logic_vector ( 11 downto 0 ) := ( others = > ' 0 ' ) |
BUS_RD_ENA | out std_logic := ' 0 ' |
BUS_RAMP | out std_logic := ' 0 ' |
BUS_CLR | out std_logic := ' 0 ' |
BUS_DO | in std_logic_vector ( 14 downto 0 ) := ( others = > ' 0 ' ) |
SR_CLR | out std_logic := ' 0 ' |
SR_CLK | out std_logic_vector ( 4 downto 0 ) := ( others = > ' 0 ' ) |
SR_SEL | out std_logic := ' 0 ' |
BUS_RD_WINSEL | out std_logic_vector ( 8 downto 0 ) := ( others = > ' 0 ' ) |
SAMPLESEL | out std_logic_vector ( 4 downto 0 ) := ( others = > ' 0 ' ) |
SAMPLESEL_ANY | out std_logic_vector ( 4 downto 0 ) := ( others = > ' 0 ' ) |
rx_features_ack | in std_logic := ' 0 ' |
rx_features_ena | out std_logic := ' 0 ' |
last_hit | out std_logic := ' 0 ' |
peak | out std_logic_vector ( 11 downto 0 ) := ( others = > ' 0 ' ) |
le_time | out std_logic_vector ( 13 downto 0 ) := ( others = > ' 0 ' ) |
daq_chan | out std_logic_vector ( 6 downto 0 ) := ( others = > ' 0 ' ) |
ramp_length | in std_logic_vector ( 11 downto 6 ) |
t_samp_addr_settle | in std_logic_vector ( 3 downto 0 ) := " 0110 " |
t_setup_ss_any | in std_logic_vector ( 3 downto 0 ) := " 0110 " |
t_strobe_settle | in std_logic_vector ( 3 downto 0 ) := " 0100 " |
t_sr_clk_high | in std_logic_vector ( 3 downto 0 ) := " 0010 " |
t_sr_clk_low | in std_logic_vector ( 3 downto 0 ) := " 0010 " |
t_sr_clk_strobe | in std_logic_vector ( 3 downto 0 ) := " 0110 " |
N_readout_samples | in std_logic_vector ( 7 downto 0 ) |
LE_time_thresh | in std_logic_vector ( 11 downto 0 ) := " 110100010110 " |
debug_we | out std_logic := ' 0 ' |
debug_wave | out std_logic_vector ( 11 downto 0 ) := ( others = > ' 0 ' ) |
DigStoreProcBusy | out std_logic := ' 0 ' |
DigNShiftBusy | out std_logic := ' 0 ' |
DigBusy | out std_logic := ' 0 ' |
ShiftOutWinBusy | out std_logic := ' 0 ' |
ShiftOutSampBusy | out std_logic := ' 0 ' |
FeatExtBusy | out std_logic := ' 0 ' |
PedFetchQueueBusy | out std_logic := ' 0 ' |
prime_fifos | in std_logic := ' 0 ' |
summing_ena | in std_logic := ' 0 ' |
avg_peds_ena | in std_logic := ' 0 ' |
avg_peds_busy | out std_logic := ' 0 ' |
wr_peds2sram_ena | out std_logic := ' 0 ' |
wr_peds2sram_ack | in std_logic := ' 0 ' |
even_ped | out std_logic_vector ( 11 downto 0 ) := ( others = > ' 0 ' ) |
odd_ped | out std_logic_vector ( 11 downto 0 ) := ( others = > ' 0 ' ) |
sram_asic_addr | out std_logic_vector ( 2 downto 0 ) := ( others = > ' 0 ' ) |
sram_chan_addr | out std_logic_vector ( 3 downto 0 ) := ( others = > ' 0 ' ) |
sram_samp_addr | out std_logic_vector ( 4 downto 1 ) := ( others = > ' 0 ' ) |
fe_dbg | out std_logic_vector ( 1 downto 0 ) := " 00 " |
sps_reset | in std_logic := ' 0 ' |
SPS_hist_rd_addr | in std_logic_vector ( 9 downto 0 ) := ( others = > ' 0 ' ) |
SPS_hist_rd_data | out std_logic_vector ( 15 downto 0 ) := ( others = > ' 0 ' ) |
Digitize and process event on common motherboard bus (5 ASICs per bus)
Engineer | Create Date |
---|---|
Chris Ketter | 07/18/2019 |
The SingleBusProcessing module is a container for all of the modules needed to digitize and process waveforms for 5 asics which are all on a common bus
A simple state machine below initiates the digitization process and waits for it to finish.
Definition at line 22 of file SingleBusProcessing.vhd.