Taktteilung mit VHDL?

M

martur

Guest
Hallo ich habe ein Problem mit VHDL. in der Tat, wrot i die Testbench-Datei auf meinem Design zu simulieren. In dieser Datei muss ich einen bestimmten Wert, um ein Signal während einer bestimmten Periode zuzuordnen. so habe ich den folgenden Ausdruck: clk
 
Wenn die Gestaltung einer aktuellen FPGA-Familie gewidmet ist, würden Sie eine PLL-Takt-Multiplikator. Ansonsten gibt es keinen guten Weg. Logic Zelle Verzögerungen können verwendet werden, sind aber stark von der Prozess-, Spannungs-und Temperatur ("PVT") Schwankungen betroffen. Oder liefern einen Faktor 4 höheren Taktfrequenz.
 
Sehr geehrte Marter, Sie haben zu implementieren Zähler von n Bit, wenn Sie eine Uhr durch 2 zu dividieren, um die Macht 'n' benötigen. Wenn Sie specfic Frequenz Anforderung haben die mir sagen, das Detail der Eingangsfrequenz, Ausgangsfrequenz und "On"-Zeit Grüße Preet
 
Die OP war klar auf die Anforderungen, hat er eine Uhr mit einer Periode von 100 ns (10MHz) und er will es zu Verzögerungen von 25ns, die den Zeitraum von 40 MHz ist so FVM sagte er kann entweder eine interne Taktfrequenz-Multiplikator, wenn verfügbar oder einem externen Takt von 40 MHz verwenden. Martur, gehen wir davon aus, dass die 100ns clk derzeit ist die main (höchste) Taktfrequenz in Ihrem System und nicht eine Uhr, die bereits aufgeteilt ist. Alex
 
Liebe Marter, Sie haben zu implementieren Zähler von n Bit, wenn Sie eine Uhr durch 2 zu dividieren, um die Macht 'n' benötigen. Wenn Sie specfic Frequenz Anforderung der mir die Details der Eingangsfrequenz, Ausgangsfrequenz und "On"-Zeit Grüße Preet
Dies ist nur gut, wenn man den Ausgang dieses Zählers wie eine Uhr in Ihrer Basis Taktdomäne ermöglichen den Einsatz. Es ist allgemein schlechte Praxis, um die Ausgabe von einem Zähler zu takten anderen Registern nutzen. Es ist viel sicherer, eine PLL verwenden
 
Sehr geehrte TrickyDicky, plz aufwendigen Ihren Standpunkt mit Beispiel. das wird mir erlauben, besser zu verstehen. Regards, Preet
 
I dont haben ein Beispiel - es ist nur eine schlechte Nachricht zu einem Zähler als Takt für andere Geräte verwenden. Es kann manchmal funktionieren, aber kann sich ohne Vorwarnung unzuverlässig und wird durch die Temperatur beeinflusst. So, anstatt sie wie eine Uhr, als eine Uhr zu aktivieren:
Code:
 cnt_proc: process (clk) begin if rising_edge (clk) then cnt
 
Sehr geehrte TrickyDicky, wie viel ich kann mit PLL Grüße Preet teilen
 
so viel wie die PPL ermöglicht. Siehe Dokumentation für Ihre speziellen FPGA. In der Regel können Sie alles von ein paar MHz zu 100s von MHz bekommen.
 
check my Taktteiler Code: [url = http://www.vhdlcodes.com/2010/08/vhdl-code-for-clock-divider.html] All About VHDL Codes, PCB Design und AVR: VHDL-Code für Clock Divider [/url]
 
check my Taktteiler Code: [url = http://www.vhdlcodes.com/2010/08/vhdl-code-for-clock-divider.html] All About VHDL Codes, PCB Design und AVR: VHDL-Code für Clock Divider [/url]
Das ist in der Theorie gut, aber für eine praktische Design ist es sinnvoll, erzeugen eine Uhr zu aktivieren (ein Signal, das hoch ist, nur einem Taktzyklus) oder verwenden Sie ein PLL. Es wird nicht empfohlen, um eine Logik / register / Flip-Flop-Ausgang wie eine Uhr benutzen. Eine Uhr ist wie dieses in VHDL genutzt aktivieren:
Code:
-Verfahren (clk, rst_n), wenn rst_n = '0 'und dann - alle Register, um die Reset-Wert elsif rising_edge (clk) then set - kann es sinnvoll sein, einige haben Sachen hier - z. B. Einstellen generiert Uhr können auf Null, wenn clock_enable = '1 'then - die Arbeit hier, wenn am Ende nicht; end if; end process;
Wenn clock_enable = '0' wird der Prozess seinen Status zu halten. Die Uhr ermöglicht wird normalerweise durch den gleichen Takt wie die Schaltung, die es verwendet produziert. Mit Uhr können Sie verfügen über ein robustes System mit vielen verschiedenen "Uhren" (clock ermöglicht). Er ist robust, weil alles von den gleichen Takt getaktet wird.
 
Das ist in der Theorie gut, aber für eine praktische Design ist es sinnvoll, erzeugen eine Uhr zu aktivieren (ein Signal, das hoch ist, nur einem Taktzyklus) oder verwenden Sie eine PLL. Es wird nicht empfohlen, um eine Logik / register / Flip-Flop-Ausgang wie eine Uhr benutzen. Eine Uhr ist wie dieses in VHDL genutzt aktivieren:
Code:
-Verfahren (clk, rst_n), wenn rst_n = '0 'und dann - alle Register, um die Reset-Wert elsif rising_edge (clk) then set - kann es sinnvoll sein, einige haben Sachen hier - z. B. Einstellen generiert Uhr können auf Null, wenn clock_enable = '1 'then - die Arbeit hier, wenn am Ende nicht; end if; end process;
Wenn clock_enable = '0' wird der Prozess seinen Status zu halten. Die Uhr ermöglicht wird normalerweise durch den gleichen Takt wie die Schaltung, die es verwendet produziert. Mit Uhr können Sie verfügen über ein robustes System mit vielen verschiedenen "Uhren" (clock ermöglicht). Er ist robust, weil alles von den gleichen Takt getaktet wird.
Der Code auf meiner Seite ist synthetisierbaren . Und es gibt 100% Leistung. Sie sollten es zuerst versuchen. Und über Takt zu ermöglichen, kann u direkt hinzufügen Signal an meinem Code ..
 
Der Code auf meiner Seite ist synthetisierbaren . Und es gibt 100% Leistung. Sie sollten es zuerst versuchen. Und über Takt zu ermöglichen, u können direkt hinzufügen Signal an meinem Code ..
Nur weil es synthetisierbaren doesnt bedeuten eine gute Idee, den Leuten beizubringen, dass die Erzeugung Uhren in der Logik eine gute Idee ist. Sie sollten zu modifizieren, zu sagen, dass "op" als jede andere interne Logik zu ermöglichen und nicht als eine Uhr verwendet werden soll.
 
Sie sollten Änderungen daran zu sagen, dass "op" als jede andere interne Logik zu ermöglichen und nicht als eine Uhr verwendet werden soll
Aber es ist nicht als Ein-Zyklus-high Uhr konzipiert ermöglichen, anstatt 50% Einschaltdauer Ripple unterteilt Uhr. Generell kann ich mir vorstellen einigen Fällen, in denen die genannten Taktteiler dient es dem Zweck, zB Erzeugung einer externen Clock-Ausgang für ein Peripheriegerät, aber mehr Fälle, in denen eine Uhr ermöglichen würde, vorzuziehen. Vorausgesetzt, dass Sie nicht über eine PLL, um eine Uhr mit null Verzögerung zu erzeugen, kann es notwendig sein, um die schlechte unterteilt Uhr Lösung für eine langsame Clock-Domain verwenden. Aber Timing-Closure von Domain-Kreuzung Signale fügen Sie einige zusätzliche konstruktive Aufwand. Der Thread-Titel ist etwas irreführend, von der Art und Weise, da die Original-Beitrag tatsächlich anfordert Uhr Multiplikation anstatt Division.
 

Welcome to EDABoard.com

Sponsor

Back
Top