Forum: FPGA, VHDL & Co. Internes Signal nach außen führen?


von Some U. (seraphe)


Lesenswert?

hallo gemeinde!
ich würd gern ein internes singal zu testzwecken nach außen führen, typ 
std_logic. ich habe also in allen modulen in der hierarchie bis zu dem 
modul mit dem signal einen neuen test-port eingeführt, der nachher per 
ucf an eine led geht. in dem modul, wo das signal definiert wird, habe 
ich eine zuweisung "test-port <= erwuenschtes_signal" gemacht. 
durchverdrahtet bis zum toplevel-modul sind dann die ports auch. wenn 
ich mir aber nun mit dem fpga-editor das design anschaue, ist mein 
signal futsch, dafür steht dort nun test-port-obuf. ich will aber ja den 
out-port nicht runterleiten, sondern das signal nach außen führen... was 
mache ich falsch?

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


Lesenswert?

Some User schrieb:
> dafür steht dort nun test-port-obuf.
Ein obuf ist ein Output Buffer. Passt doch.

Bleibt die Frage: warum siehst du dir dein Design im FPGA-Editor an?
Was geht nicht?

von Some U. (seraphe)


Lesenswert?

Lothar Miller schrieb:
> Some User schrieb:
>> dafür steht dort nun test-port-obuf.
> Ein obuf ist ein Output Buffer. Passt doch.

ja nach außen hin klar.

> Bleibt die Frage: warum siehst du dir dein Design im FPGA-Editor an?
> Was geht nicht?

ich hätte erwartet, dass das signal, welches ich eigentlich nach außen 
führen möchte, immer noch dort liegt, wo es vorher auch war. es soll 
eigtl. eine kopie des signalwertes nach außen geleitet werden, das 
signal soll aber im ursprungsdesign genauso erhalten bleiben, wie es 
jetzt ist.

von Christian R. (supachris)


Lesenswert?

Hm, komische Erwartung. Durch das nach außen Legen des Signals kann es 
sein, dass der Place&Route Prozess völlig andere Ausgangsbedingungen hat 
und große Teile des Designs anders routet. Wozu soll das denn gut sein? 
Ist das so ein zeitkritisches Design? Wenn du das willst, musst du 
selbst routen...

von Some U. (seraphe)


Lesenswert?

Christian R. schrieb:
> Hm, komische Erwartung. Durch das nach außen Legen des Signals kann es
> sein, dass der Place&Route Prozess völlig andere Ausgangsbedingungen hat
> und große Teile des Designs anders routet. Wozu soll das denn gut sein?

es gibt einen init-fehler. allerdings nicht jedes mal. es ist 
runtergebrochen auf dieses eine signal und zum testen würd ich es gern 
an eine led nach außen führen. das signal steuert auch ein we-signal an 
einer lut, die als schieberegister konfiguriert ist und das signal ist 
manchmal falsch beim start.

> Ist das so ein zeitkritisches Design? Wenn du das willst, musst du
> selbst routen...

nein, so ist es eigtl. nicht. siehe oben.

von Ottmar (Gast)


Lesenswert?

Im FPGA-Editor warst du schon richtig.
Du musst dein Design gar nicht modifizieren und interne Signale durch 
die Hierarchien führen um sie auf Pins zu bekommen.

1. Du machst deinen ganz normalen Flow.
2. Design im FPGA-Editor öffnen und editierbar machen.
3. Das "Probes" tool aufrufen. (Button auf der rechten Seite)
4. Gewünschte signale auf die gewünschten Pins routen lassen.
5. Bitfile neu generieren. Fertig.

Das ursprüngliche Routing bleibt erhalten. Nur die load für das geprobte 
Signal erhöht sich um eins.

Das ganze lässt sich auch sehr gut scripten. Einfach die Komandos unten 
aus der Konsole klauen.

von Some U. (seraphe)


Lesenswert?

Ottmar schrieb:
> Im FPGA-Editor warst du schon richtig.
> Du musst dein Design gar nicht modifizieren und interne Signale durch
> die Hierarchien führen um sie auf Pins zu bekommen.
>
> 1. Du machst deinen ganz normalen Flow.
> 2. Design im FPGA-Editor öffnen und editierbar machen.
> 3. Das "Probes" tool aufrufen. (Button auf der rechten Seite)
> 4. Gewünschte signale auf die gewünschten Pins routen lassen.
> 5. Bitfile neu generieren. Fertig.
>
> Das ursprüngliche Routing bleibt erhalten. Nur die load für das geprobte
> Signal erhöht sich um eins.

was man nicht alles lernt?! großartig, werde ich direkt morgen 
ausprobieren.

vielen dank!

von Christian R. (supachris)


Lesenswert?

Schau an, das wusste ich auch noch nicht. So ein Forum ist doch sehr 
nützlich. Insgesamt hört sich das Problem aber nach einem asynchronen 
Reset an, der irgendwie wild läuft, weil er nicht korrekt 
einsynchronisiert ist. Vielleicht sogar der grausame Reset-Taster :)

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


Lesenswert?

Some User schrieb:
> es gibt einen init-fehler. allerdings nicht jedes mal.
Liese dir mal von diesem Post den letzten Satz:
Beitrag "Re: (asynchronen) Reset vermeiden. oder nicht?"
Und wenn dir das bekannt vorkommt, dann lies auch den Rest...

Christian R. schrieb:
> Insgesamt hört sich das Problem aber nach einem asynchronen
> Reset an, der irgendwie wild läuft, weil er nicht korrekt
> einsynchronisiert ist.
ACK.

von Some U. (seraphe)


Lesenswert?

Lothar Miller schrieb:
> Some User schrieb:
>> es gibt einen init-fehler. allerdings nicht jedes mal.
> Liese dir mal von diesem Post den letzten Satz:
> Beitrag "Re: (asynchronen) Reset vermeiden. oder nicht?"
> Und wenn dir das bekannt vorkommt, dann lies auch den Rest...
>
> Christian R. schrieb:
>> Insgesamt hört sich das Problem aber nach einem asynchronen
>> Reset an, der irgendwie wild läuft, weil er nicht korrekt
>> einsynchronisiert ist.
> ACK.

das design hat mit absicht kein reset... weder synchron, noch 
asynchron.

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


Lesenswert?

Some User schrieb:
> das design hat mit absicht kein reset... weder synchron, noch asynchron.
Pech, dann wirds aufwendiger...  ;-)
Dann ist da irgendein (asynchrones) Signal, mit dem irgendeine FSM zu 
diesem Zeitpunkt nicht rechnet.

> das design hat mit absicht kein reset... weder synchron, noch asynchron.
Ich bin mir ziemlich sicher, dass da (zumindest) ein Zähler irgendwann 
zurückgesetzt (=reset) wird. Oder?

> es gibt einen init-fehler.
Woran merkst du das?

> und das signal ist manchmal falsch beim start.
Woraus wird das Signal generiert?
Ist da noch etwas anderes im Spiel (DCM...)?

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.