Forum: FPGA, VHDL & Co. ISE: Map schneidet benötigte Signale ab.


von Mario M. (muraer)


Lesenswert?

Hallihallo zusammen,

ich tüftel gerade ein bisschen an VHDL rum. (AVR-Softcore in einen 
Spartan-3E).
Dazu verwende ich ISE 12.3.

Mein Top-Modul hat momentan zwei Inputs: die 50MHz Clock und einen 
Reset-Taster.
Die Clock geht dann direkt zu einem DCM, der 20MHz produziert, was dann 
weiter zu den einzelnen Komponenten geht.

Soweit so übersichtlich.

Hier mal die wichtigen VHDL-Schnipsel:
Top-Level:
1
entity AVR_SoC_Top is
2
  port(
3
    CLK_50 : in std_logic;
4
    Btn_North : in std_logic
5
  );
6
end AVR_SoC_Top;

Der DCM:
1
--Digital Clock Manager:
2
  Inst_Clock_Gen : Clock_Gen port map(
3
    CLKIN_IN => CLK_50, --50MHz input from the board
4
    RST_IN => '0', --don't reset the DCM
5
    CLKFX_OUT => CLK_20xC, --20MHz Output
6
    CLKFX180_OUT => CLK_20_180xC, --20MHz, 180deg phase Shifted Output
7
    CLKIN_IBUFG_OUT => open , 
8
    CLK0_OUT => open, --no use for the 50MHz clock 
9
    LOCKED_OUT => DCM_lockedxS --use for Reset
10
  );

Und die Reset-Verwurstung:
1
--Assign Reset from Button to signal:
2
  Assert_Reset: process(DCM_lockedxS, Btn_North) is
3
  begin
4
    if DCM_lockedxS = '0' or Btn_North = '1' then
5
      ResetxS <= '1';
6
      AVR_ResetxS <= '0';
7
    else
8
      ResetxS <= '0';
9
      AVR_ResetxS <= '1';
10
    end if;
11
    
12
  end process Assert_Reset;

Und zuletzt noch das UCF:
1
NET "CLK_50" LOC = "C9" |IOSTANDARD = LVTTL;
2
NET "CLK_50" PERIOD = 20 ns HIGH 50%;
3
# Press buttons 
4
#   Must have pull DOWN resistors to provide Low when not pressed.
5
#
6
NET "Btn_North" LOC = "V4"  |IOSTANDARD = LVTTL |PULLDOWN;


Nun das Problem:
Die Synthese funktioniert Tiptop, ich kann das Ganze auch ohne Probleme 
im Isim simulieren und es tut, was es soll.

Aber: Sobald ich Implentieren möchte, macht der mapper das:

WARNING:MapLib:701 - Signal CLK_50 connected to top level port CLK_50 
has been
   removed.
WARNING:MapLib:701 - Signal Btn_North connected to top level port 
Btn_North has
   been removed.
WARNING:MapLib:39 - The timing specification "PERIOD=20000 pS HIGH 50%" 
on net
   "CLK_50" has been discarded, because the net was optimized out of the 
design.


Und als Konsequenz:



ERROR:Pack:198 - NCD was not produced.  All logic was removed from the 
design.
   This is usually due to having no input or output PAD connections in 
the
   design and no nets or symbols marked as 'SAVE'.  You can either add 
PADs or
   'SAVE' attributes to the design, or run 'map -u' to disable logic 
trimming in
   the mapper.  For more information on trimming issues search the 
Xilinx
   Answers database for "ERROR:Pack:198" and read the Master Answer 
Record for
   MAP Trimming Issues.


Hä, wieso schneidet der mir diese beiden Signale ab?!? Die werden doch 
offensichtlich gebraucht...?(Simulation klappt ja und da funktionieren 
die Signale auch...) Wieso wirft er die raus?

Stehe etwas auf dem Schlauch... bzw. begreife nicht....

Vielleicht könnt Ihr mir da ja weiterhelfen... ;-)

Herzlichen Gruss und schonmal vielen Dank
Mario

von Jan M. (mueschel)


Lesenswert?

Dein Design hat keinen einzigen Ausgang - und da kein eines Signal aus 
dem inneren des FPGA irgendwo außerhalb verwendet wird, ist natürlich 
auch die gesamte Logik im FPGA unnötig und wird wegoptimiert.

von Mario M. (muraer)


Lesenswert?

Omph... :-D

Danke!

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.