Estimating Block RAM Resources

The Efinity® software v2020.2 (patch 2020.2.299.2.6) and higher includes a Block RAM Resource Estimator that helps you determine how many block RAM resources the software needs for a given memory size. You run this tool at the command line using the efx_map_ramest command. The estimator uses these options:

Table 1. Block RAM Resource Estimator Options
Option Description
--help Display the help.
--family <family name> Specify the family:
Quantum: for Quantum® cores.
Trion: for Trion FPGAs.
Titanium: for Titanium FPGAs.
--device <FPGA name> Optional. Specify the FPGA you are targeting.
--mode <mode> Specify the decomposition mode, speed, area, or power.
--size <memory size> Specify the memory size as <depth>x<width>.
--size2 <memory size> If using true dual-port, specify the second port's memory size as <depth>x<depth>.

The following code examples show how to estimate RAM for Trion and Titanium RAM blocks of varying sizes.

Simple Dual-Port RAM Example (Trion)

The following example command runs the estimator for a Trion FPGA, 10240 X 16 RAM size, and optimizing for area:

efx_map_ramest --family Trion --mode area --size 10240x16

The command outputs:

Efinix Block Ram Resource Estimator
Version: 2020.2.299
Compiled: Dec 30 2020.

Copyright (C) 2013 - 2020 Efinix Inc. All rights reserved.

FPGA Family           : Trion
Block Ram Size        : 5K
Input Memory Size     : 10240x16
Mode                  : area

Result                : 33 block rams required to implement the above memory size.

True Dual-Port RAM Example (Trion)

The following example command runs the estimator for a Trion FPGA, 10240 X 16 RAM size, 5120 x 32 RAM size, and optimizing for power:

efx_map_ramest --family Trion --mode power --size 10240x16 --size2 5120x32

The command outputs:

Efinix Block Ram Resource Estimator
Version: 2020.2.299
Compiled: Dec 30 2020.

Copyright (C) 2013 - 2020 Efinix Inc. All rights reserved.

FPGA Family           : Trion
Block Ram Size        : 5K
Input Memory Size     : 10240x16
2nd Memory Port Size  : 5120x32
Mode                  : power

Result                : 33 block rams required to implement the above memory size.

Simple Dual-Port RAM Example (Titanium)

The following example command runs the estimator for a Titanium FPGA, 10240 X 16 RAM size, and optimizing for area:

efx_map_ramest --family Titanium --mode area --size 10240x16

The command outputs:

Efinix Block Ram Resource Estimator
Version: 2020.2.299
Compiled: Dec 30 2020.

Copyright (C) 2013 - 2020 Efinix Inc. All rights reserved.

FPGA Family           : Titanium
Block Ram Size        : 10K
Input Memory Size     : 10240x16
Mode                  : area

Result                : 17 block rams required to implement the above memory size.

True Dual-Port RAM Example (Titanium)

The following example command runs the estimator for a Titanium FPGA, 10240 X 16 RAM size, 5120 x 32 RAM size, and optimizing for area:

efx_map_ramest --family Titanium --mode area --size 10240x16 --size2 5120x32

The command outputs:

Efinix Block Ram Resource Estimator
Version: 2020.2.299
Compiled: Dec 30 2020.

Copyright (C) 2013 - 2020 Efinix Inc. All rights reserved.

FPGA Family           : Titanium
Block Ram Size        : 10K
Input Memory Size     : 10240x16
2nd Memory Port Size  : 5120x32
Mode                  : area

Result                : 17 block rams required to implement the above memory size.