www.mikrocontroller.net

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


Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Zennehoy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Zennehoy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß ...

Autor: Zennehoy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: FPGA-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo fpga user

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

trotzdem vielen dank

gruß
rene

Autor: Sven Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.