Forum: FPGA, VHDL & Co. Signal multiplexen


von Jamal (Gast)


Lesenswert?

Ich möchte 2 Module,die  einen gemeinsamen Bus teilen multiplexen.
Die beide Module haben 2 Outputs und 1 Input gemeisam .
Ansatz:
FPGA Pins: F_out1,F_out2,F_in

----interne Module
Modul A :pin_outA1,pin_outA2,pin_inA
Modul B :pin_outB1,pin_outB2,pin_inB

---Interne Signale

sel                       --Internes Auswahlsignal

F_out1<= pin_outA1 when sel='0'else pin_outB1 ;    --Modul A
F_out2<= pin_outA2 when sel='0'else pin_outB2 ;    --Modul B

--Eingänge--

pin_inA <= F_in when sel='0' else 'Z';             --Modul A
pin_inB <= F_in when sel='1' else 'Z';             --Modul B

Ich hoffe ein wenig gut erklärt zu haben :)
Wäre so korrekt oder habe ich da einen Denkfehler?
Jamal,

von Christian R. (supachris)


Lesenswert?

Der Mux für die Ausgänge ist OK. Aber am Eingang wird das nix. Im 
FPGA/CPLD gibts kein 'Z', das geht nur an den Pins direkt, und da nur an 
INOUT oder OUT. Wenn, dann auf '0' bzw. (others => '0') bei einem Bus 
umschalten.

von Jamal (Gast)


Lesenswert?

Christian R. schrieb:
> Der Mux für die Ausgänge ist OK. Aber am Eingang wird das nix. Im
> FPGA/CPLD gibts kein 'Z', das geht nur an den Pins direkt, und da nur an
> INOUT oder OUT. Wenn, dann auf '0' bzw. (others => '0') bei einem Bus
> umschalten.

Danke für deine Antwort.
Damit ich zwischen beide Eingänge korrekt umschalte wäre dann:

--Eingänge--
pin_inA <= F_in when sel='0' else '0';             --Modul A
pin_inB <= F_in when sel='1' else '0';             --Modul B

?
danke

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


Lesenswert?

Jamal schrieb:
> pin_inA <= F_in when sel='0' else '0';             --Modul A
> pin_inB <= F_in when sel='1' else '0';             --Modul B
oder auch
 pin_inA <= F_in and not sel;             --Modul A
 pin_inB <= F_in and sel;                 --Modul B

von Jamal (Gast)


Lesenswert?

Vielen Dank!!
Eure Antworten waren sehr hilfreich.

von Duke Scarring (Gast)


Lesenswert?

Jamal schrieb:
> Wäre so korrekt oder habe ich da einen Denkfehler?
Ist es wirklich notwendig die Eingänge zu multiplexen? Oft ist es 
"unschädlich" beide Einheiten mitlaufen zu lassen.

Duke

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.