Altera Home Page
文档资料 许可
在线购买 下载

  主页   |   产品   |   支持   |   最终市场   |   技术中心   |   教育与活动   |   公司介绍   |   在线购买  
  mySupport   |   器件   |   软件   |   IP   |   设计范例   |   参考设计  

 产品
   Quartus II
      SOPC Builder
      MAX+PLUS II
      ModelSim-Altera
  
 资源中心
      简介
      安装&许可
      脚本
       电路板设计& I/O
      网表阅读器 & 综合
      编译增强特性
      优化
      功耗管理
   TimeQuest时序分析器
      标准时序分析器
      仿真 & 确认
      片内调试
      HardCopy设计
  
 软件资源
      操作系统支持
      驱动安装
  
 下载与许可
      下载
   许可
  
 Quartus II EDA 支持
      Quartus II 接口
   综合工具
   仿真工具
   验证工具
   时序分析工具
   再综合工具
   电路板级工具
  
 老版软件EDA支持
      供应商类
      工具类
      功能类
  

Instantiating LPM Functions in VHDL

You can enter library of parameterized modules (LPM) functions in your VHDL design. The MAX+PLUS® II software supports all LPM functions except the truth table, finite state machine, and pad functions. The FPGA Express software supports all LPM functions that are supported in the MAX+PLUS II software except the lpm_and, lpm_or, lpm_xor, and lpm_mux functions. Choose Megafunctions/LPM from the MAX+PLUS II Help menu for detailed information on all LPM functions.

To instantiate an LPM function in a VHDL design, follow these steps:

  1. Create an instance of an LPM function in VHDL with a Component Instantiation Statement. VHDL Component Declarations for LPM functions are available in MAX+PLUS II Help and also installed automatically in the following FPGA Express directory:

    <drive>:¥synopsys¥fpga_express¥lib¥packages¥lpm¥lpm_components.vhd

    Use named association to specify parameter values in the Generic Map Clauses of LPM function instantiations. Figure 1 shows the Component Declaration for the lpm_ram_dq function.

    Figure 1. Component Declaration for lpm_ram_dq (from lpm_components.vhd)

    COMPONENT lpm_ram_dq
       GENERIC (
                LPM_WIDTH: POSITIVE;
                LPM_TYPE : STRING := L_RAM_DQ;
                LPM_WIDTHAD: POSITIVE;
                LPM_NUMWORDS: STRING := UNUSED;
                LPM_FILE: STRING := UNUSED;
                LPM_INDATA: STRING := REGISTERED;
                LPM_ADDRESS_CONTROL : STRING := REGISTERED;
                LPM_OUTDATA: STRING := REGISTERED
                );
       PORT    (
                data     : IN STD_LOGIC_VECTOR(LPM_WIDTH-1 DOWNTO 0);
                we       : IN STD_LOGIC := '1';
                inclock  : IN STD_LOGIC := '1';
                outclock : IN STD_LOGIC := '1';
                address  : IN STD_LOGIC_VECTOR(LPM_WIDTHAD-1 DOWNTO 0);
                q        : OUT STD_LOGIC_VECTOR (LPM_WIDTH-1 DOWNTO 0)
               );
    END COMPONENT;
    

  2. Manually tie any pins that require an initial value of logic 1 to vcc. The FPGA Express software does not support initial values of logic 1 in Component Declarations. However, it does support initial values of logic 0.

    Figure 2 shows an example of instantiating an lpm_ram_dq function in VHDL.

    Figure 2. VHDL Design File with lpm_ram_dq Instantiation

    LIBRARY ieee;
    USE ieee.std_logic_1164.all;
    LIBRARY lpm;
    USE lpm.lpm_components.all;
    
    ENTITY design IS
       PORT(
            din  : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
            we   : IN STD_LOGIC;
            clk  : IN STD_LOGIC;
            addr : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
            dat  : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
            );
    END design;
    
    ARCHITECTURE struct OF design IS
       SIGNAL vcc : STD_LOGIC;
    
    BEGIN  --  struct
       vcc <= '1';
    
    u1:  lpm_ram_dq
       GENERIC MAP(
                   LPM_WIDTH   => 16,
                   LPM_WIDTHAD => 4,
                   LPM_INDATA  => "UNREGISTERED",
                   LPM_OUTDATA => "UNREGISTERED"
                  )
    
       PORT MAP(
                data     => din,
                address  => addr,
                we       => we,
                q        => dat,
                inclock  => vcc,
                outclock => clk
                );
    END struct;

  3. Continue with the steps necessary to complete your VHDL design, as described in Creating VHDL Designs for Use with MAX+PLUS II Software.

  请填写反馈意见
  注册索取最新邮件通知