Einstellbare Taktdomain erstellen

Gast #3117692
Lesenswert?

Hallo zusammen,

ich verwende einen Softcore in meinem Design. Der Core besitzt zwei 
Taktdomänen, einen für den Kern (ALU etc.) und einen für die Peripherie 
(Timer, UART etc.). Ich würde mir jetzt gerne ein Register hinzufügen, 
über das ich einen Prescaler konfigurieren kann, der aus dem Kerntakt 
einen Peripherietakt herunterteilt. Wie mache ich das?

Der "Clock Enable Generator" aus Taktung FPGA/CPLD passt hier nicht, 
da der Softcore wirklich eine Taktleitung verwendet. Ich müsste also in 
jeden Prozess gehen und ihn so umschreiben, dass er das Gate-Signal "CE" 
akzeptiert. Das wäre wahnsinnig aufwändig!


Es gibt doch aber sicher eine elegantere Lösung! Wie kann ich aus einer 
Taktdomäne einen zweiten, einstellbaren Takt ableiten? BUFGCE 
vielleicht?! Wie funktioniert das?!

Grüße
Steffen

P.s.: Ich verwende einen Xilinx Spartan 3E und ISE Webpack.
Gast #3119557
Lesenswert?

Jürgen S. schrieb:
> Eine umkonfigurierbare PLL müsste das leisten, oder man macht es per
> Hand mit einem echten Teiler, einem BUFG und geht dann auf eine PLL und
> das Design.
>
> Es kann aber geschehen, dass das trotzdem nicht läuft, weil deine
> internen Module gfs Annahmen über den Peripherietakt machen, um
> Verzöerungen zu berechnen, etc.

Während der Frequenzänderung das Modul im Reset halten und die 
resetleitung auf den höchsten Takt constrainen. Wenn du eine PLL/DLL 
nutzt dann das Locksignal zur Freigabe des resets mit heranziehen.
Persönliche Seite #3135286
Lesenswert?

Nur zur Verdeutlichung: Dies hier:

> Es kann aber geschehen, dass das trotzdem nicht läuft, weil deine
> internen Module gfs Annahmen über den Peripherietakt machen, um
> Verzöerungen zu berechnen, etc.

war so zu verstehen, dass - wenn nicht im Modul verschiedene Takte 
vorgesehen waren . es passieren kann, dass das Modul funktionell nicht 
richtig arbeitet, weil gerade bei den Interfaces oft mit waits, 
Taktverzögerungen und mit Delays gerarbeitet wird, bei denen der 
Programmierer den eigentlichen Takt im Hinterkopf hatte. Bei anderem 
Tatk muss das also nicht unbedingt richtig arbeiten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren