P4C
The P4 Compiler
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Target::Tofino Class Reference
Inheritance diagram for Target::Tofino:
[legend]

Classes

class  ActionTable
 
class  CounterTable
 
struct  deparser_regs
 
class  ExactMatchTable
 
class  GatewayTable
 
class  MeterTable
 
struct  parser_regs
 
class  Phv
 
class  StatefulTable
 
class  TernaryIndirectTable
 
class  TernaryMatchTable
 
struct  top_level_regs
 

Public Types

enum  {
  ARAM_UNITS_PER_STAGE = 0 , PARSER_CHECKSUM_UNITS = 2 , PARSER_EXTRACT_BYTES = false , PARSER_DEPTH_MAX_BYTES_INGRESS = (((1 << 10) - 1) * 16) ,
  PARSER_DEPTH_MAX_BYTES_EGRESS = (((1 << 10) - 1) * 16) , PARSER_DEPTH_MAX_BYTES_MULTITHREADED_EGRESS = 160 , PARSER_DEPTH_MIN_BYTES_INGRESS = 0 , PARSER_DEPTH_MIN_BYTES_EGRESS = 65 ,
  MATCH_BYTE_16BIT_PAIRS = true , MATCH_REQUIRES_PHYSID = false , MAX_IMMED_ACTION_DATA = 32 , MAX_OVERHEAD_OFFSET = 64 ,
  MAX_OVERHEAD_OFFSET_NEXT = 40 , NUM_MAU_STAGES_PRIVATE = 12 , NUM_EGRESS_STAGES_PRIVATE = NUM_MAU_STAGES_PRIVATE , ACTION_INSTRUCTION_MAP_WIDTH = 7 ,
  DEPARSER_CHECKSUM_UNITS = 6 , DEPARSER_CONSTANTS = 0 , DEPARSER_MAX_POV_BYTES = 32 , DEPARSER_MAX_POV_PER_USE = 1 ,
  DEPARSER_MAX_FD_ENTRIES = 192 , DP_UNITS_PER_STAGE = 0 , DYNAMIC_CONFIG = 0 , DYNAMIC_CONFIG_INPUT_BITS = 0 ,
  EGRESS_SEPARATE = false , END_OF_PIPE = 0xff , EXACT_HASH_GROUPS = 8 , EXACT_HASH_TABLES = 16 ,
  EXTEND_ALU_8_SLOTS = 0 , EXTEND_ALU_16_SLOTS = 0 , EXTEND_ALU_32_SLOTS = 0 , GATEWAY_INHIBIT_INDEX = false ,
  GATEWAY_MATCH_BITS = 56 , GATEWAY_NEEDS_SEARCH_BUS = true , GATEWAY_PAYLOAD_GROUPS = 1 , GATEWAY_ROWS = 8 ,
  GATEWAY_SINGLE_XBAR_GROUP = true , SUPPORT_TRUE_EOP = 0 , INSTR_SRC2_BITS = 4 , IMEM_COLORS = 2 ,
  IXBAR_HASH_GROUPS = 8 , IXBAR_HASH_INDEX_MAX = 40 , IXBAR_HASH_INDEX_STRIDE = 10 , LOCAL_TIND_UNITS = 0 ,
  LONG_BRANCH_TAGS = 0 , MAU_BASE_DELAY = 20 , MAU_BASE_PREDICATION_DELAY = 11 , MAU_ERROR_DELAY_ADJUST = 2 ,
  METER_ALU_GROUP_DATA_DELAY = 13 , MINIMUM_REQUIRED_EGRESS_PIPELINE_LATENCY = 160 , NEXT_TABLE_EXEC_COMBINED = false , NEXT_TABLE_SUCCESSOR_TABLE_DEPTH = 8 ,
  PHASE0_FORMAT_WIDTH = 64 , REQUIRE_TCAM_ID = false , SRAM_EGRESS_ROWS = 8 , SRAM_GLOBAL_ACCESS = false ,
  SRAM_HBUS_SECTIONS_PER_STAGE = 0 , SRAM_HBUSSES_PER_ROW = 0 , SRAM_INGRESS_ROWS = 8 , SRAM_LAMBS_PER_STAGE = 0 ,
  SRAM_LOGICAL_UNITS_PER_ROW = 6 , SRAM_REMOVED_COLUMNS = 2 , SRAM_STRIDE_COLUMN = 1 , SRAM_STRIDE_ROW = 12 ,
  SRAM_STRIDE_STAGE = 0 , SRAM_UNITS_PER_ROW = 12 , STATEFUL_CMP_UNITS = 2 , STATEFUL_CMP_ADDR_WIDTH = 2 ,
  STATEFUL_CMP_CONST_WIDTH = 4 , STATEFUL_CMP_CONST_MASK = 0xf , STATEFUL_CMP_CONST_MIN = -8 , STATEFUL_CMP_CONST_MAX = 7 ,
  STATEFUL_TMATCH_UNITS = 0 , STATEFUL_OUTPUT_UNITS = 1 , STATEFUL_PRED_MASK = (1U << (1 << STATEFUL_CMP_UNITS)) - 1 , STATEFUL_REGFILE_ROWS = 4 ,
  STATEFUL_REGFILE_CONST_WIDTH = 32 , SUPPORT_ALWAYS_RUN = 0 , HAS_MPR = 0 , SUPPORT_CONCURRENT_STAGE_DEP = 1 ,
  SUPPORT_OVERFLOW_BUS = 1 , SUPPORT_SALU_FAST_CLEAR = 0 , STATEFUL_ALU_ADDR_WIDTH = 2 , STATEFUL_ALU_CONST_WIDTH = 4 ,
  STATEFUL_ALU_CONST_MASK = 0xf , STATEFUL_ALU_CONST_MIN = -8 , STATEFUL_ALU_CONST_MAX = 7 , MINIMUM_INSTR_CONSTANT = -8 ,
  NUM_PARSERS = 18 , NUM_PIPES = 4 , OUTPUT_STAGE_EXTENSION_PRIVATE = 0 , SYNTH2PORT_NEED_MAPRAMS = true ,
  TCAM_EXTRA_NIBBLE = true , TCAM_GLOBAL_ACCESS = false , TCAM_MATCH_BUSSES = 2 , TCAM_MEMORY_FULL_WIDTH = 47 ,
  TCAM_ROWS = 12 , TCAM_UNITS_PER_ROW = 2 , TCAM_XBAR_GROUPS = 12 , TABLES_REQUIRE_ROW = 1
}
 
typedef ::Tofino::regs_match_action_stage_ mau_regs
 
typedef Target::Tofino register_type
 
typedef Target::Tofino target_type
 

Static Public Member Functions

static int encodeConst (int src)
 
- Static Public Member Functions inherited from Target
static int encodeConst (int src)
 
static int NUM_BUS_OF_TYPE (int bus_type)
 
static int NUM_EGRESS_STAGES ()
 
static int NUM_MAU_STAGES ()
 
static int NUM_STAGES (gress_t gr)
 
static int OUTPUT_STAGE_EXTENSION ()
 
static void OVERRIDE_NUM_MAU_STAGES (int num)
 
static int SRAM_ROWS (gress_t gr)
 

Static Public Attributes

static constexpr const char *const name = "tofino"
 
static constexpr target_t register_set = TOFINO
 
static constexpr target_t tag = TOFINO
 

Additional Inherited Members

- Public Member Functions inherited from Target
virtual int NUM_BUS_OF_TYPE_v (int bus_type) const
 

Class Documentation

◆ Target::Tofino::deparser_regs

struct Target::Tofino::deparser_regs
Class Members
typedef ::regs_all_deparser_header_phase _header
typedef ::regs_all_deparser_input_phase _input
Class Members
::regs_all_deparser_header_phase header
::regs_all_deparser_input_phase input

◆ Target::Tofino::top_level_regs

struct Target::Tofino::top_level_regs
Class Members
typedef ::memories_pipe _mem_pipe
typedef ::memories_top _mem_top
typedef ::regs_pipe _regs_pipe
typedef ::regs_top _regs_top
Class Members
::memories_pipe mem_pipe
::memories_top mem_top
map< unsigned, ::regs_all_parser_egress * > parser_egress
map< unsigned, ::regs_all_parser_ingress * > parser_ingress
map< unsigned, ::memories_all_parser_ * > parser_memory[2]
::regs_all_parse_merge parser_merge
::regs_pipe reg_pipe
::regs_top reg_top