mikrocontroller.net

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


Autor: FPGA-Designer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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:
   entity...
      port...
          AddrOut : OUT std_logic_vector(15 downto 0);
   end...;
   :
   :
   AddrOut <= Addresse when (IchBinAmBus='1') else (others=>'Z);
   :

Autor: FPGA-Designer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.