Forum: FPGA, VHDL & Co. nicht verwendete pins auf 0 setzen (lattice ispLever7.2)


von Andi Z. (duderino65)


Lesenswert?

hallo,

ich möchte wie oben schon erwähnt, nicht verwendete pins auf 0 setzen.
ich habe eine platine mit dem MachXO 2280 und habe gemerkt, dass die 
pins, die im design nicht verwendet werden alle auf 'high' sind.

wie kann ich das machen (mit dem ispLever7.2)?  im datasheet kann ich 
dazu nichts finden.

mfg

Andi

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


Lesenswert?

> wie kann ich das machen (mit dem ispLever7.2)?
Du definierst einen Vektor mit genausovielen Bits, wie du freie Pins 
hast:
spare : out std_logic_vector(10 downto 0);
und weist dem einen Null-Vektor zu:
spare <= (others=>'0');

von Andi Z. (duderino65)


Lesenswert?

hi,

danke für die antwort.
an die methode habe ich auch schon gedacht. dachte vllt eher daran das 
über eines der tools zu machen oder ähnlich.


danke

mfg

Andi

von Mathi (Gast)


Lesenswert?

> Du definierst einen Vektor mit genausovielen Bits, wie du freie Pins
> hast:
> spare : out std_logic_vector(10 downto 0);

Und dann zieht Dir der MachXO über die standardmäfigen Pull-Ups die 
ganze Zeit Strom...

@Andi Z.:
Im DesignPlanner kannst Du pull-down einstellen...

von Andi Z. (duderino65)


Lesenswert?

ok das war mir alles schon klar. sieht dann wohl so aus als müsste ich 
das ganze dann manuell einstellen.

danke


mfg

Andi

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


Lesenswert?

> Und dann zieht Dir der MachXO über die standardmäfigen Pull-Ups die
> ganze Zeit Strom...
Ein Ausgang sollte keine Pullups haben   :-o
Denn jeder Ausgang wird mal high oder low sein. Und wenn dann Pullups 
oder Pulldowns aktiv wären, fließt immer unnötiger Strom.

von SuperWilly (Gast)


Lesenswert?

>ich möchte wie oben schon erwähnt, nicht verwendete pins auf 0 setzen.

Eingangs- oder Ausgangspins ?


SuperWilly

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


Lesenswert?

>> nicht verwendete pins auf 0 setzen.
> Eingangs- oder Ausgangspins ?
ROTFL  :-D
Nicht verwendet heißt doch, dass du damit machen kannst, was du willst.
Ich habe (schmerzlich) gelernt, dass offene Eingänge schlecht sind 
(Thema EMV/ESD). Besser ist es, einen Ausgang offen zu lassen und aktiv 
zu treiben.

von Andi Z. (duderino65)


Lesenswert?

mh naja, ich würde die als eingangspins schalten. oder wäre das eher 
schlecht??

bin mir da nicht ganz sicher wie nicht verwendete pins geschaltet werden 
sollten.

mfg

Andi

von Andi Z. (duderino65)


Lesenswert?

aha ok.
 also sollte man die als output deklarieren und aktiv treiben?! egal mit 
welchem pegel?

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


Lesenswert?

> ich würde die als eingangspins schalten.
> oder wäre das eher schlecht??
Du darfst dann aber niemals vergessen, in der Toolchain implizit nicht 
verwendete Pins mit einem Pullup/-down zu versehen. Denn das Schlimmste, 
was passieren kann, ist ein hochohmiger Eingang. Der pegelt sich dann so 
etwa bei halber Versorgungsspannung ein und es leiten beide FETs der 
Eingangsstufe. Ergebnis: unnötig hoher Stromverbrauch und ein warmer 
Baustein.

von SuperWilly (Gast)


Lesenswert?

> ROTFL  :-D

Die Frage war, wie sich zeigt, doch nicht so witzig ;O)

von Andi Z. (duderino65)


Lesenswert?

ok.

ich würde die pins dann doch lieber als ausgang setzen und diese dann 
mit 0 treiben.
die pins werden ja ansich schon als ausgang gesetzt, nur eben mit einer 
1. und das stört mich da ja noch andere ic's drauf sind die davon ja 
auch gesteuert werden.
deshalb will ich das generell einstellen das der die pins automatisch so 
setzt wie ich möchte. also als ausgang mit '0'.

mfg

Andi

von SuperWilly (Gast)


Lesenswert?

Noch eine Bemerkung:

Falls Du Eingangspins hast, die Du nicht verwendest, solltest du 
unbedingt verhindern, dass Ausgänge (ohne Pin-Constraint) dort hingelegt 
werden.
Ich habe (schmerzlich) gelernt, dass man alle Ausgänge mit einem 
Pin-Constraint versehen werden, ansonsten übernimmt das der Mapper ;O)

Gruß,
SuperWilly

von SuperWilly (Gast)


Lesenswert?

>versehen werden
besser: versehen sollte

von Matthias G. (mgottke)


Lesenswert?

> die pins werden ja ansich schon als ausgang gesetzt, nur eben mit einer
> 1. und das stört mich da ja noch andere ic's drauf sind die davon ja
> auch gesteuert werden.

Nein die werden nicht automatisch als Ausgang gesetzt, sondern sind 
standardmäßig Eingänge mit Pull-Up. Daher Du kannst da mit einem anderen 
Ausgang dran, ohne dass diese gegeneinander Treiben. Die Pull-Ups sind 
dafür da, dass beim Power Up ein definierter Pegel anliegt und dass die 
Eingänge nicht irgendwo flowten und damit, wie schon erörtert, unnötige 
Querströme Verursachen.

Allerdings, wenn Du schreibst, dass an diversen Pins noch andere ICs 
hängen, die davon getrieben werden, dann sind ja wohl die Pins am FPGA 
sowieso als Ausgang vorgesehen. Ich vermute, dass das Hardware-Einheiten 
sind, die Du erst später mit in Dein Design einbeziehen möchtest. Da 
würde ich Dir aber dringend empfehlen diese schon im Top-Level Deines 
Designs vorzusehen und diesen dann erst mal mit definierten Pegeln zu 
Belegen.

Du solltest auch darauf achten, dass beim Power-Up keine Bausteine 
gegeneinander treiben. Das kann schon mal vorkommen wenn z.B. zwei 
Highaktive Enable-Signale vom FPGA generiert werden sollen. Beim Power 
Up sind diese nämlich über die Pull-Ups aktiv. Da sollte man dann einen 
"stärkeren" Pull-Down auf der Leiterplatte vorsehen, der den Pull-Up 
überschreibt. Zum Glück sind solche Signale aber meist High-Aktiv und 
man kann sich das dann sparen.

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.