|
|
|
RAMB16_Sm_Sn
16384-Bit Data Memory and 2048-Bit Parity Memory, Dual-Port Synchronous Block RAM with Port Width (m or n) Configured to 1, 2, 4, 9, 18, or 36 Bits
Spartan-II,Spartan-IIE Spartan-3 Virtex,Virtex-E Virtex-II,Virtex-II Pro,
Virtex-II Pro X XC9500/XV/XL CoolRunnerXPLA3 CoolRunner-II N/A Primitive N/A Primitive N/A N/A N/A
RAMB16_S1_S1 through RAMB16_S1_S36 Representations
RAMB16_S2_S2 through RAMB16_S4_S36 Representations
RAMB16_S9_S9 through RAMB16_S36_S36 Representations
The RAMB16_Sm_Sn components listed in the following table are dual-ported dedicated random access memory blocks with synchronous write capability. Each block RAM port has 16384 bits of data memory. Ports configured as 9, 18, or 36-bits wide have an additional 2048 bits of parity memory. Each port is independent of the other while accessing the same set of 16384 data memory cells. Each port is independently configured to a specific data width. The possible port and cell configurations are listed in the following table.
Each port is fully synchronous with independent clock pins. All port A input pins have setup time referenced to the CLKA pin and its data output bus DOA has a clock-to-out time referenced to the CLKA. All port B input pins have setup time referenced to the CLKB pin and its data output bus DOB has a clock-to-out time referenced to the CLKB.
The enable ENA pin controls read, write, and reset for port A. When ENA is Low, no data is written and the outputs (DOA and DOPA) retain the last state. When ENA is High and reset (SSRA) is High, DOA and DOPA are set to SRVAL_A during the Low-to-High clock (CLKA) transition; if write enable (WEA) is High, the memory contents reflect the data at DIA and DIPA. When ENA is High and WEA is Low, the data stored in the RAM address (ADDRA) is read during the Low-to-High clock transition. By default, WRITE_MODE_A=WRITE_FIRST, when ENA and WEA are High, the data on the data inputs (DIA and DIPA) is loaded into the word selected by the write address (ADDRA) during the Low-to-High clock transition and the data outputs (DOA and DOPA) reflect the selected (addressed) word.
The enable ENB pin controls read, write, and reset for port B. When ENB is Low, no data is written and the outputs (DOB and DOPB) retain the last state. When ENB is High and reset (SSRB) is High, DOB and DOPB are set to SRVAL_B during the Low-to-High clock (CLKB) transition; if write enable (WEB) is High, the memory contents reflect the data at DIB and DIPB. When ENB is High and WEB is Low, the data stored in the RAM address (ADDRB) is read during the Low-to-High clock transition. By default, WRITE_MODE_B=WRITE_FIRST, when ENB and WEB are High, the data on the data inputs (DIB and PB) are loaded into the word selected by the write address (ADDRB) during the Low-to-High clock transition and the data outputs (DOB and DOPB) reflect the selected (addressed) word.
The above descriptions assume active High control pins (ENA, WEA, SSRA, CLKA, ENB, WEB, SSRB, and CLKB). However, the active level can be changed by placing an inverter on the port. Any inverter placed on a RAMB16 port is absorbed into the block and does not use a CLB resource.
Address Mapping
Each port accesses the same set of 18432 memory cells using an addressing scheme that is dependent on the width of the port. For all port widths, 16384 memory cells are available for data as shown in the “Port Address Mapping for Data” table . For 9-, 18-, and 36-bit wide ports, 2408 parity memory cells are also available as shown in “Port Address Mapping for Parity” table. The physical RAM location that is addressed for a particular width is determined from the following formula.
Start=((ADDR port+1)*(Widthport)) -1End=(ADDRport)*(Widthport)The following tables shows address mapping for each port width.
Port Address Mapping for Parity Parity Width Port Parity Addresses 1 2048 <----- 03 02 01 00 2 1024 <----- 01 00 4 512 <----- 00
Initializing Memory Contents of a Dual-Port RAMB16
You can use the INIT_xx attributes to specify an initialization value for the memory contents of a RAMB16 during device configuration. The initialization of each RAMB16_Sm_Sn is set by 64 initialization attributes (INIT_00 through INIT_3F) of 64 hex values for a total of 16384 bits.
You can use the INITP_xx attributes to specify an initial value for the parity memory during device configuration or assertion. The initialization of the parity memory for ports configured for 9, 18, or 36 bits is set by 8 initialization attributes (INITP_00 through INITP_07) of 64 hex values for a total of 2048 bits.
If any INIT_xx or INITP_xx attribute is not specified, it is configured as zeros. Partial strings are padded with zeros to the left.
See the Constraints Guide for more information on these attributes.
Initializing the Output Register of a Dual-Port RAMB16
In Spartan-3, Virtex-II, Virtex-II Pro, and Virtex-II Pro X, each bit in an output register can be initialized at power on (when GSR is high) to either a 0 or 1. In addition, the initial state specified for power on can be different than the state that results from assertion of a set/reset. Four properties control initialization of the output register for a dual-port RAMB16: INIT_A, INIT_B, SRVAL_A, and SRVAL_B. The INIT_A attribute specifies the output register value at power on for port A and the INIT_B attribute specifies the value for port B. You can use the SRVAL_A attribute to define the state resulting from assertion of the SSR (set/reset) input on port A. You can use the SRVAL_B attribute to define the state resulting from assertion of the SSR input on port B.
The INIT_A, INIT_B, SRVAL_A, and SRVAL_B attributes specify the initialization value as a hexadecimal string. The value is dependent upon the port width. For example, for a RAMB16_S1_S4 with port A width equal to 1 and port B width equal to 4, the port A output register contains 1 bit and the port B output register contains 4 bits. Therefore, the INIT_A or SRVAL_A value can only be specified as a 1 or 0. For port B, the output register contains 4 bits. In this case, you can use INIT_B or SRVAL_B to specify a hexadecimal value from 0 through F to initialize the 4 bits of the output register.
For those ports that include parity bits, the parity portion of the output register is specified in the high order bit position of the INIT_A, INIT_B, SRVAL_A, or SRVAL_B value.
The INIT and SRVAL attributes default to zero if they are not set by the user.
See the Constraints Guide for more information on these attributes.
Write Mode Selection
The WRITE_MODE_A attribute controls the memory and output contents of port A for a dual-port RAMB16. The WRITE_MODE_B attribute does the same for port B. By default, both WRITE_MODE_A and WRITE_MODE_B are set to WRITE_FIRST. This means that input is read, written to memory, and then passed to output. You can set the write mode for port A and/or port B to READ_FIRST to read the memory contents, pass the memory contents to the outputs, and then write the input to memory. Or, you can set the write mode to NO_CHANGE to have the input written to memory without changing the output. The “Port A and Port B Conflict Resolution” section describes how read/write conflicts are resolved when both port A and port B are attempting to read/write to the same memory cells.
Port A and Port B Conflict Resolution
Spartan-3, Virtex-II, Virtex-II Pro, and Virtex-II Pro X block SelectRAM is True Dual-Port RAM that allows both ports to simultaneously access the same memory cell. When one port writes to a given memory cell, the other port must not address that memory cell (for a write or a read) within the clock-to-clock setup window. For a list of specifics of conflict resolution for port and memory cell write operations that have either a clock common to both ports or synchronous clocks on each port, see Virtex-II Handbook, Chapter 2, Design Considerations, Using BlockSelectRAM Memory, Conflict Resolution.
The following tables summarize the collision detection behavior of the dual-port RAMB16 based on the WRITE_MODE_A and WRITE_MODE_B settings.
Usage
For HDL, these design elements can be inferred or instantiated. The instantiation code is shown below. For information on how to infer RAM, see the XST User Guide.
VHDL Instantiation Template for RAMB16_S1_S1, RAMB16_S1_S2, RAMB16_S1_S4, RAMB16_S2_S2, RAMB16_S2_S4, and RAMB16_S4_S4
-- Component Declaration for RAMB16_S1_{S1 | S2 | S4}, RAMB16_S2_{S2 | S4}, and-- RAMB16_S4_S4 should be placed after architecture statement but before begin keyword-- For the following component declaration, enter RAMB16_S1_{S1 | S2 | S4},-- RAMB16_S2_{S2 | S4}, or RAMB16_S4_S4component RAMB16_Sm_Sn-- synthesis translate_offgeneric (INIT_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_08 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_09 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_10 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_11 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_12 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_13 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_14 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_15 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_16 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_17 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_18 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_19 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_20 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_21 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_22 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_23 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_24 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_25 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_26 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_27 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_28 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_29 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_30 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_31 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_32 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_33 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_34 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_35 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_36 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_37 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_38 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_39 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_A : bit_vector := X"0";INIT_B : bit_vector := X"0";INITP_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";SRVAL_A : bit_vector := X"0";SRVAL_B : bit_vector := X"0";WRITE_MODE_A : string := "WRITE_FIRST";WRITE_MODE_B : string := "WRITE_FIRST";);-- synthesis translate_onport (DOA : out STD_LOGIC_VECTOR (n downto 0);DOB : out STD_LOGIC_VECTOR (n downto 0);ADDRA : in STD_LOGIC_VECTOR (n downto 0);ADDRB : in STD_LOGIC_VECTOR (n downto 0);CLKA : in STD_ULOGIC;CLKB : in STD_ULOGIC;DIA : in STD_LOGIC_VECTOR (n downto 0);DIB : in STD_LOGIC_VECTOR (n downto 0);ENA : in STD_ULOGIC;ENB : in STD_ULOGIC;SSRA : in STD_ULOGIC;SSRB : in STD_ULOGIC;WEA : in STD_ULOGIC;WEB : in STD_ULOGIC);end component;-- Component Attribute Specification for design element-- should be placed after architecture declaration-- but before the begin keyword-- Put attributes, if necessary-- Component Instantiation for design element-- Should be placed in architecture after the begin keywordRAMB16_Sm_Sn INSTANCE_NAME : RAMB16_Sm_Sn-- synthesis translate_offgeneric map (INIT_00 => vector_value,INIT_01 => vector_value,INIT_02 => vector_value,INIT_03 => vector_value,INIT_04 => vector_value,INIT_05 => vector_value,INIT_06 => vector_value,INIT_07 => vector_value,INIT_08 => vector_value,INIT_09 => vector_value,INIT_0A => vector_value,INIT_0B => vector_value,INIT_0C => vector_value,INIT_0D => vector_value,INIT_0E => vector_value,INIT_0F => vector_value,INIT_10 => vector_value,INIT_11 => vector_value,INIT_12 => vector_value,INIT_13 => vector_value,INIT_14 => vector_value,INIT_15 => vector_value,INIT_16 => vector_value,INIT_17 => vector_value,INIT_18 => vector_value,INIT_19 => vector_value,INIT_1A => vector_value,INIT_1B => vector_value,INIT_1C => vector_value,INIT_1D => vector_value,INIT_1E => vector_value,INIT_1F => vector_value,INIT_20 => vector_value,INIT_21 => vector_value,INIT_22 => vector_value,INIT_23 => vector_value,INIT_24 => vector_value,INIT_25 => vector_value,INIT_26 => vector_value,INIT_27 => vector_value,INIT_28 => vector_value,INIT_29 => vector_value,INIT_2A => vector_value,INIT_2B => vector_value,INIT_2C => vector_value,INIT_2D => vector_value,INIT_2E => vector_value,INIT_2F => vector_value,INIT_30 => vector_value,INIT_31 => vector_value,INIT_32 => vector_value,INIT_33 => vector_value,INIT_34 => vector_value,INIT_35 => vector_value,INIT_36 => vector_value,INIT_37 => vector_value,INIT_38 => vector_value,INIT_39 => vector_value,INIT_3A => vector_value,INIT_3B => vector_value,INIT_3C => vector_value,INIT_3D => vector_value,INIT_3E => vector_value,INIT_3F => vector_value,INIT_A => bit_value,INIT_B => bit_value,INITP_00 => vector_value,INITP_01 => vector_value,INITP_02 => vector_value,INITP_03 => vector_value,INITP_04 => vector_value,INITP_05 => vector_value,INITP_06 => vector_value,INITP_07 => vector_value,SRVAL_A => bit_value,SRVAL_B => bit_value,WRITE_MODE_A => string_value,WRITE_MODE_B => string_value)-- synopsys translate_onport map (DOA => user_DOA,DOB => user_DOB,ADDRA => user_ADDRA,ADDRB => user_ADDRB,CLKA => user_CLKA,CLKB => user_CLKB,DIA => user_DIA,DIB => user_DIB,ENA => user_ENA,ENB => user_ENB,SSRA => user_SSRA,SSRB => user_SSRB,WEA => user_WEA,WEB => user_WEB);Verilog Instantiation Template for RAMB16_S1_S1, RAMB16_S1_S2, RAMB16_S1_S4, RAMB16_S2_S2, RAMB16_S2_S4, and RAMB16_S4_S4
RAMB16_Sm_Sn user_instance_name (.DOA (user_DOA),.DOB (user_DOB),.ADDRA (user_ADDRA),.ADDRB (user_ADDRB),.CLKA (user_CLKA),.CLKB (user_CLKB),.DIA (user_DIA),.DIB (user_DIB),.ENA (user_ENA),.ENB (user_ENB),.SSRA (user_SSRA),.SSRB (user_SSRB),.WEA (user_WEA),.WEB (user_WEB));defparam user_instance_name.INIT_00 = 256_bit_hex_value;defparam user_instance_name.INIT_01 = 256_bit_hex_value;defparam user_instance_name.INIT_02 = 256_bit_hex_value;defparam user_instance_name.INIT_03 = 256_bit_hex_value;defparam user_instance_name.INIT_04 = 256_bit_hex_value;defparam user_instance_name.INIT_05 = 256_bit_hex_value;defparam user_instance_name.INIT_06 = 256_bit_hex_value;defparam user_instance_name.INIT_07 = 256_bit_hex_value;defparam user_instance_name.INIT_08 = 256_bit_hex_value;defparam user_instance_name.INIT_09 = 256_bit_hex_value;defparam user_instance_name.INIT_0A = 256_bit_hex_value;defparam user_instance_name.INIT_0B = 256_bit_hex_value;defparam user_instance_name.INIT_0C = 256_bit_hex_value;defparam user_instance_name.INIT_0D = 256_bit_hex_value;defparam user_instance_name.INIT_0E = 256_bit_hex_value;defparam user_instance_name.INIT_0F = 256_bit_hex_value;defparam user_instance_name.INIT_10 = 256_bit_hex_value;defparam user_instance_name.INIT_11 = 256_bit_hex_value;defparam user_instance_name.INIT_12 = 256_bit_hex_value;defparam user_instance_name.INIT_13 = 256_bit_hex_value;defparam user_instance_name.INIT_14 = 256_bit_hex_value;defparam user_instance_name.INIT_15 = 256_bit_hex_value;defparam user_instance_name.INIT_16 = 256_bit_hex_value;defparam user_instance_name.INIT_17 = 256_bit_hex_value;defparam user_instance_name.INIT_18 = 256_bit_hex_value;defparam user_instance_name.INIT_19 = 256_bit_hex_value;defparam user_instance_name.INIT_1A = 256_bit_hex_value;defparam user_instance_name.INIT_1B = 256_bit_hex_value;defparam user_instance_name.INIT_1C = 256_bit_hex_value;defparam user_instance_name.INIT_1D = 256_bit_hex_value;defparam user_instance_name.INIT_1E = 256_bit_hex_value;defparam user_instance_name.INIT_1F = 256_bit_hex_value;defparam user_instance_name.INIT_20 = 256_bit_hex_value;defparam user_instance_name.INIT_21 = 256_bit_hex_value;defparam user_instance_name.INIT_22 = 256_bit_hex_value;defparam user_instance_name.INIT_23 = 256_bit_hex_value;defparam user_instance_name.INIT_24 = 256_bit_hex_value;defparam user_instance_name.INIT_25 = 256_bit_hex_value;defparam user_instance_name.INIT_26 = 256_bit_hex_value;defparam user_instance_name.INIT_27 = 256_bit_hex_value;defparam user_instance_name.INIT_28 = 256_bit_hex_value;defparam user_instance_name.INIT_29 = 256_bit_hex_value;defparam user_instance_name.INIT_2A = 256_bit_hex_value;defparam user_instance_name.INIT_2B = 256_bit_hex_value;defparam user_instance_name.INIT_2C = 256_bit_hex_value;defparam user_instance_name.INIT_2D = 256_bit_hex_value;defparam user_instance_name.INIT_2E = 256_bit_hex_value;defparam user_instance_name.INIT_2F = 256_bit_hex_value;defparam user_instance_name.INIT_30 = 256_bit_hex_value;defparam user_instance_name.INIT_31 = 256_bit_hex_value;defparam user_instance_name.INIT_32 = 256_bit_hex_value;defparam user_instance_name.INIT_33 = 256_bit_hex_value;defparam user_instance_name.INIT_34 = 256_bit_hex_value;defparam user_instance_name.INIT_35 = 256_bit_hex_value;defparam user_instance_name.INIT_36 = 256_bit_hex_value;defparam user_instance_name.INIT_37 = 256_bit_hex_value;defparam user_instance_name.INIT_38 = 256_bit_hex_value;defparam user_instance_name.INIT_39 = 256_bit_hex_value;defparam user_instance_name.INIT_3A = 256_bit_hex_value;defparam user_instance_name.INIT_3B = 256_bit_hex_value;defparam user_instance_name.INIT_3C = 256_bit_hex_value;defparam user_instance_name.INIT_3D = 256_bit_hex_value;defparam user_instance_name.INIT_3E = 256_bit_hex_value;defparam user_instance_name.INIT_3F = 256_bit_hex_value;defparam user_instance_name.INIT_A = bit_value;defparam user_instance_name.INIT_B = bit_value;defparam user_instance_name.INITP_00 = 256_bit_hex_value;defparam user_instance_name.INITP_01 = 256_bit_hex_value;defparam user_instance_name.INITP_02 = 256_bit_hex_value;defparam user_instance_name.INITP_03 = 256_bit_hex_value;defparam user_instance_name.INITP_04 = 256_bit_hex_value;defparam user_instance_name.INITP_05 = 256_bit_hex_value;defparam user_instance_name.INITP_06 = 256_bit_hex_value;defparam user_instance_name.INITP_07 = 256_bit_hex_value;defparam user_instance_name.SRVAL_A = bit_value;defparam user_instance_name.SRVAL_B = bit_value;defparam user_instance_name.WRITE_MODE_A = string_value;defparam user_instance_name.WRITE_MODE_B = string_value;VHDL Instantiation Template for RAMB16_S1_S9, RAMB16_S1_S18, RAMB16_S1_S36, RAMB16_S2_S9, RAMB16_S2_S18, RAMB16_S2_S36, RAMB16_S4_S9, RAMB16_S4_S18, and RAMB16_S4_S36
-- Component Declaration for these design elements-- should be placed after architecture statement but before begin keyword-- For the following component declaration, enter RAMB16_S1_{S9 | S18 | S36},-- RAMB16_S2_{S9 | S18 | S36}, or RAMB16_S4_{S9 | S18 | S36}component RAMB16_Sm_Sn-- synthesis translate_offgeneric (INIT_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_08 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_09 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_10 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_11 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_12 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_13 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_14 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_15 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_16 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_17 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_18 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_19 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_20 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_21 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_22 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_23 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_24 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_25 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_26 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_27 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_28 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_29 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_30 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_31 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_32 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_33 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_34 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_35 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_36 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_37 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_38 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_39 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_A : bit_vector := X"0";INIT_B : bit_vector := X"0";INITP_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";SRVAL_A : bit_vector := X"0";SRVAL_B : bit_vector := X"0";WRITE_MODE_A : string := "WRITE_FIRST";WRITE_MODE_B : string := "WRITE_FIRST";);-- synthesis translate_onport (DOA : out STD_LOGIC_VECTOR (n downto 0);DOB : out STD_LOGIC_VECTOR (n downto 0);DOPB : out STD_LOGIC_VECTOR (n downto 0);ADDRA : in STD_LOGIC_VECTOR (n downto 0);ADDRB : in STD_LOGIC_VECTOR (n downto 0);CLKA : in STD_ULOGIC;CLKB : in STD_ULOGIC;DIA : in STD_LOGIC_VECTOR (n downto 0);DIB : in STD_LOGIC_VECTOR (n downto 0);DIPB : in STD_LOGIC_VECTOR (n downto 0);ENA : in STD_ULOGIC;ENB : in STD_ULOGIC;SSRA : in STD_ULOGIC;SSRB : in STD_ULOGIC;WEA : in STD_ULOGIC;WEB : in STD_ULOGIC);end component;-- Component Attribute Specification for design element-- should be placed after architecture declaration-- but before the begin keyword-- Put attributes, if necessary-- Component Instantiation for design element-- Should be placed in architecture after the begin keywordRAMB16_Sm_Sn INSTANCE_NAME : RAMB16_Sm_Sn-- synthesis translate_offgeneric map (INIT_00 => vector_value,INIT_01 => vector_value,INIT_02 => vector_value,INIT_03 => vector_value,INIT_04 => vector_value,INIT_05 => vector_value,INIT_06 => vector_value,INIT_07 => vector_value,INIT_08 => vector_value,INIT_09 => vector_value,INIT_0A => vector_value,INIT_0B => vector_value,INIT_0C => vector_value,INIT_0D => vector_value,INIT_0E => vector_value,INIT_0F => vector_value,INIT_10 => vector_value,INIT_11 => vector_value,INIT_12 => vector_value,INIT_13 => vector_value,INIT_14 => vector_value,INIT_15 => vector_value,INIT_16 => vector_value,INIT_17 => vector_value,INIT_18 => vector_value,INIT_19 => vector_value,INIT_1A => vector_value,INIT_1B => vector_value,INIT_1C => vector_value,INIT_1D => vector_value,INIT_1E => vector_value,INIT_1F => vector_value,INIT_20 => vector_value,INIT_21 => vector_value,INIT_22 => vector_value,INIT_23 => vector_value,INIT_24 => vector_value,INIT_25 => vector_value,INIT_26 => vector_value,INIT_27 => vector_value,INIT_28 => vector_value,INIT_29 => vector_value,INIT_2A => vector_value,INIT_2B => vector_value,INIT_2C => vector_value,INIT_2D => vector_value,INIT_2E => vector_value,INIT_2F => vector_value,INIT_30 => vector_value,INIT_31 => vector_value,INIT_32 => vector_value,INIT_33 => vector_value,INIT_34 => vector_value,INIT_35 => vector_value,INIT_36 => vector_value,INIT_37 => vector_value,INIT_38 => vector_value,INIT_39 => vector_value,INIT_3A => vector_value,INIT_3B => vector_value,INIT_3C => vector_value,INIT_3D => vector_value,INIT_3E => vector_value,INIT_3F => vector_value,INIT_A => bit_value,INIT_B => bit_value,INITP_00 => vector_value,INITP_01 => vector_value,INITP_02 => vector_value,INITP_03 => vector_value,INITP_04 => vector_value,INITP_05 => vector_value,INITP_06 => vector_value,INITP_07 => vector_value,SRVAL_A => bit_value,SRVAL_B => bit_value,WRITE_MODE_A => string_value,WRITE_MODE_B => string_value)-- synopsys translate_onport map (DOA => user_DOA,DOB => user_DOB,DOPB => user_DOPB,ADDRA => user_ADDRA,ADDRB => user_ADDRB,CLKA => user_CLKA,CLKB => user_CLKB,DIA => user_DIA,DIB => user_DIB,DIPB => user_DIPB,ENA => user_ENA,ENB => user_ENB,SSRA => user_SSRA,SSRB => user_SSRB,WEA => user_WEA,WEB => user_WEB);Verilog Instantiation Template for RAMB16_S1_S9, RAMB16_S1_S18, RAMB16_S1_S36, RAMB16_S2_S9, RAMB16_S2_S18, RAMB16_S2_S36, RAMB16_S4_S9, RAMB16_S4_S18, and RAMB16_S4_S36
RAMB16_Sm_Sn user_instance_name (.DOA (user_DOA),.DOB (user_DOB),.DOPB (user_DOPB),.ADDRA (user_ADDRA),.ADDRB (user_ADDRB),.CLKA (user_CLKA),.CLKB (user_CLKB),.DIA (user_DIA),.DIB (user_DIB),.DIPB (user_DIB),.ENA (user_ENA),.ENB (user_ENB),.SSRA (user_SSRA),.SSRB (user_SSRB),.WEA (user_WEA),.WEB (user_WEB));defparam user_instance_name.INIT_00 = 256_bit_hex_value;defparam user_instance_name.INIT_01 = 256_bit_hex_value;defparam user_instance_name.INIT_02 = 256_bit_hex_value;defparam user_instance_name.INIT_03 = 256_bit_hex_value;defparam user_instance_name.INIT_04 = 256_bit_hex_value;defparam user_instance_name.INIT_05 = 256_bit_hex_value;defparam user_instance_name.INIT_06 = 256_bit_hex_value;defparam user_instance_name.INIT_07 = 256_bit_hex_value;defparam user_instance_name.INIT_08 = 256_bit_hex_value;defparam user_instance_name.INIT_09 = 256_bit_hex_value;defparam user_instance_name.INIT_0A = 256_bit_hex_value;defparam user_instance_name.INIT_0B = 256_bit_hex_value;defparam user_instance_name.INIT_0C = 256_bit_hex_value;defparam user_instance_name.INIT_0D = 256_bit_hex_value;defparam user_instance_name.INIT_0E = 256_bit_hex_value;defparam user_instance_name.INIT_0F = 256_bit_hex_value;defparam user_instance_name.INIT_10 = 256_bit_hex_value;defparam user_instance_name.INIT_11 = 256_bit_hex_value;defparam user_instance_name.INIT_12 = 256_bit_hex_value;defparam user_instance_name.INIT_13 = 256_bit_hex_value;defparam user_instance_name.INIT_14 = 256_bit_hex_value;defparam user_instance_name.INIT_15 = 256_bit_hex_value;defparam user_instance_name.INIT_16 = 256_bit_hex_value;defparam user_instance_name.INIT_17 = 256_bit_hex_value;defparam user_instance_name.INIT_18 = 256_bit_hex_value;defparam user_instance_name.INIT_19 = 256_bit_hex_value;defparam user_instance_name.INIT_1A = 256_bit_hex_value;defparam user_instance_name.INIT_1B = 256_bit_hex_value;defparam user_instance_name.INIT_1C = 256_bit_hex_value;defparam user_instance_name.INIT_1D = 256_bit_hex_value;defparam user_instance_name.INIT_1E = 256_bit_hex_value;defparam user_instance_name.INIT_1F = 256_bit_hex_value;defparam user_instance_name.INIT_20 = 256_bit_hex_value;defparam user_instance_name.INIT_21 = 256_bit_hex_value;defparam user_instance_name.INIT_22 = 256_bit_hex_value;defparam user_instance_name.INIT_23 = 256_bit_hex_value;defparam user_instance_name.INIT_24 = 256_bit_hex_value;defparam user_instance_name.INIT_25 = 256_bit_hex_value;defparam user_instance_name.INIT_26 = 256_bit_hex_value;defparam user_instance_name.INIT_27 = 256_bit_hex_value;defparam user_instance_name.INIT_28 = 256_bit_hex_value;defparam user_instance_name.INIT_29 = 256_bit_hex_value;defparam user_instance_name.INIT_2A = 256_bit_hex_value;defparam user_instance_name.INIT_2B = 256_bit_hex_value;defparam user_instance_name.INIT_2C = 256_bit_hex_value;defparam user_instance_name.INIT_2D = 256_bit_hex_value;defparam user_instance_name.INIT_2E = 256_bit_hex_value;defparam user_instance_name.INIT_2F = 256_bit_hex_value;defparam user_instance_name.INIT_30 = 256_bit_hex_value;defparam user_instance_name.INIT_31 = 256_bit_hex_value;defparam user_instance_name.INIT_32 = 256_bit_hex_value;defparam user_instance_name.INIT_33 = 256_bit_hex_value;defparam user_instance_name.INIT_34 = 256_bit_hex_value;defparam user_instance_name.INIT_35 = 256_bit_hex_value;defparam user_instance_name.INIT_36 = 256_bit_hex_value;defparam user_instance_name.INIT_37 = 256_bit_hex_value;defparam user_instance_name.INIT_38 = 256_bit_hex_value;defparam user_instance_name.INIT_39 = 256_bit_hex_value;defparam user_instance_name.INIT_3A = 256_bit_hex_value;defparam user_instance_name.INIT_3B = 256_bit_hex_value;defparam user_instance_name.INIT_3C = 256_bit_hex_value;defparam user_instance_name.INIT_3D = 256_bit_hex_value;defparam user_instance_name.INIT_3E = 256_bit_hex_value;defparam user_instance_name.INIT_3F = 256_bit_hex_value;defparam user_instance_name.INIT_A = bit_value;defparam user_instance_name.INIT_B = bit_value;defparam user_instance_name.INITP_00 = 256_bit_hex_value;defparam user_instance_name.INITP_01 = 256_bit_hex_value;defparam user_instance_name.INITP_02 = 256_bit_hex_value;defparam user_instance_name.INITP_03 = 256_bit_hex_value;defparam user_instance_name.INITP_04 = 256_bit_hex_value;defparam user_instance_name.INITP_05 = 256_bit_hex_value;defparam user_instance_name.INITP_06 = 256_bit_hex_value;defparam user_instance_name.INITP_07 = 256_bit_hex_value;defparam user_instance_name.SRVAL_A = bit_value;defparam user_instance_name.SRVAL_B = bit_value;defparam user_instance_name.WRITE_MODE_A = string_value;defparam user_instance_name.WRITE_MODE_B = string_value;VHDL Instantiation Template RAMB16_S9_S9, RAMB16_S9_S18, RAMB16_S9_S36, RAMB16_S18_S18, RAMB16_S18_S36, and RAMB16_S36_S36
-- Component Declaration for these design elements-- should be placed after architecture statement but before begin keyword-- For the following component declaration, enter RAMB16_S9_{S9 | S18 | S36},-- RAMB16_S18_{S18 | S36}, or RAMB16_S36_S36component RAMB16_Sm_Sn-- synthesis translate_offgeneric (INIT_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_08 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_09 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_0F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_10 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_11 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_12 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_13 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_14 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_15 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_16 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_17 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_18 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_19 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_1F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_20 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_21 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_22 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_23 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_24 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_25 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_26 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_27 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_28 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_29 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_2F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_30 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_31 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_32 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_33 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_34 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_35 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_36 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_37 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_38 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_39 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_3F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INIT_A : bit_vector := X"0";INIT_B : bit_vector := X"0";INITP_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";INITP_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";SRVAL_A : bit_vector := X"0";SRVAL_B : bit_vector := X"0";WRITE_MODE_A : string := "WRITE_FIRST";WRITE_MODE_B : string := "WRITE_FIRST";);-- synthesis translate_onport (DOA : out STD_LOGIC_VECTOR (n downto 0);DOB : out STD_LOGIC_VECTOR (n downto 0);DOPA : out STD_LOGIC_VECTOR (n downto 0);DOPB : out STD_LOGIC_VECTOR (n downto 0);ADDRA : in STD_LOGIC_VECTOR (n downto 0);ADDRB : in STD_LOGIC_VECTOR (n downto 0);CLKA : in STD_ULOGIC;CLKB : in STD_ULOGIC;DIA : in STD_LOGIC_VECTOR (n downto 0);DIB : in STD_LOGIC_VECTOR (n downto 0);DIPA : in STD_LOGIC_VECTOR (n downto 0);DIPB : in STD_LOGIC_VECTOR (n downto 0);ENA: in STD_ULOGIC;ENB : in STD_ULOGIC;SSRA : in STD_ULOGIC;SSRB : in STD_ULOGIC;WEA : in STD_ULOGIC;WEB : in STD_ULOGIC);end component;-- Component Attribute Specification for design element-- should be placed after architecture declaration-- but before the begin keyword-- Put attributes, if necessary-- Component Instantiation for design element-- Should be placed in architecture after the begin keywordRAMB16_Sm_Sn INSTANCE_NAME : RAMB16_Sm_Sn-- synthesis translate_offgeneric map (INIT_00 => vector_value,INIT_01 => vector_value,INIT_02 => vector_value,INIT_03 => vector_value,INIT_04 => vector_value,INIT_05 => vector_value,INIT_06 => vector_value,INIT_07 => vector_value,INIT_08 => vector_value,INIT_09 => vector_value,INIT_0A => vector_value,INIT_0B => vector_value,INIT_0C => vector_value,INIT_0D => vector_value,INIT_0E => vector_value,INIT_0F => vector_value,INIT_10 => vector_value,INIT_11 => vector_value,INIT_12 => vector_value,INIT_13 => vector_value,INIT_14 => vector_value,INIT_15 => vector_value,INIT_16 => vector_value,INIT_17 => vector_value,INIT_18 => vector_value,INIT_19 => vector_value,INIT_1A => vector_value,INIT_1B => vector_value,INIT_1C => vector_value,INIT_1D => vector_value,INIT_1E => vector_value,INIT_1F => vector_value,INIT_20 => vector_value,INIT_21 => vector_value,INIT_22 => vector_value,INIT_23 => vector_value,INIT_24 => vector_value,INIT_25 => vector_value,INIT_26 => vector_value,INIT_27 => vector_value,INIT_28 => vector_value,INIT_29 => vector_value,INIT_2A => vector_value,INIT_2B => vector_value,INIT_2C => vector_value,INIT_2D => vector_value,INIT_2E => vector_value,INIT_2F => vector_value,INIT_30 => vector_value,INIT_31 => vector_value,INIT_32 => vector_value,INIT_33 => vector_value,INIT_34 => vector_value,INIT_35 => vector_value,INIT_36 => vector_value,INIT_37 => vector_value,INIT_38 => vector_value,INIT_39 => vector_value,INIT_3A => vector_value,INIT_3B => vector_value,INIT_3C => vector_value,INIT_3D => vector_value,INIT_3E => vector_value,INIT_3F => vector_value,INIT_A => bit_value,INIT_B => bit_value,INITP_00 => vector_value,INITP_01 => vector_value,INITP_02 => vector_value,INITP_03 => vector_value,INITP_04 => vector_value,INITP_05 => vector_value,INITP_06 => vector_value,INITP_07 => vector_value,SRVAL_A => bit_value,SRVAL_B => bit_value,WRITE_MODE_A => string_value,WRITE_MODE_B => string_value)-- synopsys translate_onport map (DOA => user_DOA,DOB => user_DOB,DOPA => user_DOPA,DOPB => user_DOPB,ADDRA => user_ADDRA,ADDRB => user_ADDRB,CLKA => user_CLKA,CLKB => user_CLKB,DIA => user_DIA,DIB => user_DIB,DIPA => user_DIPA,DIPB => user_DIPB,ENA => user_ENA,ENB => user_ENB,SSRA => user_SSRA,SSRB => user_SSRB,WEA => user_WEA,WEB => user_WEB);Verilog Instantiation Template for RAMB16_S9_S9, RAMB16_S9_S18, RAMB16_S9_S36, RAMB16_S18_S18, RAMB16_S18_S36, and RAMB16_S36_S36
RAMB16_Sm_Sn user_instance_name (.DOA (user_DOA),.DOB (user_DOB),.DOPA (user_DOPA),.DOPB (user_DOPB),.ADDRA (user_ADDRA),.ADDRB (user_ADDRB),.CLKA (user_CLKA),.CLKB (user_CLKB),.DIA (user_DIA),.DIB (user_DIB),.DIPA (user_DIPA),.DIPB (user_DIB),.ENA (user_ENA),.ENB (user_ENB),.SSRA (user_SSRA),.SSRB (user_SSRB),.WEA (user_WEA),.WEB (user_WEB));defparam user_instance_name.INIT_00 = 256_bit_hex_value;defparam user_instance_name.INIT_01 = 256_bit_hex_value;defparam user_instance_name.INIT_02 = 256_bit_hex_value;defparam user_instance_name.INIT_03 = 256_bit_hex_value;defparam user_instance_name.INIT_04 = 256_bit_hex_value;defparam user_instance_name.INIT_05 = 256_bit_hex_value;defparam user_instance_name.INIT_06 = 256_bit_hex_value;defparam user_instance_name.INIT_07 = 256_bit_hex_value;defparam user_instance_name.INIT_08 = 256_bit_hex_value;defparam user_instance_name.INIT_09 = 256_bit_hex_value;defparam user_instance_name.INIT_0A = 256_bit_hex_value;defparam user_instance_name.INIT_0B = 256_bit_hex_value;defparam user_instance_name.INIT_0C = 256_bit_hex_value;defparam user_instance_name.INIT_0D = 256_bit_hex_value;defparam user_instance_name.INIT_0E = 256_bit_hex_value;defparam user_instance_name.INIT_0F = 256_bit_hex_value;defparam user_instance_name.INIT_10 = 256_bit_hex_value;defparam user_instance_name.INIT_11 = 256_bit_hex_value;defparam user_instance_name.INIT_12 = 256_bit_hex_value;defparam user_instance_name.INIT_13 = 256_bit_hex_value;defparam user_instance_name.INIT_14 = 256_bit_hex_value;defparam user_instance_name.INIT_15 = 256_bit_hex_value;defparam user_instance_name.INIT_16 = 256_bit_hex_value;defparam user_instance_name.INIT_17 = 256_bit_hex_value;defparam user_instance_name.INIT_18 = 256_bit_hex_value;defparam user_instance_name.INIT_19 = 256_bit_hex_value;defparam user_instance_name.INIT_1A = 256_bit_hex_value;defparam user_instance_name.INIT_1B = 256_bit_hex_value;defparam user_instance_name.INIT_1C = 256_bit_hex_value;defparam user_instance_name.INIT_1D = 256_bit_hex_value;defparam user_instance_name.INIT_1E = 256_bit_hex_value;defparam user_instance_name.INIT_1F = 256_bit_hex_value;defparam user_instance_name.INIT_20 = 256_bit_hex_value;defparam user_instance_name.INIT_21 = 256_bit_hex_value;defparam user_instance_name.INIT_22 = 256_bit_hex_value;defparam user_instance_name.INIT_23 = 256_bit_hex_value;defparam user_instance_name.INIT_24 = 256_bit_hex_value;defparam user_instance_name.INIT_25 = 256_bit_hex_value;defparam user_instance_name.INIT_26 = 256_bit_hex_value;defparam user_instance_name.INIT_27 = 256_bit_hex_value;defparam user_instance_name.INIT_28 = 256_bit_hex_value;defparam user_instance_name.INIT_29 = 256_bit_hex_value;defparam user_instance_name.INIT_2A = 256_bit_hex_value;defparam user_instance_name.INIT_2B = 256_bit_hex_value;defparam user_instance_name.INIT_2C = 256_bit_hex_value;defparam user_instance_name.INIT_2D = 256_bit_hex_value;defparam user_instance_name.INIT_2E = 256_bit_hex_value;defparam user_instance_name.INIT_2F = 256_bit_hex_value;defparam user_instance_name.INIT_30 = 256_bit_hex_value;defparam user_instance_name.INIT_31 = 256_bit_hex_value;defparam user_instance_name.INIT_32 = 256_bit_hex_value;defparam user_instance_name.INIT_33 = 256_bit_hex_value;defparam user_instance_name.INIT_34 = 256_bit_hex_value;defparam user_instance_name.INIT_35 = 256_bit_hex_value;defparam user_instance_name.INIT_36 = 256_bit_hex_value;defparam user_instance_name.INIT_37 = 256_bit_hex_value;defparam user_instance_name.INIT_38 = 256_bit_hex_value;defparam user_instance_name.INIT_39 = 256_bit_hex_value;defparam user_instance_name.INIT_3A = 256_bit_hex_value;defparam user_instance_name.INIT_3B = 256_bit_hex_value;defparam user_instance_name.INIT_3C = 256_bit_hex_value;defparam user_instance_name.INIT_3D = 256_bit_hex_value;defparam user_instance_name.INIT_3E = 256_bit_hex_value;defparam user_instance_name.INIT_3F = 256_bit_hex_value;defparam user_instance_name.INIT_A = bit_value;defparam user_instance_name.INIT_B = bit_value;defparam user_instance_name.INITP_00 = 256_bit_hex_value;defparam user_instance_name.INITP_01 = 256_bit_hex_value;defparam user_instance_name.INITP_02 = 256_bit_hex_value;defparam user_instance_name.INITP_03 = 256_bit_hex_value;defparam user_instance_name.INITP_04 = 256_bit_hex_value;defparam user_instance_name.INITP_05 = 256_bit_hex_value;defparam user_instance_name.INITP_06 = 256_bit_hex_value;defparam user_instance_name.INITP_07 = 256_bit_hex_value;defparam user_instance_name.SRVAL_A = bit_value;defparam user_instance_name.SRVAL_B = bit_value;defparam user_instance_name.WRITE_MODE_A = string_value;defparam user_instance_name.WRITE_MODE_B = string_value;Commonly Used Constraints
INIT
INIT_xx
INIT_A
INIT_B
INTP_xx
SRVAL_A
SRVAL_B
WRITE_MODE_A
WRITE_MODE_B
|
|
|