Forum: FPGA, VHDL & Co. ISE findet package nicht


von Andreas (Gast)


Lesenswert?

Hi,

Ich habe ein Problem mit einem Package in VHDL / ISE.

Ich brauche nur einen Typ (array von array) und ein paar Konstanten in 
mehreren Files. Ich habe folgenden Code in ein Package-File geschrieben:
1
LIBRARY crossbar;
2
PACKAGE config IS
3
  constant crossbar_port_count : integer := 24;
4
  constant crossbar_clock_count : integer := 4;
5
  constant crossbar_fixed_count : integer := 2;
6
  
7
  constant crossbar_clock_width : integer := integer(ceil(log2(real(crossbar_clock_count) + 0.5)));
8
  constant crossbar_data_width : integer := integer(ceil(log2(real(crossbar_port_count) + 0.5)));
9
  
10
  constant crossbar_config_width : integer := crossbar_data_width + crossbar_clock_width + 2;
11
  
12
  -- data:
13
  --   data selection
14
  --   clock selection
15
  --   control lane
16
  --   enable lane
17
  type crossbar_config is array( crossbar_port_count - 1 downto 0) of std_logic_vector( crossbar_config_width - 1 downto 0);
18
  
19
  constant crossbar_data_start : integer := crossbar_config_width - 1;
20
  constant crossbar_data_stop : integer := crossbar_data_start - crossbar_data_width;
21
  constant crossbar_clock_start : integer := crossbar_data_stop - 1;
22
  constant crossbar_clock_stop : integer := crossbar_clock_start - crossbar_clock_width;
23
  constant crossbar_control_pos : integer := crossbar_clock_stop - 1;
24
  constant crossbar_enable_pos : integer := crossbar_control_pos - 1;
25
END config;

Jedes mal wenn ich das File speichere verschwindet die Datei aus der 
Sources ansicht. Auch wenn ich die Konstanten woanders benutzen möchte 
bekomme ich eine Meldung das die Library nicht gefunden werden konnte.

Was mache ich falsch?

mfg
Andreas

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Mit eigenen Libraries habe ich noch nicht gearbeitet.

Mach ein Package, das erfüllt deinen Zweck genau so.

Du muss das Package in den zu verwendeten Dateien einbinden.

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
--USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.ALL;
 use work.config.all;   -- dein Package aus deinem Arbeitsverzeichnis

von Andreas (Gast)


Lesenswert?

Hi,

Danke für die Idee, hat allerdings nicht verändert. Habe nur ein Package 
gemacht, und die USE Zeilen in allen Files angepasst. Gleiches Ergebnis 
wie vorher: Das File selbst ist in der Sources Ansicht von ISE nicht 
mehr zu sehen, und wärend des Syntax check bekomme ich folgende 
Fehlermeldung:

ERROR:HDLParsers:3014 - 
"C:/work/XPS/crossbar_switch_v1_00_a/hdl/vhdl/user_logic.vhd" Line 64. 
Library unit config is not available in library crossbar_switch_v1_00_a.

Zum Einbinden in die jeweiligen Files habe ich:
1
USE work.config.all;
benutzt.

Es scheint fast so als ob ISE mein File komplett ignoriert...

mfg
Andreas

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

Wieso steht in der Fehlermeldung Library crossbar?

Lege unter ISE nochmal ein neues Projekt an.

von Andreas (Gast)


Lesenswert?

Hi,

Was ich vorher nicht gesagt habe: das Design ist ein Template das von 
XPS generiert wurde. Ich muss meine Hardware per PLB an einen Microblaze 
anbinden.

mfg
Andreas

von Andreas (Gast)


Lesenswert?

Ok habe das Problem gefunden. Ich hatte die Files zwar in das ISE 
Projekt welches XPS erstellt, jedoch hatte ich vergessen das ich das 
File auch in das *.pao file eintragen muss damit es beim synthetisieren 
im XPS gefunden wird...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.