Guten Tag,
Ich stehe im Moment vor folgendem Problem ich möchte eine Schnittstelle
von einem Prozessor zur Peripherie schreiben.
Nun hab ich die Möglichkeit dies mittels einer Tristate Beschreibung
machen.
und folgende Signale definieren
Beispiel vom Prozessor gesehen
1 | Data : inout std_logic_vector(7 downto 0);
|
2 | Addr : in std_logic_vector(7 downto 0);
|
3 | RD : in std_logic;
|
4 | WR : out std_logic;
|
Allerdings finde ich dies nicht besonders ideal, da die Beschreibung
intern ja Logik draus macht, da es nur an die IOs Tristate zustände
gibt.
Die andere Möglichkeit wäre, die Signale gleich aufzuteilen
1 | Data_In : in std_logic_vector(7 downto 0);
|
2 | Data_Out : out std_logic_vector(7 downto 0);
|
3 | Addr : in std_logic_vector(7 downto 0);
|
4 | RD : in std_logic;
|
5 | WR : out std_logic;
|
Nun hab ich ja das Problem, das ich hier, wenn ich mehr Peripherie
anschließe, welche alle auf das Data_in des Prozessors schreiben, noch
einen zusätzlichen Logikblock zum multiplexen brauche, da ich sonst
mehrfach treibende Signale hab.
Wie löst man ein solches Problem sauber ?
Gruß Tobias