Synplify Pro und VHDL packages

Gast #2180459
Lesenswert?
• ▲
▼
Hallo!

Ich habe habe mir ein kleines Package mit zwei Funktionen geschrieben:
1
package log2 is
2
  function log2ceil(x : natural) return natural;
3
  function log2floor(x : natural) return natural;
4
end log2;
5

6
package body log2 is
7

8
  function log2ceil(x : natural) return natural is
9
  begin
10
    for i in 0 to 32 loop
11
      if 2**i > x then
12
        return i;
13
      end if;
14
    end loop;
15
    return 32;
16
  end function;
17

18
  function log2floor(x : natural) return natural is
19
  begin
20
    for i in 1 to 33 loop
21
      if 2**i > x then
22
        return i-1;
23
      end if;
24
    end loop;
25
    return 32;
26
  end function;
27

28
end log2;

Und diese Funktionen möchte ich in einer anderen Entity benutzen:
1
library ieee;
2
use ieee.std_logic_1164.all;
3
library work;
4
use work.log2.all;
5

6
entity blubb is
7
  generic (
8
    bits : natural);
9
  port (
10
    clk    : in  std_logic;
11
    reset  : in  std_logic;
12
    gain   : in  std_logic_vector(log2ceil(2*bits) downto 0);
13
    input  : in  std_logic_vector(bits-1 downto 0);
14
    output : out std_logic_vector(bits-1 downto 0));
15
end blubb;

Allerdings scheint Synplify Pro Probleme damit zu haben:
1
@E:CD255 : main.vhd(83) | No identifier "log2ceil" in scope
2
1 error parsing file C:\Documents and Settings\myself\Desktop\bla\hdl\main.vhd

Mit GHDL funktioniert das super. Wo ist das Problem und wie kann ich es 
beheben?

Ich benutze übrigens Actels Libero.
Gast #2180805
Lesenswert?
• ▲
▼
Ich hab von Libero keine Ahnung. Aber bei GHDL, Modelsim und anderen 
Simulatoren muß die Reihenfolge beim Compilieren eingehalten werden, 
damit alles gefunden wird.

Kannst Du Dein package ggf. einzeln übersetzen?

Duke
Gast #2182002
Lesenswert?
• ▲
▼
> Kannst Du Dein package ggf. einzeln übersetzen?

Danach habe ich auch schon gesucht, aber leider ohne Erfolg.

> Hast du mal eine Architecture beschrieben ?

Ein
1
architecture behav of blubb is
2

3
-- ...
4

5
begin
6

7
-- ...
8

9
end behav

ist in der main.vhd natürlich mit drin. Die wollte ich der Einfachheit 
halber nur nicht mit posten.
Gast #2185776
Lesenswert?
• ▲
▼
Nope, sie ist nicht leer. In ihr stecken einige Wochen Arbeit, die 
langsam mal auf realer Hardware getestet werden will. ;)

Ich überlege, ob ich die beiden Funktionen nicht einfach mit in die VHDL 
Dateien schreibe, in denen sie gebraucht werden, da das mit den Packages 
unter Libero/Synplify ja irgendwie nicht klappt. Es sei denn jemand hat 
da noch eine andere Idee, woran das liegen könnte?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren