www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Simulations Problem Modelsim bei 2 Designs


Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab da ein kleines Problem mit Modelsim XE 6.3c, und zwar:
Ich möchte 2 FPGA Designs gleichzeitig simulieren. Ein Virtex 4 ist über 
einen bidirektionalen DDR-Bus mit einem Spartan 3e verbunden. Die 
Simulation beider FPGA für sich alleine klappt natürlich einwandfrei. 
Ach die Hardware funktioniert. Ich möchte nun mal beide Designs im 
ModelSim koppeln. Dazu hab ich mir ein neues ModelSim Projekt erstellt 
und alle VHD Dateien aus beiden Projekten hinzugefügt. Eine Testbench 
erstellt, die beide Top-Level Designs als Components enthält mit den 
entsprechenden Verbindungen. Kompiliert wird alles ohne Warnungen, aber 
vsim zickt rum. Und zwar ist er der Meinung, dass an den ODDR2 des 
Spartan 3e kein Reset Port in der Entity wäre. Der ist natürlich dran 
und einzelm simulieren geht ja auch.
# ** Error: (vsim-3732) D:/***/***/***/ODDR_16.vhd(57): No default binding for component at 'inst_oddr2'.
#  (Port 'r' is not on the entity.)

Woran könnte das liegen? Die ODDR des Virtex 4 meckert er nicht an. Hab 
ich da irgendwie eine falscher Herangehensweise?

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Port "r" scheint in der Entity zu fehlen. Du sagst zwar, dass er 
vorhanden ist...
Vielleicht hast du dich nur vertippt und es soll eigentlich nicht "r" 
heissen?
Ohne Sourcen kann man da sonst wenig zu sagen.

Der Besucher

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mal ins Blaue geschossen:

bei einzelnen Projekten sind die inst_oddr2 - Instanzen nicht gleich 
(entsprechend auch die Components), vielleicht ist bei einer Komponente 
r vorhanden, bei anderen dagegen nicht (also Virtex und Spartan 3e 
Designs). Wenn Du dann alles zusammenführst, wird nur eine (falsche) 
Komponente hinzugefügt (ohne "r"), deshalb läuft es auch nicht.

Ich würde einfach die Entitys kontrollieren (auch, ob sie nur ein Mal im 
work-Verzeihnis vorhanden sind) und dann die Components-Deklaration, ab 
besten doppelt ;-) Manchmal sind es halt Kleinigkeiten.

Grüße,
Kest

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest die beiden Designs in getrennte Libraries compilieren.
Noch besser, du kannst die Libraries, die Du für die Verifikation der 
einzelnen FPGA's verwendet hast, wiederverwenden.

Mit Hilfe einer Configuration kannst Du dann festlegen, aus welcher 
Library das Spartat DUT kommen soll und aus welcher das Virtex-DUT.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also die Quellcodes sind natürlich definitiv richtig, abgesehen davon 
gibts auf dem Spartan 3e nur den ODDR2, auf dem Virtex ist das die ODDR 
Primitive. Ich habs jetzt lösen können, indem ich im Modelsim einfach 
mal die Quellfiles in verschiedene Ordner getan hab, die ich über Add to 
Project angelegt hab. Da klappts auf einmal, ist aber nicht 
nachvollziehbar wieso. Quellcodes kann ich natürlich keine online 
stellen, sind von der Firma.
Nun klappt zumindest die Behavioral Simulation, wenn einer Tipps hat, 
wie man die Timing-Simulation zweier FPGAs hinbekommt, immer her damit 
:)

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christian R.:
> Timing-Simulation zweier FPGAs hinbekommt
Du kannst Dir mit Xilinx-ISE simulierbare Netzlisten generieren lassen 
(generate post-synthesis simulation model, generate post-translate 
simulation model, etc.).
Und Du brauchst eine Testbench, die Deine Leiterplatte mit den beiden 
FPGAs enthält. Dort kannst Du auch gleich die Verzögerung durch die 
Leitungslänge mit berücksichtigen (transport after ...)

> Modelsim XE
Da wird es sicher eng werden mit den Netzlisten... PE bzw. SE machen 
sich da besser.

Duke

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Duke Scarring schrieb:
> @Christian R.:
>> Timing-Simulation zweier FPGAs hinbekommt
> Du kannst Dir mit Xilinx-ISE simulierbare Netzlisten generieren lassen
> (generate post-synthesis simulation model, generate post-translate
> simulation model, etc.).
> Und Du brauchst eine Testbench, die Deine Leiterplatte mit den beiden
> FPGAs enthält. Dort kannst Du auch gleich die Verzögerung durch die
> Leitungslänge mit berücksichtigen (transport after ...)
>
>> Modelsim XE
> Da wird es sicher eng werden mit den Netzlisten... PE bzw. SE machen
> sich da besser.
>
> Duke

Danke für die Antwort. Ich habs inzwischen sogar hinbekommen. Timing-Sim 
der einzelnen Designs hatte ja schon immer geklappt. Nun hab ich bissl 
zeit, da wollte ich die mal zusammen klemmen. Ist ein bissl Gefrickel 
mit den SDF-Files auch noch, und in verschiedene Libs kompilieren (das 
war der entscheidende Tipp). Aber es klappt auch mit dem XE, und ich bin 
noch nicht über das 50.000 Statements Limit. Die vorkompilierten Xilinx 
Libs machens möglich.
ModelSim PE hab ich dieses Jahr nicht durch den Invest bekommen. Mal 
sehen, ob´s nächstes Jahr klappt.

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.