Idee: Bau eine Erkennung für zu schnelle Wechsel ein. Beim Reset des
Zählers wird außerdem ein Flag resettet das "ausreichende Pulsbreite"
bedeutet. Sobald der Zähler einen bestimmten Wert erreicht (*) wird
dieses Flag auf 1 gesetzt. Die Schwelle für den Zähler wird so bestimmt,
dass ein entsprechender 0- oder 1-Puls breit genug ist, um als Clockpuls
zu dienen. Wenn bei der nächsten Flanke des ext. Takts das Flag noch
nicht gesetzt ist, dann wird das Ausgabetakt für die nächste Periode
angehalten, damit der Puls breit genug wird.
Das setzt immer noch voraus, dass sich die Häufigkeit der Änderungen ein
gutes Stück unter der ext. Taktrate selbst bewegt. Ansonsten wird du
kaum drumrum kommen die Erkennung der ext. Taktrate und die Erzeugung
des doppelten Takts zu trennen; dazwischen liegt dann die ext. Taktrate
als numerischer Wert vor, den du Tiefpassfiltern kannst um zu schnelle
Änderungen in der Taktrate einfach abzufangen.
(*) wenn du die erwartete minimale Pulsbreite nach oben schiebst bist du
auf der sicheren Seite und kannst die Schwellenerkennung auf die Abfrage
von einem oder wenigen Zählerbits reduzieren -> weniger Logik.