ROM128X1 - ROM128X1 - 2026.1 English - Primitive: 128-Deep by 1-Wide ROM - UG953

Vivado Design Suite 7 Series FPGA and Zynq 7000 SoC Libraries Guide (UG953)

Document ID
UG953
Release Date
2026-06-23
Version
2026.1 English

Primitive: 128-Deep by 1-Wide ROM

  • PRIMITIVE_GROUP: CLB
  • PRIMITIVE_SUBGROUP: ROM
Page-1 Sheet.1 ROM128X1 ROM128X1 Text Line.108 A0 A0 Text Line.44 A1 A1 Text Line.45 A2 A2 Text Line.10 A3 A3 Text Line.11 A4 A4 Text Line.25 O O Graphic ID: SW & IP.504 X9731 X09731-061319 Sheet.9 A5 A5 Sheet.10 A6 A6

Introduction

This design element is a 128-word by 1-bit read-only memory. The data output (O) reflects the word selected by the 7-bit address (A6:A0). The INIT parameter initializes the ROM to a known value during configuration. The value consists of 32 hexadecimal digits written into the ROM from the most-significant digit A=FH to the least-significant digit A=0H.

If you do not specify the INIT parameter, an error occurs.

Logic Table

Input Output
I0 I1 I2 I3 O
0 0 0 0 INIT(0)
0 0 0 1 INIT(1)
0 0 1 0 INIT(2)
0 0 1 1 INIT(3)
0 1 0 0 INIT(4)
0 1 0 1 INIT(5)
0 1 1 0 INIT(6)
0 1 1 1 INIT(7)
1 0 0 0 INIT(8)
1 0 0 1 INIT(9)
1 0 1 0 INIT(10)
1 0 1 1 INIT(11)
1 1 0 0 INIT(12)
1 1 0 1 INIT(13)
1 1 1 0 INIT(14)
1 1 1 1 INIT(15)

Design Entry Method

Instantiation Yes
Inference Recommended
IP catalog No
Macro support No

Available Attributes

Attribute Type Allowed Values Default Description
INIT HEX Any 128-Bit Value All zeros Specifies the contents of the ROM.

VHDL Instantiation Template

Unless they already exist, copy the following two statements and paste them before the entity declaration.
Library UNISIM;
use UNISIM.vcomponents.all;

-- ROM128X1: 128 x 1 Asynchronous Distributed (LUT) ROM
--           7 Series
-- Xilinx HDL Language Template, version 2026.1

ROM128X1_inst : ROM128X1
generic map (
   INIT => X"00000000000000000000000000000000")
port map (
   O => O,   -- ROM output
   A0 => A0, -- ROM address[0]
   A1 => A1, -- ROM address[1]
   A2 => A2, -- ROM address[2]
   A3 => A3, -- ROM address[3]
   A4 => A4, -- ROM address[4]
   A5 => A5, -- ROM address[5]
   A6 => A6  -- ROM address[6]
);

-- End of ROM128X1_inst instantiation

Verilog Instantiation Template


// ROM128X1: 128 x 1 Asynchronous Distributed (LUT) ROM (Mapped to two SliceM LUT6s)
//           7 Series
// Xilinx HDL Language Template, version 2026.1

ROM128X1 #(
   .INIT(128'h00000000000000000000000000000000) // Contents of ROM
) ROM128X1_inst (
   .O(O),   // ROM output
   .A0(A0), // ROM address[0]
   .A1(A1), // ROM address[1]
   .A2(A2), // ROM address[2]
   .A3(A3), // ROM address[3]
   .A4(A4), // ROM address[4]
   .A5(A5), // ROM address[5]
   .A6(A6)  // ROM address[6]
);

// End of ROM128X1_inst instantiation

Related Information

  • 7 Series FPGAs Configurable Logic Block User Guide (UG474)