Wenn die Periode der Systemuhr T ist, wie können wir dann die Uhr um 1/4 T verzögern, ohne ein analoges Gerät zu benutzen? Ein synthetisierbarer VHDL-Code ist bevorzugt.Verzögern der Uhr um einen Bruchteil der Periode
Antwort
Sie können nicht um einen Bruchteil einer Taktperiode zuverlässig mit digitaler Elektronik verzögern. (Ob Sie codieren es in VHDL oder Verilog oder Palasm oder Ella oder was auch immer, ist irrelevant.)
Sie können eine Taktverzögerung von grob 1/2T, wenn Sie die entgegengesetzte Flanke des Takt verwenden, aber auch das ist nicht zuverlässig. Dabei gehen Sie davon aus, dass das Tastverhältnis des Taktes nahe bei 50:50 liegt und dies unabhängig von der Versorgungsspannung, der Düsentemperatur (Temperatur des tatsächlichen Siliziums) oder der Prozessecke (Geschwindigkeitsklasse des FPGAs) der Fall ist).
Die einzige Möglichkeit, um weniger als 1/2T zu verzögern, ist es, die Tatsache auszunutzen, dass jedes Logikgatter eine Verzögerung hat. Dies ist jedoch eine sehr unzuverlässige Methode, da diese Verzögerung mit der Versorgungsspannung, der Düsentemperatur und der Prozessecke sehr unterschiedlich ist. Zum Beispiel einfach um den Faktor 3.
Also, wenn Sie etwas um 1/4T zuverlässig verzögern möchten, benötigen Sie eine Uhr mit der Periode 1/4T.
Wie und ob dies möglich ist, hängt von Ihrer Zieltechnologie ab und davon, wo und warum Sie die Uhr verzögern möchten.
In einem FPGA müssen Uhren und Daten an den Eingängen und Ausgängen häufig verzögert werden. Speziell bei Xilinx-FPGAs gibt es gehärtete Makros namens IDELAY und ODELAY, die Ihnen erlauben, dies zu tun. Die documentation kann mehr Details zur Verfügung stellen.
Der Phasenversatz kann auch in Ihrer Logik mithilfe eines PLL/MMCM/DCM (ein anderes gehärtetes Makro zum Synthetisieren verschiedener Takte von einem einzelnen Eingangstakt) ausgeführt werden, um den mit einem 90-Grad-Versatz phasenverriegelten Takt zu regenerieren. Auch hier kann die documentation Ihnen weitere Einblicke geben.
Die Dokumentation, die ich verlinkt habe, ist spezifisch für Xilinx 7-Serie FPGAs, aber es gibt ähnliche Dokumente für die meisten Hersteller und FPGA-Familien. Wenn Sie dies stattdessen in einem ASIC machen möchten, haben Sie wahrscheinlich kein Glück, etwas Analoges zu vermeiden, da beide gehärteten Makros intern auf analoge Teile angewiesen sind, nur keine Teile, die Sie entwerfen müssen.
- 1. Annotate Punkt Offset um einen festen Bruchteil der Axes Größe
- 2. wie man die Periode der Uhr in Modell sim ändert
- 3. hinzufügen oder einen kleinen Bruchteil der Zeit von Systemzeit subtrahiert
- 4. Verzögern der Ereignisbehandlung in Flash
- 5. Einen Timer einmal verzögern
- 6. Winkelradioknopf, der auf Uhr
- 7. Größe der komplexen Zahlen im Bruchteil
- 8. Verwenden der Uhr auf BASYS 3
- 9. Stottern beim Verzögern der Bildschirmaktualisierung mit OpenGL
- 10. SQL-Ansicht aktualisieren, mit der Periode
- 11. Subtrahieren Sie alles nach der letzten Periode
- 12. Abbrechen Abonnement am Ende der Periode
- 13. Uhr Format der Uhr Tabelle für Emacs Org-Modus
- 14. Entfernen der Periode von der Zahl in Python
- 15. JS Uhr Ausgabe, um onclick
- 16. Zeitteilung (Periode) Auswahl in vhdl
- 17. Warum ist eine Uhr in vue.js um einen Tick deaktiviert?
- 18. For Schleife über Bruchteil der Dateien mit Python
- 19. Festkomma-Bruchteil verstehen
- 20. Verzögern der DataGridView-Aktualisierung beim Bearbeiten der zugrunde liegenden DataTable
- 21. Verzögern der Array-Größe in der Klassendefinition in C++?
- 22. Split-on-Periode ohne Entfernen der Periode Interpunktion einmal geteilt - Python
- 23. Finden Sie "Bruchteil der hellen Pixel" im Bild (Schwellenwert?)
- 24. Spark 2.0 Speicher Bruchteil
- 25. hugo, github-Seiten und Tags beginnend mit der Periode
- 26. Nicht in der Lage Apfel Uhr App
- 27. Extrahieren der Ganzzahl und Bruchteil von Bigdecimal in Java
- 28. Uhr zur Expression Änderungen außerhalb der Richtlinie
- 29. Warum sprintet der Sprint um den Bruchteil von 5.555 und 0.555 anders?
- 30. Was ist der beste Weg, um den Bruchteil eines Floats in PHP zu bekommen?
Eine Uhr, die ich für meine winzige 8bit-CPU brauche, sollte drei Ausgänge haben: 1- clk (Originaluhr mit Periode T). 2- Aktivieren Sie die Uhr (ist '1' auf 3/4 T und '0' auf 1/4 T). 3 Uhr stellen (ist nur auf 1/4T in der Mitte der Periode). Wenn eine 1/4T-Verzögerung möglich wäre, könnte ich die erwähnten Freigabe- und Einstell-Takte aus dem ursprünglichen Takt herausnehmen, indem ich den Verzögerungstakt mit dem ursprünglichen Takt andoße und anordne. Aber wie kann ich es jetzt tun, wenn es nicht möglich ist? fühle mich enttäuscht ... – argasm
Dann, warum nicht ein 'clk' an die CPU mit einer Taktperiode von' 4 * T' und produzieren Ihre Freigabesignale mit FFs getakteten @ '1/T' Frequenz? – rascob