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.
Davon bin ich ja ausgegangen, weil das am meisten Sinn ergibt... Jedoch bekomme ich dann Undefined symbol Fehler...
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 | 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 :)
So hab ich es auch gemacht. Ich bekomme weiterhin "Undefined Symbol" für die Ports...
> 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;
Für alle! Ich hab schon die Einstellung Allow unmatched LOC constraints gesetzt... Für den Fall, dass ich einen Port nicht brauche...
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 !
Und ich würde einen Arbeitsordner wählen der keine Leerzeichen hat vor allem wenn du noch mit einer älteren ISE unterwegs bist, ...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.