Ein Takt ist nur ein sehr vorhersehbarer Oszillator
CLOCK ist das einzige Element in Boolflow, das sich von selbst ändert, ganz ohne Eingang: Einmal gestartet, schaltet es automatisch mit der eingestellten Frequenz zwischen 0 und 1 um, ganz ohne INPUT-Schalter oder Verdrahtung, um es anzutreiben. Jeder Artikel zu Flip-Flops, Zählern und Registern auf dieser Seite setzt voraus, dass irgendein CLOCK-Element den jeweils besprochenen CLK-Eingang tatsächlich antreibt.
Frequenz ist ein Regler für die Simulationsgeschwindigkeit, kein logischer
Die Frequenz eines CLOCK zu ändern, ändert, wie schnell die Simulation sichtbar tickt, aber nie, was die Schaltung berechnet — ein Zähler erreicht 9 nach zehn steigenden Flanken, egal ob diese einmal pro Sekunde oder hundertmal pro Sekunde eintreffen. Die Frequenz beginnt erst dann wirklich zu zählen, wenn das Timing einer Schaltung sich auf etwas außerhalb der Simulation beziehen muss, etwa eine angestrebte Baudrate für einen UART.
Ein Takt, viele abgeleitete Raten
Echte Entwürfe betreiben selten jede Stufe mit derselben rohen Taktfrequenz. Verketten Sie CLK_DIV-Blöcke an einem CLOCK, um langsamere, verwandte Raten abzuleiten, statt einen zweiten unabhängigen Oszillator hinzuzufügen — wichtig, denn zwei unabhängige CLOCK-Elemente, die verschiedene Teile derselben Schaltung antreiben, führen genau das Risiko sich kreuzender Taktdomänen wieder ein, das in Synchronem Entwurf und Metastabilität behandelt wird.
Probieren Sie es selbst
Steuern Sie im Schaltungseditor einen CNT4 direkt von einem CLOCK-Element an und einen zweiten CNT4 von demselben CLOCK, geteilt durch 4 über zwei verkettete CLK_DIV-Blöcke, und bestätigen Sie, dass der zweite Zähler pro 4 Takten des ersten um 1 weiterzählt.