Etwas wissenschaftlicher ausgedrückt liegt das Problem darin, dass auch
die schnellsten der schnellen FPGAs digitale Bausteine sind, die ein
zeitdiskretes Verhalten aufweisen. Speziell zum Taktzeitpunkt sind die
Zustände per Definition illegal und unbekannt. Da kann man - anders als
in Software - keine Annahmen über den Zustand machen und das
Fortschalten berechnen, es sei denn, man sorgt dafür daß die Zustände
stabil sind, also etwaige Taktodomänen-Wechsel geschützt sind.
In der Software ist das kein Problem, das zu beschreiben und in
C-Programmen zu nutzen, weil eine CPU zu einem Zeitpunkt nur eine Aktion
ausführen kann.
Die obige Aufgabe löst man daher mit entweder zwei asynchronen domains
und synchronen states (synch auf datenebene) oder mit synchronisierten
asynchronen Signalen (synch auf signalebene).
Vorschlag 1 impliziert eine erhöhte Latenz zwischen den Domänen und die
höchste Abtastrate innerhalb derselben -
Vorschlag 2 impliziert, daß die maximale Frequenz der einzigen Domäne
unterhalb der Hälfte der kleineren der beiden Wechselfrequenzen der
Eingangssignalen liegt.