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ß!
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...
> 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?
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
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);
> 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.
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;
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
ntityTOPFILEis
2
Port(
3
In1:inSTD_LOGIC_VECTOR(7downto0);
4
out1:outSTD_LOGIC
5
);
6
endTOPFILE;
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 :)
> 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;
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.
> 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... ;-)
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 !