FPGA zieht Input Signal auf 0

Gast #3870960
Lesenswert?

Hallo an alle,

Ich habe ein PWM signal, das ich mit einem FPGA auswerten will. Das 
Problem aktuell liegt aktuell aber beim Input Signal.

Das PWM-Signal liegt vor (überprüft mit einem Logikanalzyer). Sobald 
aber der FPGA programmiert wird, wird das Signal auf 0 gezogen. Resete 
ich den FPGA wieder, liegt auch das Signal wieder an.

Mein Constraints im XDC File sehen für den betreffenden Pin 
folgendermaßen aus:
1
set_property PACKAGE_PIN W20 [get_ports {pw_range}]
2
set_property IOSTANDARD LVCMOS33 [get_ports {pw_range}]

Das Signal wird dann direkt auf einen Input einer Entity geroutet. Ich 
verwende einen ZYNQ FPGA am Zybo Board und beschreibe mit Vivado 2014.2.

Hat irgendjemand eine Idee, warum der FPGA das Signal nach 0 zieht?

Mit freundlichen Grüßen
Martin
Gast #3871035
Lesenswert?

Lothar Miller schrieb:
> Von woher?

Aus einem Sensorinterface 
(https://www.digilentinc.com/Products/Detail.cfm?NavPath=2,719,1271&Prod=PMOD-MAXSONAR). 
Da ich noch keinen Schaltplan habe (habe bereits angefragt), kann ich 
das nicht genauer beantworten. So wie ich das sehe, dürfte am Sensor ein 
kleiner µC drauf sein, der das Signal generiert.

Lothar Miller schrieb:
> Welchen Pegel (bzw. Pullup/Pulldown) ordnest du unbenutzen Pins zu?

Unbenutzte Pins sind im Contraint-File aktuell nicht berücksichtigt. 
Warum ist das von Bedeutung?

Lothar Miller schrieb:
Hmmm... der Array oder das Array?

Ich hätte im englischen Forum mit 'the' bleiben sollen ;-)

Ich habe mal am Eingang den Pullup aktiviert
1
set_property PULLUP true [get_ports {pw_range}]

Leider führt das zum selben Verhalten.

lg Martin
Moderator (Firma: Titel) Persönliche Seite #3871111
Lesenswert?

Martin schrieb:
> Unbenutzte Pins sind im Contraint-File aktuell nicht berücksichtigt.
> Warum ist das von Bedeutung?
Könnte ja sein, dass dein Design so (weg)optimiert wird, dass kein 
Eingang mehr nötig ist. Dann gilt die Defaulteinstellung, die sich beim 
Generieren des Bitstroms einstellen lässt (oder zumindest bei der ISE 
einstellen ließ, ich arbeite noch nicht mit Vivado)...
Gast #3871255
Lesenswert?

Lothar Miller schrieb:
> Könnte ja sein, dass dein Design so (weg)optimiert wird, dass kein
> Eingang mehr nötig ist.

Dürfte vielleicht wirklich so etwas in der Art sein, sehe jedoch keine 
Anzeichen dafür. Wenn ich die Default-Einstellungen für unbenützte Pins 
auf Pullups stelle, wird das PWM Signal nicht unterdrückt.

Da die Default Unused-Einstellung Pulldown ist, ist die Impedanz des 
internen Pulldowns geringer als die Ausgangsimpedanz des Sensors.

Dies kann aber nur durch 2 Fälle passieren:
1) Die Logik wird wegoptimiert
2) Ich benutze den falschen Pin

Bezgl. 1), ich habe das Schematic nach der Synthese in Vivado angesehen. 
Hier ist der Eingang sauber synthetisiert, eine IBUF Zelle wird 
verwendet.

Bezgl. 2) sehe ich jedoch auch nicht, das ich etwas falsch mache :-(
Ich verwende den Pulsweiten-Ausgang des Sensors. Dieser ist gemäß [1] 
auf Pin 4. Bei der Verwendung des PMOD JB des Zybo-Boards muss gemäß 
[2], S.25, der Pin W20 verwendet werden. Das ist auch jener Pin, den ich 
im XDC-File habe (siehe Initialpost).

Ist die Pinzuordnung korrekt?

Mit freundlichen Grüßen
Martin

[1] 
http://www.digilentinc.com/Data/Products/PMOD-MAXSONAR/PmodMAXSONAR_rm2.pdf
[2] http://www.digilentinc.com/Data/Products/ZYBO/ZYBO_RM_B_V6.pdf
Moderator (Firma: Titel) Persönliche Seite #3871326
Lesenswert?

Martin schrieb:
> Bezgl. 1), ich habe das Schematic nach der Synthese in Vivado angesehen.
Die Optimierung passiert später. Sieh dir den Pinout Report an (es wird 
schon noch irgend sowas geben...)

Wenn du z.B. irgendetwas auswertest und berechnest, auf dieses 
ausgewertete Signal aber nie zugreifst, dann löst sich die ganze 
Schaltung in Nichts auf.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren