Forum: FPGA, VHDL & Co. IO-Problem : 2 Treiber simulieren


von FPGA-Designer (Gast)


Lesenswert?

Modelsim kommt mit dem Fehler "unresolved Signal" während ein Signal aus 
2 Quellen getrieben wird.

Wie muss ich da die Ausgänge beschalten? Konkret treiben 2 FPGAs einen 
einzigen Addressbus, wobei jeweils einer als Tristate arbeitet. (Der 
Addressbus geht an die RAMs.)

Die RAMs habe ich alle auf Input, die Addressbusse der FPGAs auf INOUT, 
obwohl sie nicht lesen. Ist das so nicht richtig ?

Müsste ich beide auf OUT?

von Falk B. (falk)


Lesenswert?

@  FPGA-Designer (Gast)

>Die RAMs habe ich alle auf Input, die Addressbusse der FPGAs auf INOUT,
>obwohl sie nicht lesen. Ist das so nicht richtig ?

Kann man machen, out wäre aber formal besser. Sind deine Ausgänge 
wirklich auf Z ?

MFg
Falk

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


Lesenswert?

>Konkret treiben 2 FPGAs einen einzigen Addressbus,
>wobei jeweils einer als Tristate arbeitet
Dein Problem ist nicht neu, das passiert beim MISO-Pin bei jedem 
SPI-Device: nur der gerade selektierte Slave darf die Datenleitung 
treiben.

Wie Falk schon sagte, wäre ein einfaches OUT richtiger.

Schreib das einfach concurrent hin, fertig ist die Laube:
1
   entity...
2
      port...
3
          AddrOut : OUT std_logic_vector(15 downto 0);
4
   end...;
5
   :
6
   :
7
   AddrOut <= Addresse when (IchBinAmBus='1') else (others=>'Z);
8
   :

von FPGA-Designer (Gast)


Lesenswert?

Da blicke ich aber immer noch nicht durch. Es geht wie gesagt darum, daß 
die Sim überhaupt mal laäuft. Modelsim lädt ja schon die Sim nicht. Ob 
das also mit TRistate überall stimmt, kann Modelsim eigentlich noch 
nicht wissen.

Daß ich den Bus korrekt bedienen muss und Kollisionen zu unterbinden 
habe, ist mir schon klar, genau das will ich ja simulieren.

Warum geht inout nicht? Wenn ich z.B. den Datenbus benutze, muss ich es 
ja auch so machen, daß mehrere treiben (RAM, FPGA), aber auch lesen 
können, wenn der Prozessor schreibt.

?

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.