Ich habe ein synthesefähiges Design, das einige CoreGen-Produkte
benutzt. Ich will nur Teile des Designs in ModelSim durchgehen. Leider
meckert ModelSim bei bestimmten VHDLs immer wieder über die fehlende
Xilinx CoreLib. Wo leigt die genau und wie binde ich die ein? (ModelSim
SE)
Da hat der Junge ModelSim SE um 10000 € und weiss nicht, wie man damit
umgeht?
Im Xilinx Installationsverzeichnis gibt es einen Ordner
vhdl/src/CoreLib, da liegen die Quellen.
Außerdem gibt es das Programm (oder script) compxlib, das die Libraries
compiliert.
Für dem XE gibt es vorcompilierte Libraries die man herunterladen kann.
Das hängt damit zusammen, daß der XE (Starter) eine Bremse eingebaut
hat.
Ab einer gewissen Anzahl Programmzeilen (ohne Kommentare usw.) wird die
Geschwindigkeit verringert.
Bei den von Xilinx vorkompilierten Libraries zählt jeder Core nur wie
eine Zeile, wenn man die Libraries aber selber kompiliert dann zählt
jeder Core so viele Zeilen wie enthalten.
Die Grenze, ab der die Simulation gebremst wird, wird im letzten Fall
viel schneller erreicht.
Beim Original SE von Mentor gibt es diese Bremse nicht.
@Klaus Falser
>Im Xilinx Installationsverzeichnis gibt es einen Ordner>vhdl/src/CoreLib, da liegen die Quellen.
Tja, den Ordner gibt es bei mir offenbar nicht. Ich habe nur
"C:\Modeltech_6.2f\vhdl_src" gefunden und dort ist weit und breit nichts
von "Corelib" o.ä. zu erspähen. Wo bekommt man das her?
Muss das extra installiert werden?
"C:\Xilinx\vhdl\src\XilinxCoreLib" ok, da sind die Quellen. Undm wie
baue ich die nun ein? Alle pauschal ins work compilieren und die
benötigte ins Projekt ziehen ?
Normalerweise sollten diese Quellen automatisch von ModelSim benutzt
werden.
Eine mögliche Fehlerquelle wäre ein fehlendes Update von ModelSim,
welches die fehlenden Corelibs enthält. Gibt es auf der Xilinx-Seite,
simulationlibraries update und corelib update für modelsim.
Für XE gibt es die precompiled Libs, die ich auch schon genutzt habe
(mit XE selbstredend). Die Vorgehensweise ist mir auch klar. XE kann ich
aber nicht verwenden, da er viel zu langsam wird für die RAM-Simulatonen
(und den Rest, der immer größer wird).
Mein Problem: Wie mache ich jetzt dem SE klar, wo und wie er die libs
findet und nutzt? Ich habe das früher schonmal unter Linux gemacht: Man
muss die Libraries in eine lib compilieren, diese referenzieren (mit
map) oder so. Das ganze ging damals (vor 3J) von der commandline unter
Unix per script aus, mit dynamischem start des vsim.
Ich arbeite aber inzwischen mit der Windowsversion über GUI und
Projekten und da ist nichts zu finden, wie das geht. Die Hilfe-PDf von
Mentro haben den Namen nicht verdient: unter "compile library" kommen
Null Einträge.
Was ich gemacht habe: Ein eigene lib angelegt und versucht, dort per
Hand die Sourcen reinzucompiliere. Das hat für einige geklappt, bei
anderen jammert er wieder nach der core lib.
>Außerdem gibt es das Programm (oder script) compxlib, das die>Libraries compiliert.
Ja, das habe ich angeworfen, es verlangt aber Paramter, die ich nicht zu
setzen weiss. (??????)
Ja, die Note kenne ich natürlich, daber dort steht bei der
Vorgehensweise GUI, man solle das richtige Device unter " Sources in
Project Window" auswählen. Dort stehen aber VHDLs und keine
Xilinx-FGPA-Nummern. (???)
Genau genommen, hat man ja zunächst gar kein Projekt offen, daher fehlt
ja auch das tab "Sources".
Nach langem Wühlen (xlinx verweist auf synthesis.pdf, dieses im Teil der
angeblichen Behandlung des Themas direkt weiter auf ISE-Help) habe ich
nun den Punkt gefunden, allerdings ist wieder unklar, was bei den
settings einzutragen ist!
Egal was ich einstelle, es kommt immer der Hinweis von Xilnix-ISe, daß
er nicht für den Xilinx-Sim compilieren kann, sondern nur für modelsim.
Was muss man dort einstellen?
CompXLib.exe kann man von der Kommandozeile aufrufen.
Öffne ein DOS-Fenster, erzeuge ein Verzeichnis, wo Du die Libraries
hingeben willst.
Gehe ins Verzeichnis und rufe compxlib auf. Du erhälts eine Help-Seite
mit Commandos.
compxlib -help list gibt Hilfe zu den Optionen.
Beispiel:
compxlib -l vhdl -s mti_se -arch fpga -lib xilinxcorelib
Du wirst die xilinxcorelib, unisim, simprim Libraries compilieren
müssen.
Diese Libraries kannst Du dann in ModelSim einbinden (oder über die
XilinxGUI, das kenne ich nicht so genau).
Bei ModelSim bindet man die Library unter Project setting sein, "Add
Library" . Dabei gibt man den symbolischen Namen an, und den Pfad auf
das Verzeichnis, wo die kompilierten units liegen.
Klaus
Hallo,
aus reiner Neugier, im Xilinx ISE gibt es, wenn ich das richtig sehe,
einen eigenen Simulator. Warum sollte man auf ModelSim umsteigen? Ist
das nicht irgendwie zu kompliziert, bei dem einen vorkompilieren, bei
dem anderen nicht, da Vezeichnispfade einstellen, hier ein Skript
aufrufen plus zig Parameter nicht vergessen...
@Alex
Erstens ist der Xilinx-Simulator schlecht und bei der Bedienung über die
GUI weiss man nie was gerade passiert und was gerade simuliert wird.
Das geht vielleicht bei kleineren Projekten.
Bei richtigen Projekten arbeitet man am Anfang sowieso nicht mit der
Xilinx-Oberfläche, sondern nur mit Editor und Simulator, und zwar mit
einem richtigen Simulator.
Dabei braucht es oft auch gar keine graphische Darstelleung der Signale,
sondern man arbeitet mit (vielen) Testbenches, welche am Ende an der
Console "Test passed/not passed" ausgeben.
Wenn man einmal verstanden hat, wie das mit den Libraries funktioniert,
dann ist das auch gar nicht kompliziert.
Dafür ist man dann auch sicher, daß man das richtige simuliert.
Du must unter den Projektoptionen einstellen das Du als Simulator
Modelsim verwenden willst, sonst benutzt Du immer den Xilinx Simulator.
Deshalb kommt auch diese Fehlermeldung "daß
er nicht für den Xilinx-Sim compilieren kann, sondern nur für modelsim."
Grüsse
Sebastian
>Bei richtigen Projekten
Was sind denn "richtige" Projekte?
"sowieso nicht mit der Xilinx-Oberfläche"
Ist das verboten?
"sondern nur mit Editor und Simulator"
Ein unbewiesenes Dogma!
"und zwar mit einem richtigen Simulator"
Was sind denn "richtiger" Simulator?
Du musst in der GUI unter den Projekt-Properties (passend zum gewählten
Baustein, vergl ANleitung) zunächst auf den anderen Simulator (hier PE,
bei Dir wohl SE) umstellen. Die Settings unter dem eigentlichen
Compilationsknopf müssen nicht geändert werden. Frag mich aber nicht,
warum das so angeordnet ist. Dies ist eben die Xilinx-Logik: Man
verstecke alles hochkompliziert und referenziere, was das Zeug hält.
Damit der user aber auch so richtig ordentlich verwirrt wird, darf eine
Einstellung natürlich niemals unter dem Punkt auftauchen, unter der man
sie vermutet. Das kann kaum ein Produkt besser, als die die Xilinx ISE.
Wenn es geklappt hat, müsste im VHDL-Verzeichnis ein neues Verzeichnis
mit MT_SE oder so ähnlich auftauchen, das die übersetzten Bibliotheken
beinhaltet. Wenn Du den Ziel-Pfad nicht verändert hast, findet ModelSim
die neuen Bibliotheken automatisch, sonst musst Du das Verzeichnis
angeben, bzw mit wechselnden Bibliotheken arbeiten.
Mentor hat (lib handling) dazu ein online-Learning Tool unter :
http://www.mentor.com/supportnet/member/tutorials/tutorial.cfm?movie=10275&snw_source=CAMP143