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
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
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
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
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ß ...
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
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
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.
hallo fpga user mmh ... werd ich mal probieren. melde mich wenn ich erfahrung damit gemacht habe. trotzdem vielen dank gruß rene
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.