Come osserva Dave Tweed, a meno che un FPGA non includa hardware flip flop che può funzionare su entrambi i bordi di un orologio, sarà necessario scrivere la propria logica per implementare il comportamento desiderato utilizzando i tradizionali infradito single-edge. Mentre ci sono un certo numero di modi diversi in cui si può implementare un circuito che si comporta in modo molto simile a un flip flop a doppio bordo, tali circuiti generalmente aggiungono alcuni vincoli di temporizzazione che sono diversi da quelli associati ai flip flop.
Ad esempio, un approccio semplice consiste nell'avere un modulo che combina due xors a 2 ingressi e una coppia di flip flop a "T" (dove lo stato dell'ingresso quando arriva un impulso di clock indica se quel fronte di clock deve commutare l'uscita), uno innescato da un fronte di salita e uno innescato da un fronte di discesa. L'output del modulo sarà lo xor degli output dei flip flop, e l'ingresso a entrambi i flip flop sarà lo xor dell'output del modulo e del suo input.
Un circuito progettato in questo modo funzionerà essenzialmente come un flip flop a doppio bordo, sebbene con tempi di installazione e propagazione più lunghi, ma con un vincolo di temporizzazione aggiuntivo. Un normale infradito che non si trova su un percorso di feedback non importerebbe se l'inizio di un fronte di clock ha un mucchio di impulsi di rottura, a condizione che l'orologio si stabilizzi a un livello valido e che il vincolo del tempo di impostazione, misurato da prima del il primo impulso di risposta e i vincoli del tempo di mantenimento e del tempo di orologio attivo, misurati dal momento in cui l'impulso di orologio è stabilmente attivo, sono rispettati. Il comportamento dell'uscita del flip flop sarà indefinito durante il tempo in cui l'orologio è instabile, ma sarà definito dopo che l'orologio si è stabilizzato. Il modulo double-xor-double-flop aggiungerebbe il vincolo di temporizzazione aggiuntivo che qualsiasi fronte di clock che cambierebbe l'uscita deve essere una distanza di sicurezza da qualsiasi altro limite di clock che potrebbe farlo. Non riuscire a soddisfare questo vincolo, ad esempio avendo tre fronti di clock in successione molto ravvicinata mentre l'input non corrisponde all'output, potrebbe lasciare l'output in uno stato indeterminato o metastabile (notare che gli scenari che coinvolgono un numero pari di edge non sono un problema , poiché tali scenari non implicherebbero altro che impulsi di runt; il caso a tre fronti (o altri casi di numero dispari maggiore di uno) è un problema perché ci sarebbe un impulso valido che segue gli impulsi di runt.
Un progetto di circuito alternativo sarebbe quello di avere i due infradito come sopra, ma alimentare le loro uscite in un multiplexer. Questo circuito non sarebbe gettato in cattivo stato dagli impulsi di rottura, e i suoi vincoli di clock sarebbero gli stessi dei latch sottostanti, ma avrebbe lo svantaggio che un'uscita che era alta e dovrebbe rimanere (o era bassa e dovrebbe rimanere bassa ), quindi potrebbe presentare un breve errore sul bordo dell'orologio. In alcuni circuiti non avrebbe importanza, ma in altri lo sarebbe.
Probabilmente sarebbe possibile per gli strumenti di sintesi logica implementare automaticamente le infradito double-edge analizzando quali vincoli temporali sono stati specificati come importanti, ma farlo sarebbe alquanto difficile. Aumenterebbe anche il rischio che una piccola modifica a un progetto possa causare un grande cambiamento nell'implementazione e quindi produrre un cambiamento significativo e inaspettato nel comportamento.