www.mikrocontroller.net

Forum: FPGA, VHDL & Co. ein Signal mehreren Komponenten zuweisen (Top Entity)


Autor: Fragender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich hab mal eine Nope –Frage und zwar hab ich folgendes Problem:
Ich hab eine Top-Entity mit mehreren Komponenten und den dazugehörigen 
Port -Maps, nun hab ich eine Taktleitung sowie eine Reset-Leitung von 
außen, die ich an alle meine Komponenten anschließen möchte, bloß wie?
Wenn ich z.B. den Takt (CLK5) bei dem Port -Map an jeden Takt der 
jeweiligen Komponente ankopple, dann wird mir ein Fehler ausgespuckt 
(Port <CLK5> has illegal connection.)
Meine Frage, wie schließe ich mehrere Komponenten an eine Leitung an, 
sei es die Takt-Leitung oder die Reset-Leitung?
Für Eure Antworten bedanke ich mich schon mal recht herzlichst.

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das geht genauso wie du schreibst - die Fehlermeldung stammt von etwas 
anderem.

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jan:
Ne ne, der Fehler kann schon davon kommen.

@Fragender:
Welche illegallen connections hat den Port <CLK5> ?
Sind das auch wirklich alles Takteingänge?
Oder Mischmasch?

Rick

Autor: Fragender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Welche illegallen connections hat den Port <CLK5> ?
Steht leider nicht bei, Xilinx schneidet die Antwort ab und im Report 
steht es auch nicht drin.

>Sind das auch wirklich alles Takteingänge?
Sollten jeweils an einer Taktleitung hängen.
Komponente "DLL"
CLKIN    => CLK5,

Komponente "CAN"
CLK  => CLK5,

Autor: Fragender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, hab jetzt nochmal den Report erstellt.
Zum Takt kommt nun folgende vollständige Meldung:
ERROR:Xst:2035 - Port <CLK5> has illegal connection. Port is connected 
to input buffer and following ports:
   Port <rclk> of node <CAN/cmod/overrun_fifo/inf.x0> 
(generic_syncram_2p) in unit <top_spartan>
   Port <wclk> of node <CAN/cmod/overrun_fifo/inf.x0> 
(generic_syncram_2p) in unit <top_spartan>
   Port <clk1> of node <CAN/cmod/noft.info_fifo/xc2v.x0> 
(virtex2_syncram_dp_2) in unit <top_spartan>
   Port <clk2> of node <CAN/cmod/noft.info_fifo/xc2v.x0> 
(virtex2_syncram_dp_2) in unit <top_spartan>
   Port <clk1> of node <CAN/cmod/noft.fifo/xc2v.x0> 
(virtex2_syncram_dp_1) in unit <top_spartan>
   Port <clk2> of node <CAN/cmod/noft.fifo/xc2v.x0> 
(virtex2_syncram_dp_1) in unit <top_spartan>
   Port <C> of node <CAN/cmod/async.can/rx_sync_tmp> (FDP) in unit 
<top_spartan>
...
usw.

Und zum Reset:
ERROR:Xst:2035 - Port <Reset_B> has illegal connection. Port is 
connected to input buffer and following ports:
   Port <I0> of node <CAN/reset1> (LUT1) in unit <top_spartan>

Ich hoffe ihr könnt mir weiterhelfen.

Autor: Pragmaticker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn xilinx abschneidet, dann schau in die log-Datei, hat die endung 
*.syr (synthese report). Such doch mal auf der platte danach.

eventuell verwendest du ein ausgangssignal intern.

also sowat:

bsp_o: out std_logic;
bsp_i: out std_logic;

architecture
signal bsp_int: std_logic;

begin


bsp_o <= not bsp_in;  --legal

bsp_int <= bsp_o;   --illegal


end architecture;

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das heißt, dass du in irgendeinem deiner Files einen input-Buffer 
instanziierst (das kann auch automatisch passieren). Es ist nicht 
möglich, das Signal vor dem input Buffer irgendwohin zu verbinden. Also 
entweder überall das Ausgangssignal des input Buffers in die port map 
schreiben, oder gar keinen input Buffer extra instanziieren.

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die input-Buffer werden z.B. bei den DCMs eingefügt. Dürfte bei den DLLs 
auch so sein. Dann mußt Du Deinen internen Takt am CLK0 (o.ä.) der 
DCM/DLL abfassen.

Rick

Autor: Fragender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, dank euch. ich werde mir mal das ganze jetzt nochmals etwas genauer 
unter euren gesichtspunkten ansehen und wer weiß evtl. will es ja dann 
auch funktionieren.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.