Forum: FPGA, VHDL & Co. Fehler "Library works has no units"


von Jens K. (mister232)


Lesenswert?

Hallo Leute,

ich habe mir letztes Jahr das FPGA-Board von Elektor zugelegt. Nachdem 
ich nun endlich mal Zeit habe mich damit zu beschäftigen wollte ich nun 
mit einem einfachen Projekt anfangen. Wenn ein Taster gedrückt wir soll 
eine LED auf dem Board angehen, sonst nicht.

Ist schon etwas länger her das ich das letzte mal programmiert habe, 
also bitte nicht zu sehr meckern:
1
----------------------------------------------------------------------------------
2
-- Company: 
3
-- Engineer: 
4
-- 
5
-- Create Date:    10:36:41 03/13/2014 
6
-- Design Name: 
7
-- Module Name:    LED_SWITCH - BEHAVIORAL 
8
-- Project Name: 
9
-- Target Devices: 
10
-- Tool versions: 
11
-- Description: 
12
--
13
-- Dependencies: 
14
--
15
-- Revision: 
16
-- Revision 0.01 - File Created
17
-- Additional Comments: 
18
--
19
----------------------------------------------------------------------------------
20
library IEEE;
21
use IEEE.STD_LOGIC_1164.ALL;
22
23
-- Uncomment the following library declaration if using
24
-- arithmetic functions with Signed or Unsigned values
25
--use IEEE.NUMERIC_STD.ALL;
26
27
-- Uncomment the following library declaration if instantiating
28
-- any Xilinx primitives in this code.
29
--library UNISIM;
30
--use UNISIM.VComponents.all;
31
32
entity LED_SWITCH is
33
  port( IN : in bit;
34
      OUT: out bit);
35
end LED_SWITCH;
36
37
architecture BEHAVIORAL of LED_SWITCH is
38
begin
39
  P1:   process
40
      begin
41
        if IN = 1 then OUT <= 1;
42
          else      OUT <= 0;
43
        end if;
44
      end process P1;
45
end BEHAVIORAL;

Wenn ich nun versuche es zu synthetisieren, dann sagt Xilinx:

WARNING:HDLParsers:3481 - Library work has no units. Did not save 
reference file "xst/work/hdllib.ref" for it.

von Jens K. (mister232)


Lesenswert?

Der Beitrag kann gelöscht werden, hat sich erledigt. Sorry

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jens K. schrieb:
> hat sich erledigt.
Falls einer mal einen ähnlichen Fehler hat:
Ports dürfen nicht den Namen von Schlüsselwörtern haben.
1
 port( IN  : in bit;
2
       OUT : out bit);
Das sieht man dann auch schön anhand des Syntax-Highlightings.

von Duke Scarring (Gast)


Lesenswert?

Noch eine kleine Anmerkung von mir:
Der Datentyp bit kommt nur in theoretischen Lehrbüchern zu VHDL vor.
In der Praxis wird es aufwändig, wenn mal fremde Module, Testbenches 
oder Modelle verwendet werden sollen, weil sich dort der Datentyp 
std_logic durchgesetzt hat.

Ich personlich verwende ja gerne std_ulogic (außer wenn tri-state 
Signale gebraucht werden), da meckert schon der Simulator (und nicht 
erst der Synthesizer), wenn man mehrere Ausgänge miteinander verbindet.

Duke

von Fpgakuechle K. (Gast)


Lesenswert?

Man sollte auch die fehlende sensetivity list anmerken und eigentlich 
ist der process hier völlig unpassend. Ein:
1
architecture BEHAVIORAL of LED_SWITCH is
2
begin
3
 port_IN <= port_out;  --port in in port_in unbenannt ebenso f. out
4
end BEHAVIORAL;
macht dasselbe.

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.