Forum: FPGA, VHDL & Co. Hat jemand erfahrung mit DCM's


von TheMason (Gast)


Lesenswert?

Hallo @ all,

nochmal eine frage an die erfahrenen hier.

Ich möchte gerne die DCM's des Spartan 3 nutzen. Speziell um aus dem
50Mhz Takt z.b. 100 oder 200 Mhz zu machen.
Hat jemand schonmal mit DCM's gearbeitet und vor allem wie sieht das
ganze dann in der Simulation aus ?
Könnte mir jemand evtl. vielleicht mal ein Code-Schnipsel für Synthese
und Simulation geben ?

Vielen Dank
Rene

von Zennehoy (Gast)


Lesenswert?

In den Xilinx Tools gibt es einen Wizard, mit dem du die DCMs
konfigurieren kannst, und bekomst dann eine VHDL oder Verilog Datei mit
der Instanziierung.
Mehr info findest du hier:
http://www.xilinx.com/bvdocs/appnotes/xapp462.pdf
Zen

von TheMason (Gast)


Lesenswert?

Hallo Zennehoy,

erstmal danke für den Link.
Ich meinte aber eher ob jemand vielleicht ein Code-Schnipselchen hat.
Das problem wird nicht die Instanziierung sein, sondern eher die
syntaktischen Feinheiten bzw. Unterschiede beim Simulieren bzw.
Synthetisieren. Darum ging es mir in erster Linie.
Es wäre mir hilfreich wenn ich ein Stückchen Code hätte das einfach nur
eine Takt Verdoppelung bzw. Vervierfachung hätte das sich ohne weiteres
synthetisieren und simulieren liesse.

Gruß
Rene

von Zennehoy (Gast)


Lesenswert?

Ich denke du hast zum Simulieren eine Testbench geschrieben? Dann kannst
du dort doch einfach den Takt verdoppeln, oder?
Die einzige Methode die ich kenne per VHDL einen Takt zu verdoppeln ist
Verzoegerung + XOR, was aber nur ein sehr ungenaues Ergebnis hat.

Da du wahrscheinlich deine Taktfrequenz kennst und beim Simulieren den
Takt irgendwo herstellst, ist es garantiert einfacher und schneller den
zweiten Takt einfach noch deiner Testbench anzufuegen. Ausser der DCM
kann Simuliert werden, aber ich bezweifle es.

Beim Synthetisieren benutzt du dann den DCM.

Um das ganze kompatibel zu machen, sollte deine Entity wahrscheinlich
einfach zwei Takt-eingaenge haben. Dann kann dir deine Testbench beim
Simulieren beide generieren, oder beim Synthetisieren bekommst du einen
von deinem externen Takt und einen vom DCM.

So wuerde ich das jedenfalls machen, kann aber sein, dass es dazu noch
einen anderen Trick gibt,
Zen

von TheMason (Gast)


Lesenswert?

schon richtig das ich beim simulieren mit ghz arbeiten kann ...
das bringt mir aber bei meiner implementierung auf meinem spartan 3 kit
nichts. da MUß ich ja gerade mit dem 50mhz quarz auskommen.
die takt verdoppelung mit verzögerung und xor ist mir zu gefährlich
(ist ja mehr ein glitch), da der verdoppelte takt nicht als gclk
durchgeht und außerdem funktioniert diese verdoppelung nur einmal.

also ich glaube das man die DCM's simulieren kann. Geht mit den
Block-RAMs ja genauso. dafür muß man ja auch die ganzen xilinx libs
compilieren, damit die unter modelsim auch simuliert werden können.
warum sollte das für dcms dann nicht funktionieren ?!

es ist zwar richtig das es fürs simulieren einfacher ist, aber ich
möchte einfach nur meine gesamt entity nehmen mit dem reset und dem
50mhz clock und dann in die testbench damit, damit ich nicht jedesmal
zwischen simluation und testbench unterschiede machen muß ...

von Zennehoy (Gast)


Lesenswert?

Ich denke das lezte sollte heissen "zwischen Synthese und
Testbench"?
Probier mal den DCM zu simulieren, vielleicht geht das ja!
Wuerde mich auch interessieren,
Zen

von TheMason (Gast)


Lesenswert?

hallo zennehoy

hast natürlich recht :-) (immer diese freudschen feeler :-))
mmh ... bleibt mir wohl nichts anderes ürbig. hatte gehofft das jemand
damit schonmal was gemacht hat.
also wieder : jugend forscht !! :-)

gruß
rene

von FPGA-User (Gast)


Lesenswert?

tja, man bekommt nicht immer was fertiges vorgesetzt,
mit ALTERA hätte ich dienen können (PLL-Beispiel)
aber XILINX hab ich derzeit nich.

Nimm doch einfach mal den DCM-Wizard, generier eine
einfache Taktverdopplung oder so, kopier das Ding
in ein Projekt rein und werf die Synthese + Simulation
an. Wirst ja sehen, was dann passiert.

von TheMason (Gast)


Lesenswert?

hallo fpga user

mmh ... werd ich mal probieren. melde mich wenn ich erfahrung damit
gemacht habe.

trotzdem vielen dank

gruß
rene

von Sven Johannes (Gast)


Lesenswert?

Moin...

Du musst erst die Bibs. für deinen Simulator UND verwendetetn FPGA
kompilieren, steht aber schon oben. Welchen Modelsim benutzt du? PPR
Simulation kann mit den kleinen ganz schön dauern.

Wenn du DCMs einsetzt solltest du dir genaue Gedanken über den Reset
machen. Die DLLs müssen erstmal einschwingen bevor sie einen konstanten
Takt erzeugen. Wenn du die ganze Logik gleichzeitig vom Reset nimmst
kommt erstmal Quark am Takt an. Gerne genommen und nach belieben
häßlich.

--
 Sven Johannes

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
Noch kein Account? Hier anmelden.