EmbDev.net

Forum: FPGA, VHDL & Verilog Modelsim Vhdl library lpm not found.


von nehssen s. (nehsr)


Rate this post
useful
not useful
Hello,

When compiling my program, the following error is being printed:
Library lpm not found.

Is there anything i can do to resolve that in modelsim?.....

von Lothar M. (Company: Titel) (lkmiller) (Moderator)


Rate this post
useful
not useful
> When compiling my program
Which one?

Pls read your own post WITHOUT ANY knowledge about your problem. You 
will see: there is not nearly enough information for any hint!

And: do you know Google?
http://www.google.com/search?q=Library+lpm+not+found

von Duke Scarring (Guest)


Rate this post
useful
not useful
5 bucks for the solution:
run
1
vlib lpm
in your simulation directory...

Duke

von nehssen s. (nehsr)


Rate this post
useful
not useful
says : ''cannot find expanded name "lpm.lpm_components".

I've looking on google and apparently i need a folder termed as 
"220model"?

von nehssen s. (nehsr)


Rate this post
useful
not useful
Here is the code i want to simulate :

LIBRARY lpm;
USE lpm.lpm_components.ALL;

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;

PACKAGE mul_package is -- user defined components
  COMPONENT ccmul
    GENERIC (W2 : INTEGER := 17; --multiplier bit width
              W1 : INTEGER := 9; --bit width C+S SUM
              W   : INTEGER := 8); -- Input bit width

              PORT
              (clk : IN STD_LOGIC; -- clock for the output register
              x_in, y_in, c_in : IN STD_LOGIC_VECTOR(W-1 DOWNTO 0);
              --INPUTS
              cps_in, cms_in : IN STD_LOGIC_VECTOR(W-1 DOWNTO 0);
              --INPUTS
              r_out, i_out : OUT STD_LOGIC_VECTOR(W-1 DOWNTO 0));
              --RESULTS
            END COMPONENT;
          END mul_package;

LIBRARY work;
USE work.mul_package.ALL;

LIBRARY ieee;
USE ieee.std-logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
LIBRARY lpm;
USE lpm.lpm_components.ALL;

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
USE ieee.std_logic_unsigned.ALL;

ENTITY bfproc IS
  GENERIC ( W2 : INTEGER := 17;  --multiplier bit width
  W1 : INTEGER := 9;
  W : INTEGER := 8);
  PORT
  (clk    :STD_LOGIC;
  Are_in, Aim_in, c_in, --8 bit inputs
  Bre_in, Bim_in : IN STD_LOGIC_VECTOR(W-1 DOWNTO 0);
  cps_in, cms_in : IN STD_LOGIC_VECTOR(W1-1 DOWNTO 0); --9 bits 
coefficients

  Dre_out, Dim_out, --8bit results
  Ere_out , Eim_out : OUT STD_LOGIC_VECTOR(W1 DOWNTO 0));
END bfproc;

ARCHITECTURE flex OF bfproc IS
  SIGNAL dif_re, dif_im         --Bf out
  : STD_LOGIC_VECTOR(W-1 DOWNTO 0);
  SIGNAL Are, Aim, Bre, Bim : integer RANGE -128 TO 127;
  --inputs as integers
  SIGNAL c : STD_LOGIC_VECTOR(W-1 DOWNTO 0);
  --input
  SIGNAL cps, cms : STD_LOGIC_VECTOR(W1 DOWNTO 0);
  --RESULTS

BEGIN
  PROCESS --compute the additions of the butterfly using
    BEGIN -- integers and store inputs in flip flops
      WAIT UNTIL clk = '1';
      Are <= CONV_INTEGER (Are_in);
      Aim <= CONV_INTEGER(Aim_in);
      Bre <= CONV_INTEGER(Bre_in);
      Bim <= CONV_INTEGER(Bim_in);
      c <= c_in; --load from memory cos
      cps <= cps_in; --load from memory cos+sin
      cms <= cms_in; --Load from memory cos-sin
      Dre_out <= CONV_STD_LOGIC VECTOR (Are + Bre )/2, W);
      Dim_out <= CONV_STD_LOGIC_VECTOR(Aim + Bim)/2, W);
    END PROCESS;

    --No FF because butterfly difference ''diff'' is not an output port

    PROCESS (Are, Bre, Aim, Bim)
      BEGIN
        dif_re <= CONV_STD_LOGIC_VECTOR(Are/2 - Bre/2, 8);
        dif_im <= CONV_STD_LOGIC_VECTOR(Aim/2 - Bim/2,8);
      END PROCESS;

von enan (Guest)


Rate this post
useful
not useful
1
USE lpm.lpm_components.ALL
this is the line which causes your error. You should check if you are 
really using components out of that library.

von Marius W. (mw1987)


Rate this post
useful
not useful
1
USE ieee.std-logic_1164.ALL;

Here is a typo, too!

von user (Guest)


Rate this post
useful
not useful
you have to compile the xilinx libaries with

compxlib -s mti_pe -f all -l all -o ./

see also:
http://www.xilinx.com/support/answers/15338.htm

von Lothar M. (Company: Titel) (lkmiller) (Moderator)


Rate this post
useful
not useful
> you have to compile the xilinx libaries
Xilinx? LPM are "Megafunctions" from Altera...     :-o
http://www.altera.com/support/software/eda_maxplus2/synopsys/fpgaex/fpxlpm.html

von ahmed (Guest)


Rate this post
useful
not useful
thanks u

von Duke Scarring (Guest)


Rate this post
useful
not useful
Just for completeness, here is a kind of compxlib for Altera. Stratix 
IV (Makefile):
1
.ONESHELL:
2
.SILENT:
3
4
QUARTUS_PATH = ..
5
COMPILED_PATH = compiled_libs
6
FLAGS =  -93  -quiet
7
VFLAGS = -vlog01compat  -quiet
8
9
all: clean build_verilog build_vhdl
10
11
build_verilog:
12
  cd compiled_libs
13
  vlib altera_ver
14
  vlib sgate_ver
15
  vlib lpm_ver
16
  vlib altera_mf_ver
17
  vlib stratixiv_ver
18
  
19
  vmap altera_ver       ${COMPILED_PATH}/altera_ver
20
  vmap sgate_ver        ${COMPILED_PATH}/sgate_ver
21
  vmap lpm_ver          ${COMPILED_PATH}/lpm_ver
22
  vmap altera_mf_ver    ${COMPILED_PATH}/altera_mf_ver
23
  vmap stratixiv_ver    ${COMPILED_PATH}/stratixiv_ver
24
25
  vlog  ${VFLAGS} -work altera_ver    ${QUARTUS_PATH}/sim_lib/altera_primitives.v
26
  vlog  ${VFLAGS} -work sgate_ver     ${QUARTUS_PATH}/sim_lib/sgate.v
27
  vlog  ${VFLAGS} -work lpm_ver       ${QUARTUS_PATH}/sim_lib/220model.v
28
  vlog  ${VFLAGS} -work altera_mf_ver ${QUARTUS_PATH}/sim_lib/altera_mf.v
29
  vlog  ${VFLAGS} -work stratixiv_ver ${QUARTUS_PATH}/sim_lib/stratixiv_atoms.v
30
31
32
build_vhdl:  
33
  cd compiled_libs
34
  vlib altera
35
  vlib lpm
36
  vlib stratixiv
37
38
  vmap altera       ${COMPILED_PATH}/altera
39
  vmap lpm          ${COMPILED_PATH}/lpm
40
  vmap stratixiv    ${COMPILED_PATH}/stratixiv
41
  
42
  vcom ${FLAGS} -work  altera ${QUARTUS_PATH}/sim_lib/altera_primitives_components.vhd
43
  vcom ${FLAGS} -work  altera ${QUARTUS_PATH}/sim_lib/altera_primitives.vhd
44
45
  #vcom ${FLAGS} -work  lpm ${QUARTUS_PATH}/fv_lib/vhdl/lpms/lpm_components.vhd
46
  #vcom ${FLAGS} -work  lpm ${QUARTUS_PATH}/fv_lib/vhdl/lpms/lpm_and.vhd
47
  #vcom ${FLAGS} -work  lpm ${QUARTUS_PATH}/fv_lib/vhdl/lpms/lpm_mux.vhd
48
  #vcom ${FLAGS} -work  lpm ${QUARTUS_PATH}/fv_lib/vhdl/lpms/lpm_or.vhd
49
  #vcom ${FLAGS} -work  lpm ${QUARTUS_PATH}/fv_lib/vhdl/lpms/lpm_xor.vhd
50
51
  vcom ${FLAGS} -work  stratixiv ${QUARTUS_PATH}/fv_lib/vhdl/stratixiv/stratixiv_components.vhd
52
  vcom ${FLAGS} -work  stratixiv ${QUARTUS_PATH}/sim_lib/stratixiv_atoms.vhd
53
  vcom ${FLAGS} -work  stratixiv ${QUARTUS_PATH}/sim_lib/stratixiv_components.vhd
54
  
55
  
56
clean:
57
  /bin/rm -rf  altera
58
  /bin/rm -rf  lpm
59
  /bin/rm -rf  stratixiv
60
  
61
  /bin/rm -rf altera_ver
62
  /bin/rm -rf lpm_ver
63
  /bin/rm -rf sgate_ver
64
  /bin/rm -rf altera_mf_ver
65
  /bin/rm -rf stratixiv_ver

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.