Working with Primitives

During synthesis, the software maps your design's logic—LUTs, RAM, flipflops, etc.—to primitives. These primitives occupy specific locations (tiles or groups of tiles). Each tile has one or more sub-blocks in which to place a primitive. Placing multiple primitives into the same tile is called packing.

The following tables show the types of primitives, the tiles where you can place them, and the sub-blocks they can occupy.

Table 1. Mapping Trion Primitives to Tiles and Sub-Blocks
Tile Sub-Block
0 1 2 3
EFT EFX_LUT4
EFX_ADD
EFX_FF
EFL EFX_LUT4
EFX_ADD
RAM EFX_RAM_5K
EFX_DPRAM_5K
Reserved
MULT EFX_MULT
Table 2. Mapping Titanium and Topaz Primitives to Tiles and Sub-Blocks
Tile Sub-Block
0 1 2 3
EFT EFX_LUT4
EFX_ADD
EFX_COMB4
Reserved EFX_FF
EFM EFX_LUT4
EFX_ADD
EFX_COMB4
EFX_SRL8
Reserved EFX_FF
RAM EFX_RAM10
EFX_DPRAM10
Reserved
DSP48 EFX_DSP48
EFX_DSP24
EFX_DSP12
EFX_DSP24
EFX_DSP12
EFX_DSP12 EFX_DSP12

The following table shows another view of the same mappings.

Table 3. Mapping Primitives to Tiles
Primitive Compatible Tiles Allowed Sub-Block Indices
Trion Titanium Topaz
EFX_LUT4 EFT, EFL EFT, EFM EFT, EFM 0
EFX_ADD EFT, EFL EFT, EFM EFT, EFM 0
EFX_COMB4 EFT, EFL EFT, EFM EFT, EFM 0
EFX_FF EFT EFT, EFM EFT, EFM 2
EFX_SRL8 EFM EFM 0
EFX_RAM_5K RAM 0
EFX_DPRAM_5K RAM 0
EFX_RAM10 RAM RAM 0
EFX_DPRAM10 RAM RAM 0
EFX_MULT MULT 0
EFX_DSP48 DSP48 DSP48 0
EFX_DSP24 DSP48 DSP48 0, 1
EFX_DSP12 DSP48 DSP48 0, 1, 2, 3

Finding Primitive Cell Names

When the software maps your design to primitives, it assigns a cell name to each instance. To view the primitive cell names:
  • In the Dashboard's Netlist tab, click the Load Synthesized Netlist icon and expand Leaf Cells.
  • Open the <project>.map.v file (in the Dashboard, go to Result pane > Synthesis). This file is in the project's outflow directory.