![]() |
eFEX firmware
1.7.3
ATLAS l1-calo - electron and tau feature extraction firmware for eFEX boards
|
Top of the process FPGA. More...
Entities | |
| Behavioral | architecture |
| Top of the process FPGA. More... | |
Libraries | |
| IEEE | |
| unisim | |
| algolib | |
| ipbus_lib | |
| infrastructure_lib | |
| TOB_rdout_lib | |
Use Clauses | |
| STD_LOGIC_1164 | |
| numeric_std | |
| VComponents | |
| AlgoDataTypes | Package <AlgoDataTypes> |
| ipbus | |
| all | |
| ipbus_decode_L1CaloEfexProcessor | Package <ipbus_decode_L1CaloEfexProcessor> |
| synch_type | Package <synch_type> |
| EfexDataFormats | Package <EfexDataFormats> |
| mgt_type | Package <mgt_type> |
| ProcessorFPGAPackage | Package <ProcessorFPGAPackage> |
| TOB_rdout_ip_pkg | Package <TOB_rdout_ip_pkg> |
| data_type_pkg | Package <data_type_pkg> |
| tob_rdout_comp_pkg | |
| golden | Package <golden> |
Generics | |
| FLAVOUR | integer := 0 |
| Integer used to distinguish different FPGAs having a slightly different firmware. | |
| GLOBAL_DATE | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Date format DDMMYYYY in decimal. | |
| GLOBAL_TIME | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Time format 00HHMMSS in decimal. | |
| GLOBAL_SHA | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Short 7-digit git SHA of the repository. | |
| GLOBAL_VER | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Version of the repository (format: MMmmpppp in hex) | |
| TOP_SHA | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Short 7-digit git SHA of the tcl file. | |
| TOP_VER | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Version of the top folder, see TOP_SHA. | |
| CON_SHA | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Short 7-digit git SHA of the tcl file. | |
| CON_VER | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Version of the top folder, see TOP_SHA. | |
| XML_SHA | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Short 7-digit git SHA of the XMLs. | |
| XML_VER | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Version of the XMLs. | |
| HOG_SHA | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Short 7-digit git SHA of the Hog submodule. | |
| HOG_VER | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Version of Hog. | |
| ALGOLIB_SHA | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Short 7-digit git sha. | |
| ALGOLIB_VER | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Version of algolib library (format: MMmmpppp in hex) | |
| INFRASTRUCTURE_LIB_SHA | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Short 7-digit git SHA. | |
| INFRASTRUCTURE_LIB_VER | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Version of infrastructure library (format: MMmmpppp in hex) | |
| TOB_RDOUT_LIB_SHA | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Short 7-digit git SHA. | |
| TOB_RDOUT_LIB_VER | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Version of the readout library (format: MMmmpppp in hex) | |
| IPBUS_LIB_SHA | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Short 7-digit git SHA of the ipbus submodule. | |
| IPBUS_LIB_VER | std_logic_vector ( 31 downto 0 ) := x " 00000000 " |
| Version of the readout library (format: MMmmpppp in hex) | |
| READOUT_ENABLED | boolean := true |
| INPUT_RAM_ENABLED | boolean := false |
| OUTPUT_RAMS_ENABLED | boolean := false |
| SORT_IN_RAM_ENABLED | boolean := false |
| SORT_OUT_RAM_ENABLED | boolean := false |
| MGT_ENABLED | boolean := true |
| MERGE_ENABLED | boolean := true |
| DATA_PATH_ENABLED | boolean := true |
| TAU_ALGO_VERSION | std_logic_vector ( 1 downto 0 ) := " 10 " |
| EG_ALGO_VERSION | std_logic_vector ( 1 downto 0 ) := " 01 " |
| ENCODING_MODE | integer := 2 |
| Possible values: -2: Steve's multilinear, -1, Standard multilinear, 0-5 linear encoding shifted by the specifide number of bits. | |
| EFEX_POSITION | integer := 0 |
| Possible values: 0 dynamic mapping, 1-3 static mapping. | |
| n_channels | natural := 64 |
Ports | ||
| gt_clk125_p | in | std_logic |
| 125MHz ipbus clock | ||
| gt_clk125_n | in | std_logic |
| 125MHz ipbus clock | ||
| master_rx_data | in | std_logic_vector ( 9 downto 0 ) |
| ipbus interconnections signals | ||
| master_tx_pause | in | std_logic |
| ipbus interconnections signals | ||
| master_tx_data | out | std_logic_vector ( 9 downto 0 ) |
| ipbus interconnections signals | ||
| flash_csn | out | std_logic |
| flash_mosi | out | std_logic |
| flash_miso | in | std_logic |
| flash_led | out | std_logic |
| ttc_clk_p | in | std_logic |
| ttc_clk_n | in | std_logic |
| reset_clk125 | in | std_logic |
| Reset signal for IPBus clock 125 from Control FPGA. | ||
| hardware_addr | in | std_logic_vector ( 11 downto 0 ) |
| fpga_geo_addr | in | std_logic_vector ( 1 downto 0 ) |
| geographical address of the fpga | ||
| VAUXP | in | std_logic |
| VAUXN | in | std_logic |
| Vp | in | std_logic |
| Vn | in | std_logic |
| efex_in | in | efex_processor_input |
| efex_out | out | efex_processor_output |
Top of the process FPGA.
This is the top level of the eFEX Processor firmware. The logic implemented here can be grouped into the areas of real-time, readout, control and infrastructure.
This logic implements the core functionality of the eFEX. It forms part of the real-time L1 processing chain that forms the trigger decision. There are 4 Processor FPGAs on the eFEX, and not all of them implement the same real-time logic, as explained below.
Every Processor FPGA performs the following real-time functions:
The control interface is implemented using IP from the IPBus project, which provides access to registers and RAM space within the firmware. For documentation on IPBus, see https://ipbus.web.cern.ch/introduction/ The control interface comprises the following modules.
The following blocks implement resources that are used by many or all of the other areas of logic.
┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐
CLK: ──┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─
┌───┐ ┌───┐ ┌─┐ ┌─────┐ ┌─┐ ┌─┐
SIG1: ──┘ └─┘ └─┘ └─┘ └───┘ └─┘ └
┌─────┐ ┌─┐ ┌─┐ ┌───┐
SIG2: ──┘ └───┘ └───┘ └───┘ └────
┬─────┬────┬────┬────┬────┬
Data: │ │ A1 │ A2 │ X │ │
┴─────┴────┴────┴────┴────┴
Definition at line 96 of file top_efex_processor.vhd.
1.9.1