| 
		 | 	
  
Parameterized ROM megafunction. Altera® recommends that you use the lpm_rom function to implement all ROM functions. This megafunction is provided only for backward compatibility in Cyclone, Stratix, and Stratix GX designs; instead, Altera recommends using the altsyncram megafunction. This option is available for all Altera devices supported by the Quartus® II software except MAX® 3000 and MAX 7000 devices.
| The Quartus II Compiler automatically implements suitable portions of this function in Embedded System Blocks (ESB) in APEX 20K, APEX II, ARM®-based Excalibur, and Mercury devices, and in Embedded Array Blocks (EAB) in ACEX® 1K and FLEX 10KE devices. The Compiler automatically implements this function in logic cells in FLEX® 6000 devices. Therefore, it is not necessary to use the Auto Implement in ROM logic option for this function, and doing so may cause warning messages to appear. | 
Altera also recommends instantiating this function as described in Using the MegaWizard® Plug-In Manager.
This topic contains the following information:
FUNCTION lpm_rom (address[LPM_WIDTHAD-1..0], inclock, outclock, memenab) WITH (LPM_WIDTH, LPM_WIDTHAD, LPM_NUMWORDS, LPM_FILE, LPM_ADDRESS_CONTROL, LPM_OUTDATA) RETURNS (q[LPM_WIDTH-1..0]);
COMPONENT lpm_rom
   GENERIC (LPM_WIDTH: POSITIVE;
      LPM_WIDTHAD: POSITIVE;
      LPM_NUMWORDS: NATURAL := 0;
      LPM_ADDRESS_CONTROL: STRING := "REGISTERED";
      LPM_OUTDATA: STRING := "REGISTERED";
      LPM_FILE: STRING;
      LPM_TYPE: STRING := "LPM_ROM";
      LPM_HINT: STRING := "UNUSED");
   PORT (address: IN STD_LOGIC_VECTOR(LPM_WIDTHAD-1 DOWNTO 0);
      inclock, outclock: IN STD_LOGIC := '0';
      memenab: IN STD_LOGIC := '1';
      q: OUT STD_LOGIC_VECTOR(LPM_WIDTH-1 DOWNTO 0));
END COMPONENT;
LIBRARY lpm; USE lpm.lpm_components.all;
INPUT PORTS
| Port Name | Required | Description | Comments | 
|---|---|---|---|
address[] | 
    Yes | Address input to the memory. | Input port LPM_WIDTHAD wide. | 
  
inclock | 
    No | Clock for input registers. | The address[] port is synchronous 
      (registered) when the inclock port is connected, and is asynchronous 
      (unregistered) when the inclock port is not connected. | 
  
outclock | 
    No | Clock for output registers. | The addressed memory content-to-q[] 
      response is synchronous when the outclock port is connected, 
      and is asynchronous when it is not connected. | 
  
memenab | 
    No | Memory enable input. | High = data output on q[], Low = 
      high-impedance outputs. This port is available for backward compatibility only and Altera recommends that you not use this port. | 
  
OUTPUT PORTS
| Port Name | Required | Description | Comments | 
|---|---|---|---|
q[] | 
    Yes | Output of memory. | Output port LPM_WIDTH wide. | 
  
| Parameter | Type | Required | Description | 
|---|---|---|---|
LPM_WIDTH | 
    Integer | Yes | Width of the q[] port. | 
  
LPM_WIDTHAD  | 
    Integer | Yes | Width of the address[] port. LPM_WIDTHAD 
      should be (but is not required to be) equal to LOG2(LPM_NUMWORDS). 
      If LPM_WIDTHAD is too small, some memory locations will not 
      be addressable. If it is too large, the addresses that are too high will 
      return undefined logic levels. | 
  
LPM_NUMWORDS | 
    Integer | No | Number of words stored in memory. In general, 
      this value should be (but is not required to be) 2 ^ LPM_WIDTHAD-1 
      < LPM_NUMWORDS <= 2 ^ LPM_WIDTHAD. If omitted, 
      the default is 2 ^ LPM_WIDTHAD. | 
  
LPM_FILE | 
    String | Yes | Name of the Memory 
      Initialization File (.mif) or Hexadecimal 
      (Intel-Format) Output File (.hexout) containing ROM initialization 
      data ("<file name>"), or 
      "UNUSED". | 
  
LPM_ADDRESS_CONTROL | 
    String | No | Values are "REGISTERED", 
      "UNREGISTERED", and "UNUSED". 
      Indicates whether the address port is registered. If omitted, 
      the default is "REGISTERED". | 
  
LPM_OUTDATA | 
    String | No | Values are "REGISTERED", 
      "UNREGISTERED", and "UNUSED". 
      Indicates whether the q and eq ports are registered. 
      If omitted, the default is "REGISTERED". | 
  
LPM_HINT | 
    String | No | Allows you to specify Altera-specific 
      parameters in VHDL Design Files (.vhd). 
      The default is "UNUSED". | 
  
LPM_TYPE | 
    String | No | Identifies the library of parameterized modules (LPM) entity name in VHDL Design Files. | 
| Synchronous Read from Memory | ||||||
|---|---|---|---|---|---|---|
      
  | 
  
Totally asynchronous memory operations occur when neither inclock 
  nor outclock is connected. The output q[] is asynchronous 
  and reflects the data in the memory location to which address[] 
  points. For asynchronous memory operations the memory location pointed to by 
  address[] is read.  Note 
  (9)
Uses one embedded cell per memory bit; however, in FLEX 6000 devices, uses one logic cell per memory bit.
| This topic prints best in Landscape orientation. | 
| 
       - PLDWorld -  | 
    
| 
       
  | 
  
| Created by chm2web html help conversion utility. |