Forum: FPGA, VHDL & Co. VHDL Datenbus Prozessor Beschreiben


von TM (Gast)


Lesenswert?

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

von Franz (Gast)


Lesenswert?

TM schrieb:
> 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.

Und genau das macht im ersten Fall der Synthesizer für sich 
automatisch... ;-)

von TM (Gast)


Lesenswert?

Franz schrieb:
> TM schrieb:
>> 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.
>
> Und genau das macht im ersten Fall der Synthesizer für sich
> automatisch... ;-)

Ja schon klar und das wäre auf jeden Fall eine Lösung. Meiner Meinung 
nach aber nicht unbedingt eine saubere, da ich befürchte, dass dies 
nicht unbedingt vom jeden Synthesetool gleich interpretiert und 
eventuell auch nicht so effektiv implementiert wird.
Oder ist diese Sorge unbegründet ?

Gruß Tobias

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


Lesenswert?

Die Sorge ist unbegründet, weil das eine uralte generische Beschreibung 
eines Tristate Busses ist. Das kann jeder Synthesizer in Multipexer 
umsetzen. Er wird dich aber freundlich drauf hinweisen, dass er das 
gemacht hat...

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.