So erstellen Sie Uhren auf dem FPGA-Board

Ich verwende ein A7-100T FPGA-Entwicklungsboard, das für ein Projekt verwendet wird. Bis zu diesem Zeitpunkt habe ich auf Vivado nur Simulationen mit simulierten Uhren durchgeführt oder wenn ich das Board verwendet habe, musste ich keine Taktsignale erzeugen, da ich nur grundlegende kombinatorische Logikdesigns hatte.

Was ist der einfachste Weg, Taktsignale zu erzeugen? Ich habe Tutorials gelesen und Videos angesehen und es scheint, dass Sie ein IP-Paket erstellen und den HDL-Code als Komponente in der Datei der obersten Ebene des Designs verwenden müssen?

Ich muss zwei Taktsignale mit derselben Frequenz erzeugen, wobei eines davon eine 90-Grad-Phasenverschiebung aufweist.

Antworten (2)

Der A7-100T verfügt über einen integrierten Taktgeber und das Xilinx XC7A100TCSG324-1 FPGA selbst verfügt über ein sehr umfassendes integriertes Takterzeugungssystem.

Das Datenblatt: Datenblatt der Xilinx 7-Serie

Hebt es hervor als:

Uhren der Serie 7 1

Uhren der Serie 7 2

Also habe ich den Zeitassistenten verwendet und die Zeitkomponente instanziiert. Aber was gebe ich in die Komponente für die Uhr ein?
Die FPGAs der Serie 7 haben keinen selbsterzeugenden Takt. Sie als Designer müssen einen Eingangsblock bereitstellen, den die integrierten Taktschaltungen des FPGA verwenden können, um die spezifischen Takte zu erzeugen, die Sie benötigen. Überprüfen Sie die Dokumentation des ARTY-A7, aber soweit ich mich erinnere, gibt es einen einzelnen 100-MHz-Takt, der den E3-Pin auf dem FPGA antreibt.
Entschuldigung für meinen völligen Mangel an Wissen darüber, aber wird diese Uhr dann in Vivado in einer Beschränkungsdatei gesetzt, wie Sie es mit einem Eingangs- oder Ausgangspin tun würden, und dann in die Komponente des Uhrassistenten eingespeist?
@ jwh20 tun sie tatsächlich, aber es ist nicht sehr genau oder stabil. Sie können auf den Ringoszillator zugreifen, der zum Laden der Konfigurationsdaten verwendet wird, indem Sie die STARTUP-Primitive verwenden. Es kann gelegentlich nützlich sein.
Sie müssen den PLL-Eingang mit einem Taktsignal verbinden. Vermutlich hat Ihr FPGA-Board einen Oszillator, werfen Sie einen Blick auf den Schaltplan und finden Sie heraus, wie hoch die Frequenz ist und an welchen Pin sie angeschlossen ist. Sie sollten Vivado dies auch mit der Constraints-Datei mitteilen. Beachten Sie, dass die Beschränkungsdatei die Uhr nicht wirklich erstellt, sondern Vivado nur mitteilt, davon auszugehen, dass an diesem Pin eine externe Uhr mit der angegebenen Periode vorhanden ist.

Das müssen Sie nicht, Sie müssen eine Art externen Oszillator verwenden. Aber sobald Sie das haben, können Sie eine PLL, DCM oder ein ähnliches FPGA-Grundelement verwenden, um abgeleitete Takte mit unterschiedlichen Frequenzen und Phasen zu erzeugen. Sehen Sie sich die Dokumentation für das FPGA-Board und die FPGA-Tools an, die Sie für die Einzelheiten verwenden. Für Vivado ist es wahrscheinlich am einfachsten, den Taktungsassistenten zu verwenden, und das erzeugt ein Modul, das Sie instanziieren und die entsprechenden Ein- und Ausgänge verbinden können.