Forum: FPGA, VHDL & Co. inout


von ehde76 (Gast)


Lesenswert?

servus,

was macht ihr eigentlich mit offenen inouts? in oder out kann man ja 
offen lassen, bzw. auf festen wert legen. iouts, tristate drann und den 
dann auf 'Z', keine ahnung... erleuchtet mich bitte...

gruß ehde76

von tobias (Gast)


Lesenswert?

verstehe deine frage nicht ganz. Entweder ein io fungiert als Sender, 
oder Empfänger (hochohmig 'Z'). Ganz in der Luft hängt der nie, es sei 
denn eine Richtung wird nicht benötigt. Dann ist das zwar in der 
Verhaltenbeschreibung
ein IO, aber nach der Synthese enweder ein 'IN' oder ein 'OUT'. Mehr 
nicht.

von ehde76 (Gast)


Lesenswert?

es geht um die io's eines srams, diese sind mit dem fpga fest 
verdrahtet, es werden aber nicht alle pins des datenbusses im design 
benötigt... das gleiche ist beim adressbus, das dieser aber out ist, 
sind die nicht benötigten pins auf einen festen wert gelegt...

von tobias (Gast)


Lesenswert?

ich würde jedes io-pin welches nicht benutzt wird mit einem  Pull-Down 
(Up) Widerstand auf GND oder VDD setzen. Damit kannst du nichts falsch 
machen.

von ehde76 (Gast)


Lesenswert?

hi tobias,

an der platine kann ich nichts machen, wollte wissen wie ich das in in 
vhdl löse... wie ist das mit der einstellung "trim unconnected ports" in 
der ise, was macht diese genau mit den unbenutzten pins... dazu habe ich 
auch noch nichts gefunden...

gruß

von tobias (Gast)


Lesenswert?

OK, ich dachte dass du die Platine noch entwickelst. Wenn diese aber 
schon fertig ist, dann ist das ja noch einfacher. Leg einfach in der 
Top-Entity deines FPGA "InOut" Signale für die unbenutzen pins deines 
Adressbusses an, und leg diese Signale dann auf 'L' oder 'H'. Ein FPGA 
besitzt normalerweise schon eingebaute Pull-Ups und Pull-Downs. Schau 
dir am besten noch mal das Datenblatt deines FPGA an, und insbesondere 
die Schaltbilder für die IO Treiber. Da müßten Schutzdioden drin sein 
die mit Power und GND verbunden sind. Du kannst natürlich auch die 
Logic-Primitive deines FPGA Herstellers einbinden.


Hier ein Auszug aus dem Spartan3 Datasheet:

Pull-Up and Pull-Down Resistors
The optional pull-up and pull-down resistors are intended to
establish High and Low levels, respectively, at unused I/Os.
The pull-up resistor optionally connects each IOB pad to
VCCO. A pull-down resistor optionally connects each pad to
GND. These resistors are placed in a design using the
PULLUP and PULLDOWN symbols in a schematic, respectively.
They can also be instantiated as components, set as
constraints or passed as attributes in HDL code. These
resistors can also be selected for all unused I/O using the
Bitstream Generator (BitGen) option UnusedPin. A Low
logic level on HSWAP_EN activates the pull-up resistors on
all I/Os during configuration.
The Spartan-3 I/O pull-up and pull-down resistors are significantly
stronger than the "weak" pull-up/pull-down resistors
used in previous Xilinx FPGA families. See Table 32,
page 56 for equivalent resistor strengths.

In der Lib PDF in habe ich dann noch gefunden, wie man diese mittels 
Logic-Primitive instanziert:

VHDL Instantiation Template
-- Component Declaration for PULLDOWN should be placed
-- after architecture statement but before begin keyword
-- <Cut code below this line and paste into the architecture body>
-- PULLDOWN: I/O Buffer Weak Pull-down
-- All FPGA, CoolRunner-II
-- The current version of the Xilinx HDL Libraries Guide
PULLDOWN_inst : PULLDOWN
port map (
O => O -- Pulldown output (connect directly to top-level port)
);
-- End of PULLDOWN_inst instantiation

Der Rest sollte jetzt für dich kein Problem mehr sein.






von ehde76 (Gast)


Lesenswert?

danke, hat geholfen...

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.