Forum: FPGA, VHDL & Co. UCF File in VHDL verwenden


von Erdin (Gast)


Lesenswert?

Guten Morgen!

Ich habe hier nen Virtex 5 Board und soll mich in das einarbeiten. Jetzt 
hab ich ein kleines Modul geschrieben und wollte mit einem kleinen UCF 
File die Pins mit dem Modul verbinden. Aus irgendwelchen Gründen aber 
will er die Definitionen aus dem UCF nicht nehmen. Verwende ISE 9.2 und 
das UCF ist unter dem Top-Modul drin. Muss ich noch irgendwelche 
Einstellungen setzen?

Gruß!

von Erdin (Gast)


Lesenswert?

Sorry für Doppelpost, aber hier mal das UCF:

NET "RESET_SW_PB1"  LOC = AM32;
NET "CLK_REC_N"    LOC = K19;
NET "CLK_REC_P"    LOC = L19;
NET "CDR_DOWN"    LOC = B33;
NET "CDR_UP"    LOC = L10;
NET "CLK_IN"    LOC = H17;

Muss da noch was hin (mein erstes UCF)?
Im Code wollte ich dann einfach die Netze verwenden, ohne sie als Signal 
zu definieren. Das schlug fehl. Nachdem ich die als Signal definiert 
habe, meckert ISE rum, dass die Signale nie benutzt werden...

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


Lesenswert?

> und das UCF ist unter dem Top-Modul drin.
Wie soll das gehen? Das UCF-File ist eine Steuerdatei für den Workflow. 
Das hat mit VHDL-Dateien erst mal überhaupt gar nichts zu tun...

> und das UCF ist unter dem Top-Modul drin.
Oder meinst du damit die Projekt-Ansicht in ISE?

> Aus irgendwelchen Gründen aber
> will er die Definitionen aus dem UCF nicht nehmen.
Was bekommst du für Meldungen?

von Duke Scarring (Gast)


Lesenswert?

Erdin schrieb:
> Aus irgendwelchen Gründen

Das ist keine hilfreiche Fehlerbeschreibung. Wo tritt denn der Fehler 
auf? Welches Verhalten erwartest Du? Welche Prozessschritte führst Du 
durch?

Duke

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


Lesenswert?

Poste doch mal dein Top-Modul und dein UCF-File.

von Erdin (Gast)


Lesenswert?

Also den einzigen Fehler, den ich bekomme ist:
Port I of Input buffer refclk/CLKIN_IBUFG_INST is connected to GND

An dem IBUFG ist aber das Netz CLK_IN dran, welches die Clock liefert.

> und das UCF ist unter dem Top-Modul drin.
Oder meinst du damit die Projekt-Ansicht in ISE?
Jepp, das hab ich gemeint =) !

Außerdem bekomme ich folgende Warnings:
WARNING:Xst:646 - Signal <CDR_UP> is assigned but never used.
WARNING:Xst:653 - Signal <CLK_IN> is used but never assigned. Tied to 
value 0.
WARNING:Xst:646 - Signal <CDR_DOWN> is assigned but never used.
WARNING:Xst:653 - Signal <CLK_REC_P> is used but never assigned. Tied to 
value 0.
WARNING:Xst:653 - Signal <RESET_SW_PB1> is used but never assigned. Tied 
to value 0.

Wobei ich die in meinem Top Modul verwende...

  cdr_inst : CDR port map(vco => CLK_REC_P,
                  refclk => clk_out,
                  reset => RESET_SW_PB1,
                  data => '0',
                  --pd_select => ,
                  --dataout => ,
                  mkvcofaster => CDR_UP,
                  mkvcoslower => CDR_DOWN
                  --vco_tc => ,
                  --refclk_tc =>
                  );

  refclk: clkGen PORT MAP(RST_IN => RESET_SW_PB1,
                  CLKIN_IN => CLK_IN,
                  CLKFX_OUT => clk_out);

von Nephilim (Gast)


Lesenswert?

> Im Code wollte ich dann einfach die Netze verwenden, ohne sie als Signal
> zu definieren. Das schlug fehl. Nachdem ich die als Signal definiert
> habe, meckert ISE rum, dass die Signale nie benutzt werden...

Die Namen die in dem UCF File auf Pins gelegt werden sind in deinem VHDL 
Design die Ports in der Entity, keine Signale in der Architecture.

von Erdin (Gast)


Lesenswert?

Davon bin ich ja ausgegangen, weil das am meisten Sinn ergibt... Jedoch 
bekomme ich dann Undefined symbol Fehler...

von Duke Scarring (Gast)


Lesenswert?

CLKIN != CLK_IN

von Erdin (Gast)


Lesenswert?

Hier mal das ganze Top Modul

------------------------------------------------------------------------ 
----------
-- Company:
-- Engineer:
--
-- Create Date:    16:19:05 06/23/2010
-- Design Name:
-- Module Name:    CDR_Top - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
------------------------------------------------------------------------ 
----------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
library UNISIM;
use UNISIM.VComponents.all;

entity CDR_Top is
  port(
      RESET_SW_PB1  : in    std_logic;
      CLK_IN      : in    std_logic;
      CLK_REC_P    : in    std_logic;
      CDR_UP      : in    std_logic;
      CDR_DOWN      : in    std_logic
    );
end CDR_Top;

architecture Behavioral of CDR_Top is

COMPONENT clkGen is
  PORT(
      CLKIN_IN        : in    std_logic;
      RST_IN          : in    std_logic;
      CLKFX_OUT       : out   std_logic;
      CLKIN_IBUFG_OUT : out   std_logic;
      CLK0_OUT        : out   std_logic;
      LOCKED_OUT      : out   std_logic);
  END COMPONENT;

component CDR is
  port(
    vco : in std_logic;
    refclk : in std_logic;
    reset : in std_logic;
    data : in std_logic;
    -- pd_select : in std_logic; --uncomment, if LockDet does not work
    dataout : out std_logic_vector (1 downto 0);
    mkvcofaster : out std_logic;
    mkvcoslower : out std_logic;
    vco_tc : out std_logic;
    refclk_tc : out std_logic
    );
  end component;

signal clk_out : std_logic;

begin

--  BUFR_inst : BUFR
--  generic map (
--  BUFR_DIVIDE => "BYPASS") -- "BYPASS", "1", "2", "3", "4",
--  -- "5", "6", "7", "8",
--  port map (  O => O, -- Clock buffer output
--          CE => CE, -- Clock enable input
--          CLR => CLR, -- Clock buffer reset input
--          I => I -- Clock buffer input
--          );


  cdr_inst : CDR port map(vco => CLK_REC_P,
                  refclk => clk_out,
                  reset => RESET_SW_PB1,
                  data => '0',
                  --pd_select => ,
                  --dataout => ,
                  mkvcofaster => CDR_UP,
                  mkvcoslower => CDR_DOWN
                  --vco_tc => ,
                  --refclk_tc =>
                  );

  refclk: clkGen PORT MAP(RST_IN => RESET_SW_PB1,
                  CLKIN_IN => CLK_IN,
                  CLKFX_OUT => clk_out);
end Behavioral;


Hier das UCF:

NET "RESET_SW_PB1"  LOC = AM32;
NET "CLK_REC_N"    LOC = K19;
NET "CLK_REC_P"    LOC = L19;
NET "CDR_DOWN"    LOC = B33;
NET "CDR_UP"    LOC = L10;
NET "CLK_IN"    LOC = H17;

von Erdin (Gast)


Lesenswert?

Duke Scarring schrieb:
> CLKIN != CLK_IN

Auf was beziehst Du dich? Ich sehe keinen Fehler...

von Andreas B. (loopy83)


Lesenswert?

Hallo,

im ucf File müssen die Ports deines Topfiles aufgeführt werden, denn sie 
stellen die Verbindung zwischen FPGA und Außenwelt dar.

Es werden also keine Ports zwischen Hirarchie-Stufen aufgeführt oder 
festgelegt, denn diese befinden sich ja noch innerhalb des FPGA.
1
ntity TOPFILE is
2
Port ( 
3
In1 : in STD_LOGIC_VECTOR(7 downto 0);
4
out1 : out STD_LOGIC
5
);
6
end TOPFILE;

UCF File dazu:
1
NET "In1[7]" LOC = XY;
2
NET "In1[6]" LOC = XY;
3
NET "In1[5]" LOC = XY;
4
NET "In1[4]" LOC = XY;
5
NET "In1[3]" LOC = XY;
6
NET "In1[2]" LOC = XY;
7
NET "In1[1]" LOC = XY;
8
NET "In1[0]" LOC = XY;
9
NET "out1" LOC = XY;

Grüße Andi

PS: Hat sich erledigt... war ich wohl zu langsam :)

von Erdin (Gast)


Lesenswert?

So hab ich es auch gemacht. Ich bekomme weiterhin "Undefined Symbol" für 
die Ports...

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


Lesenswert?

> Ich bekomme weiterhin "Undefined Symbol" für die Ports...
Für welchen?
Im VHDL-File sind 5 Ports definiert...
      RESET_SW_PB1  : in    std_logic;
      CLK_IN      : in    std_logic;
      CLK_REC_P    : in    std_logic;
      CDR_UP      : in    std_logic;
      CDR_DOWN      : in    std_logic

Im UCF-File sind 6 Ports definiert...
NET "RESET_SW_PB1"  LOC = AM32;
NET "CLK_REC_N"    LOC = K19;
NET "CLK_REC_P"    LOC = L19;
NET "CDR_DOWN"    LOC = B33;
NET "CDR_UP"    LOC = L10;
NET "CLK_IN"    LOC = H17;

von Erdin (Gast)


Lesenswert?

Für alle!

Ich hab schon die Einstellung Allow unmatched LOC constraints gesetzt... 
Für den Fall, dass ich einen Port nicht brauche...

von Erdin (Gast)


Lesenswert?

Hier mal die Fehler...


ERROR:HDLParsers:3312 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 75. 
Undefined symbol 'CLK_REC_P'.
ERROR:HDLParsers:1209 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 75. 
CLK_REC_P: Undefined symbol (last report in this block)
ERROR:HDLParsers:3312 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 77. 
Undefined symbol 'RESET_SW_PB1'.
ERROR:HDLParsers:1209 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 77. 
RESET_SW_PB1: Undefined symbol (last report in this block)
ERROR:HDLParsers:3312 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 81. 
Undefined symbol 'CDR_UP'.
ERROR:HDLParsers:1209 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 81. CDR_UP: 
Undefined symbol (last report in this block)
ERROR:HDLParsers:3312 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 85. 
Undefined symbol 'CDR_DOWN'.
ERROR:HDLParsers:1209 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 85. 
CDR_DOWN: Undefined symbol (last report in this block)
ERROR:HDLParsers:851 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 75. Formal 
vco of CDR with no default value must be associated with an actual 
value.
ERROR:HDLParsers:3312 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 88. 
Undefined symbol 'CLK_IN'.
ERROR:HDLParsers:1209 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 88. CLK_IN: 
Undefined symbol (last report in this block)
ERROR:HDLParsers:851 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 87. Formal 
CLKIN_IN of clkGen with no default value must be associated with an 
actual value.
ERROR: the file CDR_Top.ngd is missing, the Constraint Editor can not be 
launched.
ERROR:HDLParsers:3312 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 75. 
Undefined symbol 'CLK_REC_P'.
ERROR:HDLParsers:1209 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 75. 
CLK_REC_P: Undefined symbol (last report in this block)
ERROR:HDLParsers:3312 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 77. 
Undefined symbol 'RESET_SW_PB1'.
ERROR:HDLParsers:1209 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 77. 
RESET_SW_PB1: Undefined symbol (last report in this block)
ERROR:HDLParsers:3312 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 81. 
Undefined symbol 'CDR_UP'.
ERROR:HDLParsers:1209 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 81. CDR_UP: 
Undefined symbol (last report in this block)
ERROR:HDLParsers:3312 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 85. 
Undefined symbol 'CDR_DOWN'.
ERROR:HDLParsers:1209 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 85. 
CDR_DOWN: Undefined symbol (last report in this block)
ERROR:HDLParsers:851 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 75. Formal 
vco of CDR with no default value must be associated with an actual 
value.
ERROR:HDLParsers:3312 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 88. 
Undefined symbol 'CLK_IN'.
ERROR:HDLParsers:1209 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 88. CLK_IN: 
Undefined symbol (last report in this block)
ERROR:HDLParsers:851 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 87. Formal 
CLKIN_IN of clkGen with no default value must be associated with an 
actual value.
ERROR: the file CDR_Top.ngd is missing, the Constraint Editor can not be 
launched.
ERROR:HDLParsers:1411 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 88. 
Parameter CDR_UP of mode in can not be associated with a formal port of 
mode out.
ERROR:HDLParsers:1411 - "C:/Dokumente und 
Einstellungen/erdin/Desktop/erdin/vhdl/CDR/CDR_Top.vhd" Line 89. 
Parameter CDR_DOWN of mode in can not be associated with a formal port 
of mode out.

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


Lesenswert?

> ERROR:HDLParsers:3312 - "...CDR_Top.vhd" Line 75.
> Undefined symbol 'CLK_REC_P'.
Du hast kein Problem mit irgendeinem UCF-File, sondern mit deinem 
VHDL-Code...
Mach da mal einfach einen Syntax-Check und klick auf die Fehlermeldungen 
drauf oder navigiere mal die Zeile an, und sieh nach, was da nicht 
stimmt. Es ist u.U. auch hilfreich, ein paar Zeilen vorher 
mitzukontrollieren.

Insgesamt würde ich dir erst mal zu einem simplen Lauflicht raten, um 
den Anfang einfacher zu gestalten.

BTW: Wenn ich ein Optimizer wäre, und ein FPGA-Design nur Input-Ports 
hätte, würde ich alles rausoptimieren...  ;-)

von Erdin (Gast)


Lesenswert?

Vielen Dank! =)

Klassischer Denkfehler... CDR_UP und DOWN müssen natürlich out sein 
klatschankopf!
Dann klappts auch mit der Synthese =D!
Aber ein Datenausgang wäre auch nicht schlecht =P !

von D. I. (Gast)


Lesenswert?

Und ich würde einen Arbeitsordner wählen der keine Leerzeichen hat vor 
allem wenn du noch mit einer älteren ISE unterwegs bist, ...

von Erdin (Gast)


Lesenswert?

Das kann auch Probleme bereiten, ich weiß. Kommt eh alles noch in ein 
Repository... Aber ohne Adminrechte kann ich hier mal gar nix 
konfigurieren =D !

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.