Functions | Variables

/scratch/npr78/temp/xspress3_api/det-software/none_vme/xspress3/lib/xspress3_hardware_conf.c File Reference

Functions

int xsp3_features_unpack (int path, int card)
 Read the features registers and expand into the features structure.
int xsp3_nbits_aux1 (int path, int aux1_mode)
 Get number of bits used by given aux1 special debug mode.
int xsp3_nbits_adc (int path, int adc_cont)
 Get the number of bits of ADC.
int xsp3_trigger_b_get_diff_params (int path, int *sep_offset, int *sep_max)
 Get the trigger B hardware limits determined by use of BRAM or SRL32 for diff1 and diff2 delay.
int xsp3_trigger_b_get_ringing_params (int path, int *min_delay, int *max_delay)
 Get the trigger B ringing subtractor hardware limits.
int xsp3_has_bram (int path, int chan, int region_num)
 Determine if the Firmware has a given BRAM.
int xsp3_has_soft_lut (int path, int chan, int region_num)
 Determine if the software processing has a given LUT/BRAM.
int xsp3_get_has_soft_scalers (int path)
 Determine whether firmware requires scalers in software.
int xsp3_get_features (int path, int card, Xspress3_features *features)
 Return structure describing the hardware features enabled in the current firmware build.
int xsp3_has_itfg (int path, int card)
 Determine whether firmware includes an internal TFG.
int xsp3_has_reset_det (int path, int card)
 Determine whether firmware includes a Reset detector.
int xsp3_has_glitch_det (int path, int card, int *min_thres)
 Determine whether firmware includes a glitch detector.
int xsp3_has_scope_dig_alt0 (int path, int card)
 Determine whether firmware Alternatebit 3..0 controlling scope stream 0.
int xsp3_bram_size (int path, int chan, int region_num)
 Determine if the size of the given BRAM.
int xsp3_has_lead_tail_corr_width (int path, int chan, int region_num, int *num_t, int *num_wid)
 Determine the option code for event lead and tail correction type and and return layout.
int xsp3_has_lead_corr (int path, int card)
 Determine if the firmware has event lead-in corection configured.
int xsp3_has_servo_bi_linear_time (int path, int chan)
 Determine the option code for the bi-linear time version(s) of PWL servo.

Variables

int xsp3_nbits_adc_1 [8] = { 0, 4, 6, 8, 10, 12, 14, 16 }
int xsp3_nbits_aux1_1 [16] = { 0, 4, 1, 4, 10, 10, 10, 1, 12, 1, 0, 0, 0, 0, 0, 0 }
int xsp3_bram_size_table [XSP3_REGION_RAM_MAX+1]
int xsp3_bram_width [XSP3_REGION_RAM_MAX+1] = { 32, 18, 18, 32, 12, 18, 32, 8, 4, 18, 18 }
const char * xsp3_bram_name [XSP3_REGION_RAM_MAX+1]
XSP3Path Xsp3Sys [XSP3_MAX_PATH]
char error_message [XSP3_MAX_MSG_LEN+1]
char * xsp3_feature_test_data_source_a [4] = { "No Playback", "2 stream Playback", "unknown", "unknown"}
char * xsp3_feature_test_data_source_b [4] = { "No BRAM test pattern Generator", "BRAM test pattern Generator", "unknown", "unknown"}
char * xsp3_feature_real_data_source [16] = {"Current", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_data_mux [16] = {"Current", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_inl_corr [16] = { "No", "Yes", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_reset_detector [16] = { "No", "Yes", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_reset_corr [16] = { "Current", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_glitch_detect [16] = { "Minimal (Passes Global Reset only)", "Original with 8 bit threshold", "Original with 10 bit threshold", "Long pre-time with 10 bit threshold", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_glitch_pad [16] = { "unknown", "Hold Previous value", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_trigger_b_l [4] = { "2nd differential with BRAM delays", "unknown", "2nd differential trigger with SRL32 delay", "unknwon"}
char * xsp3_feature_trigger_b_m [4] = { "No ringing filter", "Ringing filter version 1", "Ringing filter version 2", "unknwon"}
char * xsp3_feature_trigger_c [16] = { "No", "Yes", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_trigger_extra [16] = {"Current", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_calibrator [16] = { "None", "Original 10 us time units version", "Current 100 ns period time units", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_neighbour_events [16] = {"Current", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_servo_base [16] = { "No Servo", "PWL with single table (non-global reset)", "PWL width 16 tables for global reset", "Dual linear+PWL servo for faster rate changes", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_run_ave3 [2] = { "Max Filter 1024", "Max filter 4096"}
char * xsp3_feature_lead_tail0 [2] = { "Tail correction only", "Lead in and tail correction"}
char * xsp3_feature_lead_tail12 [4] = { "Correction as function of samples only", "Correction as function of samples and OTD event width 0..15", "unkown", "unkown"}
char * xsp3_feature_output_format [16] = { "32 bit addresses", "64 bit event info with event heights", "Event info with raw averages", "unknown", "unknown", "unknown", "unknown", "unknown", "ADC data offset differences", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_format_details_a01 [4] = { "NBits Eng=12", "NBits Eng=13", "NBits Eng=14", "NBits Eng=unknwon"}
char * xsp3_feature_format_details_a23 [4] = { "No Aux1 data, may include Just good mode", "Aux1=Debug Mode", "Aux1=Debug and thresholded", "Aux1=Full features"}
char * xsp3_feature_global_reset [16] = { "None", "Request Global reset and accept Global reset active signal", "Request Global reset and accept Global reset active signal and generate Gloabl reset output", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_timing_generator [16] = { "No internal TFG", "Minimal Internal TFG with all frames same length", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char * xsp3_feature_scope_mode [16] = { "2*3 stream scope-mode with digital bit15 = global reset active", "2*3 stream scope-mode with digital bit15 = global reset active or CountEnable", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }

Variable Documentation

char error_message[XSP3_MAX_MSG_LEN+1]
const char* xsp3_bram_name[XSP3_REGION_RAM_MAX+1]
Initial value:
 { "Registers", "Test Pattern", "Tail Subtract", "Quotient",
        "Region Of Interest", "Event Tail", "PWL Servo", "Pileup Time", "Aux1", "Servo Event Tail", "Event Lead" }
int xsp3_bram_size_table[XSP3_REGION_RAM_MAX+1]
Initial value:
 { XSP3_REGS_SIZE, XSP3_CHAN_TP_SIZE, XSP3_RESET_TAIL_SIZE,
        XSP3_QUOTIENT_SIZE, XSP3_ROI_SIZE, XSP3_EVENT_TAIL_SIZE, XSP3_PWL_SERVO_SIZE, XSP3_PILEUP_TIME_SIZE,
        XSP3_AUX1_SIZE, XSP3_SERVO_TAIL_SIZE, XSP3_EVENT_LEAD_SIZE }
int xsp3_bram_width[XSP3_REGION_RAM_MAX+1] = { 32, 18, 18, 32, 12, 18, 32, 8, 4, 18, 18 }
char* xsp3_feature_calibrator[16] = { "None", "Original 10 us time units version", "Current 100 ns period time units", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_data_mux[16] = {"Current", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_format_details_a01[4] = { "NBits Eng=12", "NBits Eng=13", "NBits Eng=14", "NBits Eng=unknwon"}
char* xsp3_feature_format_details_a23[4] = { "No Aux1 data, may include Just good mode", "Aux1=Debug Mode", "Aux1=Debug and thresholded", "Aux1=Full features"}
char* xsp3_feature_glitch_detect[16] = { "Minimal (Passes Global Reset only)", "Original with 8 bit threshold", "Original with 10 bit threshold", "Long pre-time with 10 bit threshold", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_glitch_pad[16] = { "unknown", "Hold Previous value", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_global_reset[16] = { "None", "Request Global reset and accept Global reset active signal", "Request Global reset and accept Global reset active signal and generate Gloabl reset output", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_inl_corr[16] = { "No", "Yes", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_lead_tail0[2] = { "Tail correction only", "Lead in and tail correction"}
char* xsp3_feature_lead_tail12[4] = { "Correction as function of samples only", "Correction as function of samples and OTD event width 0..15", "unkown", "unkown"}
char* xsp3_feature_neighbour_events[16] = {"Current", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_output_format[16] = { "32 bit addresses", "64 bit event info with event heights", "Event info with raw averages", "unknown", "unknown", "unknown", "unknown", "unknown", "ADC data offset differences", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_real_data_source[16] = {"Current", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_reset_corr[16] = { "Current", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_reset_detector[16] = { "No", "Yes", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_run_ave3[2] = { "Max Filter 1024", "Max filter 4096"}
char* xsp3_feature_scope_mode[16] = { "2*3 stream scope-mode with digital bit15 = global reset active", "2*3 stream scope-mode with digital bit15 = global reset active or CountEnable", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_servo_base[16] = { "No Servo", "PWL with single table (non-global reset)", "PWL width 16 tables for global reset", "Dual linear+PWL servo for faster rate changes", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_test_data_source_a[4] = { "No Playback", "2 stream Playback", "unknown", "unknown"}
char* xsp3_feature_test_data_source_b[4] = { "No BRAM test pattern Generator", "BRAM test pattern Generator", "unknown", "unknown"}
char* xsp3_feature_timing_generator[16] = { "No internal TFG", "Minimal Internal TFG with all frames same length", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_trigger_b_l[4] = { "2nd differential with BRAM delays", "unknown", "2nd differential trigger with SRL32 delay", "unknwon"}
char* xsp3_feature_trigger_b_m[4] = { "No ringing filter", "Ringing filter version 1", "Ringing filter version 2", "unknwon"}
char* xsp3_feature_trigger_c[16] = { "No", "Yes", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
char* xsp3_feature_trigger_extra[16] = {"Current", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown", "unknown" }
int xsp3_nbits_adc_1[8] = { 0, 4, 6, 8, 10, 12, 14, 16 }
int xsp3_nbits_aux1_1[16] = { 0, 4, 1, 4, 10, 10, 10, 1, 12, 1, 0, 0, 0, 0, 0, 0 }
XSP3Path Xsp3Sys[XSP3_MAX_PATH]