Altera Home Page
Literature Licensing
Buy On-Line Download

  Home   |   Products   |   Support   |   End Markets   |   Technology Center   |   Education & Events   |   Corporate   |   Buy On-Line  
  Knowledge Database   |   Devices   |   Design Software   |   Intellectual Property   |   Reference Designs   |   Design Examples   |   mySupport  

 Products
   Quartus II
      SOPC Builder
      MAX+PLUS II
      ModelSim-Altera
  
 Resource Centers
      Overview
      Installation & Licensing
      Scripting
      Board Design & I/O
      Synthesis & Netlist Viewers
      Incremental Compilation
      Optimization
      Power Management
   TimeQuest Timing Analyzer
      Classic Timing Analyzer
      Simulation & Verification
      On-Chip Debugging
      HardCopy Design
  
 Software Resources
      OS Support
      Driver Installation
  
 Download & Licensing
      Download
   Licensing
  
 Quartus II EDA Support
      Quartus II Interface
   Synthesis Tools
   Simulation Tools
   Formal Verification Tools
   Timing Analysis Tools
   Physical Synthesis Tools
   Board Level Tools
  
 Legacy Sw. EDA Support
      View by Vendor
      View by Tool
      View by Function
  

Library Mapping File Syntax

Library Mapping Files (.lmf) have the following BNF syntax:

LIBRARY <library name>

{ BEGIN
FUNCTION

<Quartus II function>, (<Quartus II IN1>, <Quartus II IN2>,..., <Quartus II INn>)
RETURNS

<Quartus II OUT1>, <Quartus II OUT2>,..., <Quartus II OUTn>
FUNCTION

"<third-party function>"("<third-party IN1>", "<third-party IN2>",...,"<third-party INn>")
RETURNS

("<third-party OUT1>", "<third-party OUT2>",...,"<third-party OUTn>")
END }

The following definitions apply to the Library Mapping File syntax variables shown in the example above.

  • <library name>—The user-specified name of the Library Mapping File.

  • <Quartus II function>—The Quartus II logic function name. The name can be either Quartus II–provided or user-created. A user-created megafunction or macrofunction can have a filename with up to 32 name characters, and its input and output port names must have legal name characters.

  • <Quartus II IN1>—The Quartus II logic function input port name. The Library Mapping File includes a list of all logic function input port names, enclosed in parentheses. The order of the input port names for the Quartus II function must match the order of the input port names (<third party IN1>) for the third-party function.

  • <Quartus II OUT1>—The logic function output or bidirectional port name. The Library Mapping File includes a list of all logic function output port names, enclosed in parentheses. The order of the output port names for the Quartus II function must match the order of the output port names (<third party OUT1>) for the third-party function.

  • <third party function>—The third-party logic function name, which must be enclosed in double quotation marks (").

  • <third party IN1>—The third-party logic function's input port name, which must be enclosed in double quotation marks ("). The order of the input port names for the third-party function must match the order of the input port names (<Quartus II IN1>) for the Quartus II function.

  • <third party OUT1>—The third-party logic function's output or bidirectional port name, which must be enclosed in double quotation marks ("). The order of the output port names for the third-party function must match the order of the output port names (<Quartus II OUT1>) for the Quartus II function.

Third-party logic function and port names are the original names given to cells and ports. If a design is converted to an EDIF Input File, these original names can change in one of two ways:

  • The original name can be changed with the EDIF rename construct in the EDIF netlist file when the design is converted.

    For example, you may have a function called foo$, which is an illegal EDIF identifier. This function would be renamed to cell foodollar when the design is converted to EDIF. This cell would appear as follows:

    (cell (rename foodollar "foo$")...

    In this case, you should use the name "foo$" to map the function in a Library Mapping File. In addition, you must ensure that the third-party EDIF netlist writer generates the renamed construct when it renames cells and ports.

  • The original third-party name might be automatically renamed when the design is converted, rather than being explicitly renamed with the rename construct.

    Some EDIF netlist writers may automatically append an ampersand (&) to the beginning of an illegal function name to make the name legal. Remember, however, that you must still use the function's original name (without the &) when mapping it to a Quartus II logic function in a Library Mapping File.

    For example, if you have a function called 74185, which is an illegal EDIF identifier, the function might be automatically renamed to EDIF cell as follows:

    (cell &74185...

    The function must appear as "74185" in an Library Mapping File.

 

 

  Please Give Us Feedback