ISE findet package nicht

Gast #1473334
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
(Firma: www.dossmatik.de) #1473557
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
Gast #1473638
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
Gast #1475551
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...

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