Hallo zusammen,
ich beschäftige mich gerade mit einem einfachen SDRAM Controller.
Als Modell des Speichers für die Testbench verwende ich das angehängte
Modell.
Die verwendeten Bibliotheken sind:
1
LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;
2
USEIEEE.vital_timing.ALL;
3
USEIEEE.vital_primitives.ALL;
4
USESTD.textio.ALL;
5
6
LIBRARYFMF;USEFMF.gen_utils.ALL;
7
USEFMF.conversions.ALL;
vital.timing und vital.primitives sind nicht standardmäßig in IEEE
enthalten.
Wie bekomme ich das denn ans Laufen?
Ich verwende ISE14.7 und den eingebauten Simulator.
Hat jemand eine Idee?
Danke euch!
Viele Grüße, Jens
Hallo,
vielen Dank für die Infos.
Das Modell ist von https://freemodelfoundry.com/fmf_VHDL_models.php.
Da gibt es auch keine anderen. Die verwenden alle diese Bibliotheken.
Das sind die originalen Modelle von Micron.
Hat jemand vielleicht ein einfacheres Modell, das ich nutzen kann?
In einen anderen Simulator wollte ich nicht einsteigen. Ich wollte "nur"
den Speicher ans Laufen bekommen. ;-)
Viele Grüße
Mit dem isim/xsim kannst du das knicken. GHDL kommt da besser weg,
allerdings gibt es auch da Modelle, die Probleme machen.
Die SDRAM und meisten DDR-RAM-Modelle muessten eigentlich damit tun,
aber kann die alten Simulationen gerade nicht ausgraben.
> vital.timing und vital.primitives sind nicht standardmäßig in IEEE> enthalten.
Dann compiliert man diese modelle eben in die IEEE library oder ändert
die "use" Anweisung so, das sie auf die library zeigt in die die
vital-packages kompiliert wurden, bspw. "use work.vital_timing.ALL "
Dem TO sei angeraten, sich mal mit dem library-Konzept von VHDL und dem
benutzten Simulator auseianderzustzen. Bspw.
https://www-wjp.cs.uni-saarland.de/lehre/hadeprak/block_ws14/Upload/ISim%20User%20Guide.pdf
S.139
oder bzgl Vlib, vmap, vcom von modelsim:
https://www-wjp.cs.uni-saarland.de/lehre/hadeprak/block_ws14/Upload/ISim%20User%20Guide.pdf
Manchnal gibt es manche Bibliotheken nur vor-kompiliert oder
verschlüsselt. Dann muss man sich das Ganze runterladen oder kann die
Original-Modelle der Hersteller garnicht nutzen. Dann schreibt man sich
halt sein eigenes Modell oder adaptiert ein vorhandenes mit den Werten
das den Datenblatt. So ein Speicher-Modell ist doch keine Hexerei, die
im thread gezeigten sind auch gut struktiert so das man die timings an
einer Stelle findet und anpassen kann.
Was die timings bedeuten, bspw. Zeit für RAS (RowAddressSelect) und CAS
(ColumnAddressSelect) steht auch im Datenblatt. Oder wurde in der
Ausbildung/Studium erwähnt.
Und IMHO sollte man schon wissen, wie der Speicher funktioniert, wenn
man eine Ansteuerung für diesen bauen will. Ausser man vervendet einen
fertigen memorycontroller, (dem man aber auch die Paramter für den
konkreten Speicher wie Größe, Organistation, Speed, ... mitgeben muß).
Problematisch ist nach meiner Erfahrung lediglich die
Simulationsgeschwindigkeit insbesonders wenn man besonders viel Speicher
simulieren will. Wobei es völlig ausreicht kleinen Speicher und Eckwerte
(Corner Stones) anzutesten. Für "the real thing" testet man ohnehin am
target resp. Eval-board als DUT im real life.
Bradward B. schrieb:> Dann compiliert man diese modelle eben in die IEEE library oder ändert> die "use" Anweisung so,
Prinzipiell gebe ich Dir recht, aber ich vermute im Falle ISIM mit
vital-Bibliotheken wird man nicht glücklich werden.
Rick D. schrieb:>> Dann compiliert man diese modelle eben in die IEEE library oder ändert>> die "use" Anweisung so,> Prinzipiell gebe ich Dir recht, aber ich vermute im Falle ISIM mit> vital-Bibliotheken wird man nicht glücklich werden.
Kann ich so bestätigen. Generell sind die VITAL Sachen schon cool. Aber
auch bei uns in der Halbleiterindustrie ist das alles komplett nutzlos.
Die ganzen Tools fressen das Zeug nicht richtig bis gar nicht. Wenn
Timing, dann gehen in der Regel nur SDF annotierte Verilognetzlisten.
Ich würde auch auf ein "funktional" modelliertes VHDL-Modul setzen.
Bradward B. schrieb:> eine Simulation mit vital-modellen bezeichnet man auch als> timing-Simulation, als man simuliert den VHDL-Code nach Synthese> und/uder Implementierung. Das macht man wegen der hohen Laufzeit eher> selten.
Naja, ausgangs vom DDR-Controller zum RAM ist das durchaus sinnvoll,
braucht halt auch noch die wire Modelle für die Leitungen.
Wenn man nur funktioniell simuliert unterstellt man ja das 90% dessen,
was am DDR-Design in die Hose gehen kann, geht :-)
>> eine Simulation mit vital-modellen bezeichnet man auch als>> timing-Simulation, als man simuliert den VHDL-Code nach Synthese>> und/uder Implementierung. Das macht man wegen der hohen Laufzeit eher>> selten.>> Naja, ausgangs vom DDR-Controller zum RAM ist das durchaus sinnvoll,> braucht halt auch noch die wire Modelle für die Leitungen.
Die Leitungen zwischen FPGA und DDR[2|3|4] mit ihren speziellen
Problemen und die Techniken diese zu mindern wie DCI und homogen es
Dielektrikum des PCB's modelliert man eher nicht in VHDL. Mit VHDL ist
bei Skew-Problemen IMHO Schluss.
PCB-Probleme muss man halt am Prototypen ausmessen (Eye-Diagramm, BER
bestimmen bei verschiedenen Parametersetzen).
Bradward B. schrieb:> Die Leitungen zwischen FPGA und DDR[2|3|4] mit ihren speziellen> Problemen und die Techniken diese zu mindern wie DCI und homogen es> Dielektrikum des PCB's modelliert man eher nicht in VHDL. Mit VHDL ist> bei Skew-Problemen IMHO Schluss.
Wieso soll da Schluss sein?
Das Modellieren ist halt muehsam, man sollte tunlichst die HDL
generieren.
Fuer Lane-Skew-Simulation bei HDMI hat es bei mir gute Dienste getan.
Aber auch hier wieder: Haende weg von isim.