Hallo, ich will in VHDL aus einem Grundtakt von 100 MHz einen 20 MHz Takt mit einem Tastverhältnis von 50% erzeugen. Gut von 100 MHz auf 20 MHz ist kein Problem, nur habe ich dann ein Tastverhältnis von 40/60. Bleibt mir wahrscheinlich nur die Möglichkeit den Grundtakt auf 200 MHz zu erhöhen... Für Ideen bin ich sehr dankbar.
willi k. schrieb: > Hallo, > ich will in VHDL aus einem Grundtakt von 100 MHz einen 20 MHz Takt mit > einem Tastverhältnis von 50% erzeugen. Gut von 100 MHz auf 20 MHz ist > kein Problem, nur habe ich dann ein Tastverhältnis von 40/60. > Bleibt mir wahrscheinlich nur die Möglichkeit den Grundtakt auf 200 MHz > zu erhöhen... > Für Ideen bin ich sehr dankbar. Ja, dann ist doch 40MHz machen genauso "kein Problem". Mit diesem Takt, toggelst du ein Flipflop hin und her und hast dann 20MHz 50:50
Ahso ja ... 40 ist nicht unbedingt ein Teiler von 100 :D Naja gut ... also dann den Takt auf 80MHz absenken oder auf 120MHz anheben oder gleich einen Taktgenerator verwenden, der dir aus 120MHz saubere 20MHz mit 50:50 duty cycle erzeugt. Kuck mal nach DCM (xilinx) oder PLL (altera) ... Da gibst du an, was reingeht und was rauskommen soll und mit welchen duty cycle, den Rest macht der Core selbst.
willi k. schrieb: > ich will in VHDL aus einem Grundtakt von 100 MHz einen 20 MHz Takt mit > einem Tastverhältnis von 50% erzeugen. In VHDL ist das ganz einfach, da brauchst du nicht mal den 100MHz Takt:
1 | clk20MHz <= not clk20MHz after 25 ns; |
Fertig. Ach, so meintest du das nicht? Was meintest du denn? Du willst das in "echt" haben? Mit welchem Baustein willst du diesen Takt erzeugen?
Danke für deine schnelle Antwort. Da bleibt mir wohl die Möglichkeit mit der DCM. Da die 100 MHz nicht angetastet werden dürfen.
Nein es soll schon synthetisierbar sein. Der Takt ist fix und kommt aus einer DCM. Von diesem will ich zur Ansteuerung eines DAC ein 50/50 20 MHz Signal erzeugen. Ich wollte eben wissen obs noch andere Möglichkeiten zur Taktgenerierung gibt als noch ne DCM zu verwenden.
willi k. schrieb: > zur Ansteuerung eines DAC ein 50/50 20 MHz Signal erzeugen. Welcher DAC? Braucht der 50% TV? In welchem zeitlichen Bezug zum 20 MHz Takt gibst du dann die Daten aus?
willi k. schrieb: > kommt aus > einer DCM. Von diesem will ich zur Ansteuerung eines DAC ein 50/50 20 > MHz Signal erzeugen Aua. DACs und ADCs taktet man nicht mit irgendwelchen erzeugten Takten, sondern direkt aus einem jitterarmen Oszillator. Diesen Takt kannst du dann parallel an das FPGA führen um ihn intern zu verwenden. Durch den vom DCM erzeugten Jitter holst du dir digitales Rauschen in deine Signale rein. Bei 20MS/s mag das noch gehen, wenn die Auflösung nicht allzu hoch ist. Aber schau mal hier her: http://www.maximintegrated.com/design/tools/calculators/general-engineering/jitter.cfm
Lothar Miller schrieb: > willi k. schrieb: >> zur Ansteuerung eines DAC ein 50/50 20 MHz Signal erzeugen. > Welcher DAC? > Braucht der 50% TV? > In welchem zeitlichen Bezug zum 20 MHz Takt gibst du dann die Daten aus? Hmm ... ich hatte mal mit einem DAC zu tun, der tatsächlich auf den duty-cycle von 50/50 angewiesen war ... Kam mir seltsam vor und erst hatte ich das einfach ignoriert, was zu komischen Samplewerten geführt hat.
Also ist es wohl das Beste eine DCM mit einem ODDR-FF zu verwenden um einen jitterfreien Takt zu generieren...
Jitterfrei und DCM? Hmm...nee das passt nicht zusammen. Die 20MHz aus einem Oszillator direkt an den ADC führen, das wäre der richtige Weg. Wenn das aufgrund eines Designfehlers auf der Platine nicht mehr geht, dann über DCM die 100MHz durch 5 teilen und per ODDR ausgeben. Dann musst du aber mit dem Jitter leben.
Fetz schrieb: > ich hatte mal mit einem DAC zu tun, der tatsächlich auf den > duty-cycle von 50/50 angewiesen war Braucht der AD7401 bei 20MHz auch, bis 16MHZ würden 60/40 reichen:
1 | Mark space ratio for clock input is 40/60 to 60/40 for fMCLKIN to 16 MHz |
2 | and 48/52 to 52/48 for fMCLKIN > 16 MHz to 20 MHz. |
Ich werde es mit einer DCM und einem ODDR-FF versuchen. Ggf. klappst ja. Danke für die Antworten.
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.