데이브 트위드 (Dave Tweed)는 FPGA가 클럭의 양쪽 가장자리에서 작동 할 수있는 플립 플롭 하드웨어를 포함하지 않는 한, 기존의 단일 에지 플립 플롭을 사용하여 원하는 동작을 구현하기 위해 자체 로직을 작성해야합니다. 이중 에지 플립 플롭과 매우 유사하게 동작하는 회로를 구현할 수있는 여러 가지 방법이 있지만, 이러한 회로는 일반적으로 플립 플롭과 관련된 타이밍 제약과 다른 타이밍 제약을 추가한다.
예를 들어, 간단한 접근 방식은 2 개의 2 입력 xor와 한 쌍의 "T"플립 플롭 (클럭 펄스가 도달 할 때 입력 상태가 클럭 에지가 출력을 전환해야하는지 여부를 나타내는)을 결합하는 모듈을 갖는 것입니다. 상승 에지에 의해 트리거되고 하강 에지에 의해 트리거됩니다. 모듈의 출력은 플립 플롭 출력의 xor가되고 두 플립 플롭의 입력은 모듈의 출력과 입력의 xor가됩니다.
이 방식으로 설계된 회로는 설정 및 전파 시간이 길지만 타이밍 제약이 추가되어 기본적으로 이중 에지 플립 플롭과 같이 작동합니다. 피드백 경로에 있지 않은 일반적인 플립 플롭은 클럭 에지의 시작에 런트 펄스가 많으면 클럭이 유효한 레벨로 안정화되고 설정 시간 제약 조건이 클록 펄스가 안정적으로 활성화 된 시간으로부터 측정 된 제 1 런트 펄스 및 홀드 시간 및 클록 활성 시간 제약이 충족된다. 플립 플롭 출력의 동작은 클럭이 불안정한 시간 동안 정의되지 않지만 클럭이 안정화 된 후에 정의됩니다. double-xor-double-flop 모듈은 출력을 변경하는 모든 클럭 에지가 다른 클럭 에지와 안전 거리를 유지해야한다는 추가적인 타이밍 제약 조건을 추가합니다. 입력이 출력과 맞지 않는 동안 매우 근접한 연속으로 3 개의 클럭 에지를 가짐으로써 이러한 제약 조건을 충족하지 못하면 출력이 불확실하거나 준 안정 상태로 남을 수 있습니다 (짝수의 에지를 포함하는 시나리오는 문제가되지 않습니다. 이러한 시나리오에는 런트 펄스 만 포함되므로 런트 펄스 다음에 유효한 펄스가 있기 때문에 3- 에지 케이스 (또는 1보다 큰 홀수의 경우)가 문제가됩니다.
다른 회로 설계는 위와 같이 두 개의 플립 플롭을 갖지만 출력을 멀티플렉서에 공급하는 것입니다. 이 회로는 런트 펄스에 의해 불량 상태로 전환되지 않으며 클럭 제한은 기본 래치와 동일하지만 출력이 높고 유지해야하는 (또는 낮고 낮게 유지되어야한다는 단점이 있습니다. ) 시계 가장자리에서 잠깐 동안 글리치가 발생할 수 있습니다. 중요하지 않은 회로도 있지만 다른 회로에서는 중요합니다.
로직 합성 툴이 어떤 타이밍 제약 조건이 중요한 것으로 분석되어 자동으로 이중 에지 플립 플롭을 구현하는 것이 가능할 수 있지만 그렇게하는 것은 다소 어려울 것입니다. 또한 디자인을 조금만 변경하면 구현에 큰 변화가 생겨 예상치 못한 동작 변화가 발생할 위험이 높아집니다.