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?
@ 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
>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 | :
|
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.