eFEX firmware  1.7.3
ATLAS l1-calo - electron and tau feature extraction firmware for eFEX boards

Back to eFEX documentation
Generics | Libraries | Ports | Use Clauses
top_efex_processor Entity Reference

Top of the process FPGA. More...

Inheritance diagram for top_efex_processor:
efex_topo_tx IPBusTopMergingModule mgt_slaves MGT_4_quad_gen data_path_block Readout_logic_top clk_resources self_configure startup slaves lib_registers common_id_registers proc_FPGAs

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

Detailed Description

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.

Real-Time Logic

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:

Control Interface

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.

Infrastructure

The following blocks implement resources that are used by many or all of the other areas of logic.

Example of timing diagram

         ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐
 CLK:  ──┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─
         ┌───┐ ┌───┐ ┌─┐ ┌─────┐   ┌─┐ ┌─┐
 SIG1: ──┘   └─┘   └─┘ └─┘     └───┘ └─┘ └
         ┌─────┐   ┌─┐   ┌─┐   ┌───┐
 SIG2: ──┘     └───┘ └───┘ └───┘   └────
       ┬─────┬────┬────┬────┬────┬
 Data: │     │ A1 │ A2 │ X  │    │
       ┴─────┴────┴────┴────┴────┴
Author
Mohammed Syiad
Francesco Gonnella
Saeed Taghavi

Definition at line 96 of file top_efex_processor.vhd.


The documentation for this class was generated from the following file: