Forum: FPGA, VHDL & Co. Digital Schalter


von Dirk (Gast)


Lesenswert?

Hallo,

ich braeuchte für ein Projekt mehrere 74HC4052 / 4053 und einige or's
zur kombinierten Quellumschaltung.

Ich dachte mir ein kleiner XC9536XL duerfte weniger Platz kosten und es
würde auch kein TTL Grab entstehen.

Ich habe erstmal angefangen einen kleinen TTL Quellwahlschalter
zubeschreiben. Dieser Schalter funktioniert aber nur wenn ich die
I/O's als IN und Outs definiere in der Simulation. Ich würde gerne
aber die I/O's bidirektional haben. Ich bekomme aber die Logik nicht
simuliert wenn diese Bidirektional arbeiten soll.

Kann mir jemand weiterhelfen wie ich die Logik birektional simulieren
kann?

Ich benutze als Simulationsprogramm Modelsim und zur synthese ISE7.1.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity dffd is
PORT
    (
        Y   : OUT STD_LOGIC; --  Y  : INOUT STD_LOGIC; geht nicht
        X  : OUT STD_LOGIC; --  X  : INOUT STD_LOGIC;
  X0   : IN STD_LOGIC; -- X0   : INOUT STD_LOGIC;
        X1   : IN STD_LOGIC; -- X1   : INOUT STD_LOGIC;
      Y0    : IN STD_LOGIC; -- Y0   : INOUT STD_LOGIC;
        Y1    : IN STD_LOGIC; -- Y1   : INOUT STD_LOGIC;
  ENABLE : IN STD_LOGIC
   );

end dffd;

architecture Behavioral of dffd is
begin

PROCESS (enable,X0,X1,Y0,Y1)
        BEGIN
        IF( enable = '1') THEN
            X <= X1;
            Y <= Y1;
        ELSE                    X <= X0;
            Y <= Y0;
  END IF;
END PROCESS;



end Behavioral;

von FPGA-User (Gast)


Lesenswert?

Hallo Dirk,

einen 4052 kann man im FPGA nicht 100 Pro nachbilden, aber
bidirektionale IO/s sind generell kein Problem.
Bei der Simulation nehme ich an, dass Du ein 'X' bei den Signalen
bekommen hast.
Der Simulator ist manchmal wie ein kleines, bockiges Kind...
Wenn Du an einen bidir. Pin KEIN Signal anlegen willst, dann musst
Du es ihm sagen, d.h. zu Beginn der Simulation gleich mal 'Z'
zuweisen, und zwar für jeden INOUT -Pin, das sollte helfen.

von Dirk (Gast)


Lesenswert?

Hallo,

erstmal ein nettes danke FPGA-User.

>einen 4052 kann man im FPGA nicht 100 Pro nachbilden, aber
>bidirektionale IO/s sind generell kein Problem.

Was kann man den nicht 100% Nachbilden? Das einzige was mir einfaellt
waere der Spannungsbereich.

Ich brauche nur 3 74HC4053 + 1 Levelshifter. Die 74HC4053 dienen als
Quellwahlschalter und den Levelshifter benoetige ich weil ein µC mit 5V
arbeitet der andere mit 3,3V.

Werde dein Tipp gleich mal testen. Es waere trotzdem nett wenn du mir
meine Frage beantworten koenntest.

Gruß,
Dirk

von Dirk (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

habe es nun gleich versucht. Leider funktioniert es immer noch nicht.

Ich haenge mal das Projekt an und hoffe jemand kann mir auf die
Spruenge helfen.

Gruß,
Dirk

von Dirk (Gast)


Lesenswert?

Hallo,

so laut Synthese Report meckert er alle INOUT Pins an. Diese werden
nicht benutzt. Ich denke das liegt daran das ich keine direkten Wert in
die Pins schreibe, aber soetwas einfaches sollte sich doch schon
simulieren lassen. Y und X usw. lege ich im Testbench mit Logikpegeln
fest, weil ich nur pruefen moechte ob meine logische Verkettung der
I/O's funktioniert.

Ist Modelsim mit sowas einfachen ueberfordert?

Gruß,
Dirk

von Dirk (Gast)


Lesenswert?

Hallo,

7 Downloads und keiner eine Idee? bzw. vielleicht noch ein paar Tipps?

Gruß,
Dirk

von FPGA-User (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Dirk,

schau Dir mal die Files im Anhang an.
Das INOUT ist zwar nicht nötig, da Du in Deinem Projekt
X, X0, X1 usw. jeweils nur in einer Richtung betreibst
aber prinzipiell ist es natürlich möglich, solange
die Richtungsumschaltung über ein Signal gemacht wird.

Du kannst in einem FPGA keinen Analog-Schalter realisieren,
dieser wirkt ja in beide Richtungen, also wie ein echter
Schalter. Wenn Du 2 Pins verbinden willst, dann ist immer
1 Pin der Eingang und der andere der Ausgang.
Hoffe es ist klar geworden, dass man keinen 4052 ins FPGA
bauen kann.

von Dirk (Gast)


Lesenswert?

Hallo,

danke FPGA-User.

Nachdem ich gestern mein Beitrag gepostet habe wollte ich mal das
Design auf nen Karoblatt malen. Ich hab es nachher nur mit Inputs und
Outputs gemalt. Eigentlich lag der Sinn darin die I/O's als INOUT
zudefinieren sich weniger Gedanken bei der internen Beschreibung machen
zumuessen.

>Du kannst in einem FPGA keinen Analog-Schalter realisieren,
>dieser wirkt ja in beide Richtungen, also wie ein echter
>Schalter.

Wirkt aber das Design nicht als Analogschalter, wenn ich beide I/O's
als INOUT definiere und mit einem internen Signal arbeite?

Insgesamt habe ich nun 5Stk 74HC4053 (ohne Z) realisiert und bin
eigentlich sehr froh nen kleinen CPLD zumissbrauchen zukoennen. Der
CPLD macht die Platine extrem kleiner und preislich ist es auch noch
akzeptabel.

Gruß,
Dirk

Gruß,
Dirk

von Thomas (Gast)


Lesenswert?

Der HC4053 ist prinzipbedingt bidirektional (eben wie ein richtiger
Schalter) und der läßt sich nicht in einem der bekannten CPLDs
umsetzten. Einen Multiplexer allerdings zu implementieren ist kein
Problem. Wo kommen denn deine Signale her und wo sollen diese hin ?

Gruß Thomas

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.