1 ---------------------------------------------------------------------------------- 3 ---------------------------------------------------------------------------------- 5 use ieee.std_logic_1164.
all;
6 use ieee.numeric_std.
all;
7 use ieee.std_logic_unsigned.
all;
8 use ieee.std_logic_misc.
all;
10 use unisim.vcomponents.
all;
12 use unimacro.vcomponents.
all;
15 use work.time_order_pkg.
all;
182 B2TT_SIM_SPEEDUP : := '0';
184 SLOW_CTRL_BUFF : := 7;
185 -- VERSION : std_logic_vector(15 downto 0) := X"0C06" -- dedicated sps_reset 186 -- VERSION : std_logic_vector(15 downto 0) := X"0C07" -- add charge calc to FE block and sps 187 -- VERSION : std_logic_vector(15 downto 0) := X"0C08" -- add reset debug to regs -- verified resetft issues b2tt_runreset, and none others 188 -- VERSION : std_logic_vector(15 downto 0) := X"0C09" -- rm rst dbg. reduce sps bram size. switch metric to le_charge. switch to 128 samples. 189 -- VERSION : std_logic_vector(15 downto 0) := X"0C0A" -- added self_trig mode, refactored mode multiplexing, connected trig_proc_cnt, added quick-send of null hits 190 -- VERSION : std_logic_vector(15 downto 0) := X"0C0B" -- changed ped measure to have predefiend hold time for analog samples, added padding to sampling mask 191 -- VERSION : std_logic_vector(15 downto 0) := X"0C0C" -- fix trig_asic[0:9]to[1:10] mapping bug. fix intermittent no-debug-wave bug(?). switch to 128 ped avgs. 192 -- VERSION : std_logic_vector(15 downto 0) := X"0C0D" -- no ftsw trig modes caused rx_features to hang -- moved lgc to pkt sending. Use newmask on tb5 evts only, ftsw or self trig only. 193 -- VERSION : std_logic_vector(15 downto 0) := X"0C0E" -- Fix bug: HitData.first_hit was being dropped before writing to qt_fifo 194 -- VERSION : std_logic_vector(15 downto 0) := X"0C0F" -- inc. trg_proc_cnt for null hits; temp fake pkt for null trigs; zero i_vectrgbits after force trig 195 -- VERSION : std_logic_vector(15 downto 0) := X"0C10" -- add width to force trig bits, simplify calcROI handshake 196 -- VERSION : std_logic_vector(15 downto 0) := X"0C11" -- trig_queue bug fixes, add 2 bits to daq packet 197 -- VERSION : std_logic_vector(15 downto 0) := X"0C12" -- lookback tuning, queue getting full thresh 198 -- VERSION : std_logic_vector(15 downto 0) := X"0C13" -- fix rd_stale bug. 199 -- VERSION : std_logic_vector(15 downto 0) := X"0C14" -- add diff proc counts. simplify CalculateROI. 200 -- VERSION : std_logic_vector(15 downto 0) := X"0C15" -- fix new_mask bug, missing default when tb5!='1'. Also BUS_RD_WINSEL was disconnected somehow. 201 -- VERSION : std_logic_vector(15 downto 0) := X"0C16" -- Removed redundant OTHERS states. Rep. self trg w/ not ftsw trg. Modify rd_stale lgc. 202 -- VERSION : std_logic_vector(15 downto 0) := X"0C17" -- Simplify lgc in ProcWaveform:LOOPING_JOBS 203 VERSION : (15 downto 0) := X"FE00" -- Move HitDataSerializer to WaveformReadout_i 206 -- LEDS : inout STD_LOGIC_VECTOR(12 downto 3); 207 force_trig : in ;
-- sim only 220 mgtmod0 : in (1 to NUM_GTS);
221 mgtlos : in (1 to NUM_GTS);
222 mgttxdis : out (1 to NUM_GTS);
223 mgtmod2 : out (1 to NUM_GTS);
224 mgtmod1 : out (1 to NUM_GTS);
235 -- EX_TRIGGER_MB : out std_logic; 236 -- EX_TRIGGER_SCROD : out STD_LOGIC; 240 ----- ASIC related ports ------ 242 -- BUS_REGCLR : out std_logic; 245 BUSA_RD_ROWSEL : out (2 downto 0);
246 BUSA_RD_COLSEL : out (5 downto 0);
249 BUSA_SAMPLESEL : out (4 downto 0);
250 BUSA_SR_CLEAR : out ;
252 BUSA_DO : in (14 downto 0);
257 BUSB_RD_ROWSEL : out (2 downto 0);
258 BUSB_RD_COLSEL : out (5 downto 0);
261 BUSB_SAMPLESEL : out (4 downto 0);
262 BUSB_SR_CLEAR : out ;
264 BUSB_DO : in (14 downto 0);
268 PCLK : out (9 downto 0);
269 SHOUT : in (9 downto 0);
270 SCLK : out (9 downto 0);
274 WL_CLK_P : out (9 downto 0);
275 WR1_ENA : out (9 downto 0);
276 WR2_ENA : out (9 downto 0);
278 SSTIN_N : out (9 downto 0);
279 SSTIN_P : out (9 downto 0);
283 SAMPLESEL_ANY : out (9 downto 0);
294 TDC_CS_DAC : out (9 downto 0);
306 RAM_IO : inout (7 downto 0);
-- tristate buffer below, use RAM_din or RAM_do, select with RAM_rw 313 -- SCL_MON : out STD_LOGIC; 314 -- SDA_MON : inout STD_LOGIC 316 -- TDC_DONE : in STD_LOGIC_VECTOR(9 downto 0); -- move to readout signals 317 -- TDC_MON_TIMING : in STD_LOGIC_VECTOR(9 downto 0) -- add the ref to the programming of the TX chip 324 -- SYNCHRONOUS SIGNALS BY PROCESS WHICH DRIVES THEM 328 signal b2tt_b2ttup_r : ;
329 signal b2tt_b2ttup_2r : ;
330 signal b2tt_regdbg : (7 downto 0) := (others => '0');
336 -- signal i_trgon : std_logic := '1'; 338 -- rst_conc_intfc_on_startup: 340 signal klmifc_reset_done : := '0';
348 -- SIGNALS DRIVEN BY INSTANTIATED ENTITIES 352 signal clkinv : := '0';
353 signal clk2x : := '0';
354 signal b2tt_b2clkup : ;
355 signal b2tt_b2ttup : ;
356 signal b2tt_trgout : ;
357 signal b2tt_sigbit2 : (1 downto 0);
358 signal b2tt_trgtag : (31 downto 0);
359 signal b2tt_utime : (B2TT_NBITTIM-1 downto 0);
360 signal b2tt_ctime : (26 downto 0) := (others=>'0');
361 signal b2tt_divclk1 : (1 downto 0);
362 signal b2tt_divclk2 : (1 downto 0);
363 signal b2tt_runreset : := '1';
364 signal b2tt_feereset : := '1';
365 signal b2tt_gtpreset : := '1';
366 signal b2tt_b2lreset : := '1';
367 signal b2tt_b2ttver : (15 downto 0);
368 signal b2tt_fifordy : := '0';
369 signal b2tt_fifodata : (95 downto 0) := (others => '0');
370 signal b2tt_exprun : (31 downto 0);
371 signal b2tt_frame : ;
372 signal b2tt_frame9 : ;
373 signal b2tt_dbglink : (95 downto 0) := (others => '0');
378 signal b2tt_fifonext : := '0';
379 signal rcl_src_rdy_n : ;
380 signal rcl_data : (15 downto 0);
381 signal aurora_stat : Aurora_Status_t;
382 signal i_qt_fifo_rd_en : ;
383 signal i_exttb : tb_vec_type;
384 signal stat_tx_in_progress : ;
385 -- signal b2tt_b2plllk : std_logic; 386 -- signal rcl_sof_n : std_logic; 387 -- signal rcl_eof_n : std_logic; 392 signal ScrodControl : KlmScrodControlType;
393 signal klm_status_regs : stat_reg_type;
394 -- signal rcl_dst_rdy_n : std_logic; 399 signal i_qt_fifo_empty : ;
400 signal i_qt_fifo_evt_rdy : ;
405 signal asic_pclk : := '0';
406 signal asic_sclk : := '0';
411 signal DIN_DAC : := '0';
414 -- --! mppc_current_measurement (Module_ADC_MCP3221_I2C_new): 415 -- signal i_sda_mon : std_logic := '0'; 416 -- signal i_scl_mon : std_logic := '0'; 422 -- SINALS DRIVEN ASYNCHRONOUSLY 426 signal i_force_trig : ;
433 --------------------- ASYNCHRONOUS LOGIC --------------------------------------------- 441 BUSA_DIN_DAC <= DIN_DAC;
442 BUSB_DIN_DAC <= DIN_DAC;
443 --Only specified ASIC gets serial data signals, uses bit mask 444 -- TODO : add asics number as a generic of tx_dac_control 445 -- and move below lines to the entity 446 gen_DAC_CONTROL: for i in 0 to 9 generate 448 PCLK(i) <= asic_pclk and ScrodConfig.TxRegCtrlMask(i);
449 SCLK(i) <= asic_sclk and ScrodConfig.TxRegCtrlMask(i);
450 end generate gen_DAC_CONTROL;
452 sim_true: if IS_SIM = '1' generate 455 if rising_edge(clk) then 459 b2tt_trig <= b2tt_sigbit2(0);
460 i_force_trig <= force_trig;
463 sim_false: if IS_SIM = '0' generate 465 b2tt_trig <= b2tt_trgout;
466 i_force_trig <= ScrodControl.force_trig;
470 --------------------- SYNCHRONOUS LOGIC --------------------------------------------- 471 startup_latch_proc:
process(
clk, b2tt_utime, b2tt_b2clkup, b2tt_b2ttup,
472 b2tt_b2ttup_r, b2tt_b2ttup_2r, ScrodControl.B2ttDbg)
473 variable i_utime_latched : := '0';
475 if rising_edge(clk) then 476 if i_utime_latched = '0' and b2tt_utime /= X"0000_0000" then 479 i_utime_latched := '1';
482 b2tt_b2ttup_r <= b2tt_b2ttup;
483 b2tt_b2ttup_2r <= b2tt_b2ttup_r;
484 if b2tt_b2ttup_2r /= b2tt_b2ttup_r then 488 b2tt_regdbg(5 downto 0) <= ScrodControl.B2ttDbg;
494 b2tt_dbg2reg_proc:
process (
clk)
496 if rising_edge(clk) then 497 ScrodStatus.B2ttStaIddr <= b2tt_dbglink(23 downto 22);
498 ScrodStatus.B2ttCntIdelay <= b2tt_dbglink(64 downto 58);
506 -- trgon_sw_4scaler_mode: process(clk) 508 -- if rising_edge(clk) then 509 -- if ScrodConfig.ReadoutMode = X"3" then 519 rst_conc_intfc_on_startup:
process (
clk, b2tt_runreset)
521 if rising_edge(clk) then 522 if klmifc_reset_done = '1' then 526 klmifc_reset_done <= '1';
533 stat_reg_ppln:
process(
clk, klm_status_regs)
535 if rising_edge(clk) then 542 -- asic_and_channel_multiplexer_for_mppc_current_measurement: process(clk, ScrodConfig.MppcAdcAsicN, ScrodConfig.MppcAdcChanN) 544 -- if rising_edge(clk) then 545 -- TDC_AMUX_S <= ScrodConfig.MppcAdcAsicN; -- channel within daughter card 546 -- TOP_AMUX_S <= ScrodConfig.MppcAdcChanN; -- daughter number FIXME: AsicN and ChanN are mixed up 553 --------------------- MODULE INSTANTIATIONS --------------------------------------------- 554 b2tt_i :
entity work.
b2tt 556 SUBSYSTEM => B2TT_SUBSYSTEM,
557 FWTYPE => B2TT_FWTYPE,
558 VERSION => B2TT_VERSION,
559 B2TT_VER => B2TT_B2TT_VER,
560 PROTOCOL => B2TT_PROTOCOL,
561 COMPAT => B2TT_COMPAT,
562 DEFADDR => B2TT_DEFADDR,
563 FLIPCLK => B2TT_FLIPCLK,
564 FLIPTRG => B2TT_FLIPTRG,
565 FLIPACK => B2TT_FLIPACK,
566 USEFIFO => B2TT_USEFIFO,
567 CLKDIV1 => B2TT_CLKDIV1,
568 CLKDIV2 => B2TT_CLKDIV2,
569 USEPLL => B2TT_USEPLL,
570 USEICTRL => B2TT_USEICTRL,
571 NBITTIM => B2TT_NBITTIM,
572 NBITTAG => B2TT_NBITTAG,
573 B2LRATE => B2TT_B2LRATE,
574 USEEXTCLK => B2TT_USEEXTCLK,
575 USE254IN => B2TT_USE254IN,
-- 576 SIM_SPEEDUP => B2TT_SIM_SPEEDUP
) 578 b2ttver => b2tt_b2ttver,
588 --- alternative external clock source 595 id => X"00FF",
-- Use MSB for MB because RPC FEBs use LSB !How does this board get address? 596 -- user status register (for debug) 600 b2clkup => b2tt_b2clkup,
601 b2ttup => b2tt_b2ttup,
602 --- system clock and time 611 divclk1 => b2tt_divclk1,
612 divclk2 => b2tt_divclk2,
613 --- exp- / run-number 614 exprun => b2tt_exprun,
617 runreset => b2tt_runreset,
618 feereset => b2tt_feereset,
619 b2lreset => b2tt_b2lreset,
620 gtpreset => b2tt_gtpreset,
621 rstmask =>
open,
-- for runreset 623 trgout => b2tt_trgout,
625 trgtag => b2tt_trgtag,
630 frame9 => b2tt_frame9,
632 revosig =>
open,
-- TBI, 633 abortgap =>
open,
-- TBI, 641 --- busy and status return 642 busysrc => X"00",
-- to suspend the trigger 643 feeerr => X"00",
-- to stop the run 644 --- Belle2link status 645 b2plllk => aurora_stat.gtlock,
649 --- SEM status (virtex5_seu_controller or SEU mitigation ipcore) 650 semscan => '0',
-- end_of_scan / watchdog (=> 1 bit) 651 semdet => '0',
-- seu_detect / corrected (=> 2 bit counter) 652 semmbe => '0',
-- mbe/uncorrectable 653 semcrc => '0',
-- crc_error (virtex5 only) (=> combined) 654 --- data for Belle2link header 655 fifordy => b2tt_fifordy,
656 fifodata => b2tt_fifodata,
657 fifonext => b2tt_fifonext,
659 regdbg => b2tt_regdbg,
--X"00", 660 octet =>
open,
-- decode 661 isk =>
open,
-- decode 662 cntbit2 =>
open,
-- decode 663 sigbit2 => b2tt_sigbit2,
--open, -- decode 664 dbglink => b2tt_dbglink,
677 b2tt_b2clkup => b2tt_b2clkup,
678 -- b2tt_b2ttup => b2tt_b2ttup, 679 -- b2tt_trig => b2tt_trig, 680 -- b2tt_b2plllk => b2tt_b2plllk, 682 b2tt_divclk1 => b2tt_divclk1,
683 b2tt_divclk2 => b2tt_divclk2,
685 -- b2tt_feereset => b2tt_feereset, 686 b2tt_gtpreset => b2tt_gtpreset,
688 -- b2tt_b2lreset => b2tt_b2lreset, 689 b2tt_fifordy => b2tt_fifordy,
690 b2tt_fifodata => b2tt_fifodata,
691 b2tt_fifonext => b2tt_fifonext,
692 b2tt_frame => b2tt_frame,
693 b2tt_trgtag => b2tt_trgtag,
697 target_tb => target_tb,
-- in tb_vec_type; 703 mgttxdis => mgttxdis,
706 mgtclk0p => mgtclk0p,
707 mgtclk0n => mgtclk0n,
708 mgtclk1p => mgtclk1p,
709 mgtclk1n => mgtclk1n,
714 sfp_stat => ScrodStatus.sfp_stat,
715 aurora_stat => aurora_stat,
717 -- run control signals TODO : pack it into a record 718 -- rcl_dst_rdy_n => rcl_dst_rdy_n, 719 -- rcl_sof_n => rcl_sof_n, 720 -- rcl_eof_n => rcl_eof_n, 721 rcl_src_rdy_n => rcl_src_rdy_n,
722 rcl_data => rcl_data,
724 qt_fifo_rd_en => i_qt_fifo_rd_en,
726 qt_fifo_empty => i_qt_fifo_empty,
727 qt_fifo_evt_rdy => i_qt_fifo_evt_rdy,
729 -- trgon => i_trgon, -- on/off trg path processing 731 exttb => i_exttb,
-- trgbit pass through 733 klm_status_upd => ScrodControl.KlmStatusUpdate,
734 stat_tx_in_progress => stat_tx_in_progress,
--out 743 -- rst => b2tt_runreset, 745 -- rcl_dst_rdy_n => rcl_dst_rdy_n, 746 -- rcl_sof_n => rcl_sof_n, 747 -- rcl_eof_n => rcl_eof_n, 748 rcl_src_rdy_n => rcl_src_rdy_n,
749 rcl_data => rcl_data,
752 ScrodControl => ScrodControl,
-- control signals to update TX and MPPC regs 755 klm_status_regs => klm_status_regs,
756 stat_tx_in_progress => stat_tx_in_progress
764 rst => b2tt_runreset,
766 trg => b2tt_trig,
-- trigger signal from b2tt 767 trgtag => b2tt_trgtag,
-- trigger tag (event number) 770 vectrgbits => i_exttb,
-- trigger bits from all asics 775 qt_fifo_empty => i_qt_fifo_empty,
776 qt_fifo_evt_rdy => i_qt_fifo_evt_rdy,
779 force_trig => i_force_trig,
780 sps_reset => ScrodControl.sps_reset,
785 scalers_ch_arr => ScrodStatus.TbScalersChnArr,
786 -- tbfifo_cnt => ScrodStatus.TbFifoCnt, 787 tbfifo_err_cnt => ScrodStatus.TbFifoFullCnt,
789 trg_cnt => ScrodStatus.TrgCnt,
790 full_proc_cnt => ScrodStatus.FullProcCnt,
791 simp_proc_cnt => ScrodStatus.SimpProcCnt,
792 null_proc_cnt => ScrodStatus.NullProcCnt,
793 -- occ_err_cnt => ScrodStatus.HitsOverflowCnt, 794 wave_stat => ScrodStatus.WaveStat,
795 debug_wave_we => ScrodStatus.debug_wave_we,
796 debug_wave_din => ScrodStatus.debug_wave_din,
797 SPS_hist_rd_data => ScrodStatus.SPS_hist_rd_data,
799 -- ctime_max => ScrodStatus.CTimeMax, 810 BUSA_RAMP => BUSA_RAMP,
811 BUSA_CLR => BUSA_CLR,
812 BUSA_RD_COLSEL => BUSA_RD_COLSEL,
813 BUSA_RD_ENA => BUSA_RD_ENA,
814 BUSA_RD_ROWSEL => BUSA_RD_ROWSEL,
815 BUSA_SAMPLESEL => BUSA_SAMPLESEL,
816 BUSA_SR_CLEAR => BUSA_SR_CLEAR,
817 BUSA_SR_SEL => BUSA_SR_SEL,
822 BUSB_RAMP => BUSB_RAMP,
823 BUSB_CLR => BUSB_CLR,
824 BUSB_RD_COLSEL => BUSB_RD_COLSEL,
825 BUSB_RD_ENA => BUSB_RD_ENA,
826 BUSB_RD_ROWSEL => BUSB_RD_ROWSEL,
827 BUSB_SAMPLESEL => BUSB_SAMPLESEL,
828 BUSB_SR_CLEAR => BUSB_SR_CLEAR,
829 BUSB_SR_SEL => BUSB_SR_SEL,
831 -- daughter card pins 836 -- TDC_DONE => TDC_DONE, 837 SAMPLESEL_ANY => SAMPLESEL_ANY,
845 targetx_dac_control_i :
entity work.targetx_dac_control
849 LOAD_PERIOD => ScrodConfig.TxLoadPeriod,
850 LATCH_PERIOD => ScrodConfig.TxLatchPeriod,
852 REG_DATA => ScrodConfig.TxRegData,
853 UPDATE => ScrodControl.TxRegUpdate,
855 busy => ScrodStatus.TxRegBusy,
866 ------------CLOCK----------------- 868 ------------DAC PARAMETERS-------- 869 DAC_NUMBER => ScrodConfig.MppcDacCtrl
(15 downto 12),
-- Number, 870 DAC_ADDR => ScrodConfig.MppcDacCtrl
(11 downto 8),
-- Addr, 871 DAC_VALUE => ScrodConfig.MppcDacCtrl
(7 downto 0),
-- Value, 873 WRITE_STROBE => ScrodControl.MppcDacUpdate,
874 busy => ScrodStatus.MppcDacBusy,
875 ------------HW INTERFACE---------- 878 TDC_CS_DAC => TDC_CS_DAC
883 -- (CK) commented out module for timing closure (since it needs work anyway) 884 -- check comments in Module_ADC_MCP3221_I2C_new for details 885 ----------------------------------------------------------------- 886 -- mppc_current_measurement : entity work.Module_ADC_MCP3221_I2C_new 889 -- reset => ScrodControl.ADCReset, 891 -- debugmode => ScrodConfig.ADCdebug, 896 -- runADC => ScrodControl.RunADC, 897 -- ADCOutput => ScrodStatus.MppcAdcData 900 -- SDA_MON <= i_sda_mon ; 901 -- SCL_MON <= i_scl_mon; 902 --------------------------------------------------------------- 906 -- #CK had warning HDLCompiler:946 b/c "c1 => not clk" in previous ODDR2 inst." 907 -- Decided to bring out inverted clock directly from pll_base located in b2tt_clk_s6. 908 wilkinson_clock_generation : for i in 0 to 9 generate 909 -- make 2x clk using OLOGIC2 resources 910 clock_frequency_doubling : ODDR2
port map (
920 -- make differential output 921 differential_output_buffer : OBUFDS
port map (i =>
wilk_clk(i
), o => WL_CLK_P
(i
), ob =>
WL_CLK_N(i
));
923 -- Might be possible to get 4x wilk_clk by bringing 2x clk out of pll_base. 924 -- Need to test and see what the TargetX and associated circuit can handle. stat_reg_type klm_status_regs_r
stat_reg_ppln:
out BUSB_WR_ADDRCLRstd_logic
BusB signals.
std_logic := '0' SCK_DAC
mppc_hv_dac_wrapper_i (mppc_dacs_wrapper_dac088s085):
out qt_fifo_err_cntstd_logic_vector( 15 downto 0)
tbfifo_cnt : out slv16(9 downto 0) := (others => (others => '0')); – debug
std_logic := '0' klmifc_reset
trgon_sw_4scaler_mode:
in qt_fifo_rd_enstd_logic := '0'
daq data ports
KlmScrodStatusType := KlmScrodStatusType0 ScrodStatus
b2tt_dbg2reg_proc:
std_logic_vector( 9 downto 0) :=( others => '0') wilk_clk
clock_frequency_doubling
in TTDCLKPstd_logic
FTSW.
out BUSA_WR_ADDRCLRstd_logic
BusA signals.
in trgstd_logic := '0'
b2tt signals
in vectrgbitstb_vec_type :=( others =>( others => '0'))
trigger bits from all asics
std_logic := '0' asic_sin
targetx_dac_control_i (targetx_dac_control):
in TARGET_TBtb_vec_type
TRIGGER SIGNALS.
out scalers_busystd_logic
status ports TODO : pack it into a record e.g. ReadoutStatus
KlmScrodConfigType := KlmScrodConfigZero ScrodConfig
Register_Control_i (KLMScrodRegCtrl):
out WL_CLK_Nstd_logic_vector( 9 downto 0)
Digitization and sampling signals.
out SINstd_logic_vector( 9 downto 0)
ASIC DAC Update Signals.
in mgttxfaultstd_logic_vector( 1 to NUM_GTS)
SFP.
std_logic_vector( 26 downto 0) :=( others => '0') b2tt_ctime_i
sim_true_false:
out BUSA_WR_ADDRCLRstd_logic
MB Specific Signals BUS A Specific Signals.
in scalers_resetstd_logic := '0'
reset scalers for trigger bits
out BUSA_SCK_DACstd_logic
MPPC HV DAC.
out TOP_AMUX_Sstd_logic_vector( 3 downto 0)
out RAM_ADDRstd_logic_vector( 21 downto 0)
PED SRAM.
out BUSB_WR_ADDRCLRstd_logic
Bus B Specific Signals.
std_logic_vector( 17 downto 0) i_qt_fifo_d
Readout_Control_i (KLMReadoutCtrl):
out SR_CLOCKstd_logic_vector( 9 downto 0)
Serial Readout Signals.
std_logic := '0' clk
asic_and_channel_multiplexer_for_mppc_current_measurement: b2tt_i (b2tt):
std_logic := '0' b2tt_b2linkwe
KLM_Interface_i (klm_intfc):
out TDC_AMUX_Sstd_logic_vector( 3 downto 0)
Target Daugher Card Channel Select - Fanned out to 10 MUXs.
std_logic b2tt_b2clkup_r
startup_latch_proc:
inout RAM_IOstd_logic_vector( 7 downto 0) :=( others => '0')
debug FIXME : remove pedestal RAM access
out WR1_ENAstd_logic_vector( 9 downto 0)
TargetX DC signals.