Operator ROM

Operator Library: Memory

The operator ROM is a lookup table of dynamic content. The values of the input link define the addresses of the LUT. The output link provides the value stored at this address. The input bit width defines the number of addresses in the LUT. The output bit width defines the value range of each LUT element. Both can be set to any value. The LUT content can be changed before the build, or dynamically during runtime.

For information on the latency of the operator, see Table 42, 'Individual Latencies of the Operators in Library Memory'.

[Tip] Same as Operator LUT

The ROM operator is identical to operator LUT.

I/O Properties

Property Value
Operator Type O
Input Link I, image data input
Output Link O, data input

Supported Link Format

Link Parameter Input Link I Output Link O
Bit Width [1, 16] [1, 63 unsigned/ 64 signed]
Arithmetic {unsigned, signed} as I
Parallelism any as I
Kernel Columns any as I
Kernel Rows any as I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} as I
Color Format VAF_GRAY as I
Color Flavor FL_NONE as I
Max. Img Width any as I
Max. Img Height any as I

Parameters

ROMcontent
Type dynamic/static read/write parameter
Default identity function
Range [0, 2^OutputBitWidth-1]

This field parameter defines the LUT content. The number of field values is defined by the operator's input bit width.

Learn on how to configure field parameters in 'Parameter Editing'.

[Note] Input Bit Width Changed

If the input bit width is changed, the number of field elements in this parameter changes. If the input bit width is reduced, values are truncated and deleted. If the input bit width is increased, the new field elements are set to 0.

ImplementationType
Type static write parameter
Default AUTO
Range (AUTO, BRAM, LUTRAM)

Parameter ImplementationType influences the implementation strategy of the operator, i.e., which memory elements are used for implementing the operator.

You can select one of the following values:

AUTO: The optimal implementation strategy is selected automatically based on the parametrization of the connected links.

BRAM: The operator uses the Block RAM of the FPGA.

LUTRAM: The operator uses the LUT RAM of the FPGA.

[Note] Use AUTO in General

Normally, the parameter should be set to AUTO. In special cases, i.e., if one kind of FPGA ressource runs short in a design, you can manually influence the FPGA resource management using the values BRAM or LUTRAM.

Examples of Use

The use of operator ROM is shown in the following examples: