타이밍 분석과 CDC
셋업·홀드 슬랙 계산, OCV, 멀티사이클 패스 등 정적 타이밍 분석과, 동기화기와 비동기 FIFO를 이용하는 클럭 도메인 크로싱 설계를 객관식 문제로 확인합니다.
—내 정답률
0 / 50푼 문제 수
타이밍 분석과 CDC: 핵심 정리
동기 회로가 올바르게 동작하려면 플립플롭 사이의 모든 경로에서 데이터가 셋업 타임과 홀드 타임을 만족하며 도착해야 합니다. 정적 타이밍 분석(STA)은 SDC로 지정한 클럭과 입출력 지연의 제약을 바탕으로 각 경로의 슬랙을 계산하고, 스큐와 지터, 제조 편차까지 고려하여 위반을 찾아냅니다.
한편 비동기 클럭 사이에서는 타이밍을 보장할 수 없어 메타스테빌리티를 피할 수 없습니다. 2단 플립플롭 동기화기, 핸드셰이크, 그레이 코드 포인터를 사용하는 비동기 FIFO 등으로 신호를 안전하게 전달하는 클럭 도메인 크로싱(CDC)의 설계와 검증도 논리 설계의 기본입니다.
타이밍 분석과 CDC 전체 문제 (50)
- 클럭 주기 2.0 ns인 동기 회로에서 송신 측 플립플롭의 클럭→출력 지연이 0.2 ns, 조합 회로의 지연이 1.4 ns, 수신 측 플립플롭의 셋업 타임이 0.1 ns입니다. 클럭 스큐를 0으로 하면 셋업 슬랙은 얼마입니까?
- 플립플롭 사이의 경로에서 클럭→출력 지연이 0.15 ns, 조합 회로의 최대 지연이 2.2 ns, 셋업 타임이 0.15 ns입니다. 스큐와 클럭 불확실성을 무시하면 이 경로가 동작할 수 있는 최대 클럭 주파수는 얼마입니까?
- STA 리포트에 나오는 WNS와 TNS에 대한 설명으로 올바른 것은?
- 클럭 주기 1.0 ns, 클럭→출력 지연 0.1 ns, 조합 회로의 지연 0.85 ns, 셋업 타임 0.08 ns인 경로가 있습니다. 수신 측 플립플롭의 클럭이 송신 측보다 0.05 ns 늦게 도착할 때 셋업 슬랙은 얼마입니까?
- 수신 측 플립플롭의 클럭이 송신 측보다 늦게 도착할 때(양의 스큐) 셋업과 홀드에 미치는 영향으로 올바른 것은?
- 송신 측의 클럭→출력 지연이 최소 0.08 ns, 조합 회로의 최소 지연이 0.02 ns, 수신 측의 홀드 타임이 0.05 ns입니다. 수신 측 클럭이 송신 측보다 0.1 ns 늦게 도착할 때 홀드 슬랙은 얼마입니까?
- 같은 클럭의 상승 에지에서 송신과 캡처를 하는 일반적인 경로에서 홀드 위반(슬랙 −0.03 ns)이 발견되었습니다. 클럭 주파수를 절반으로 낮췄을 때 이 위반의 처리로 올바른 것은?
- 홀드 위반을 고치기 위해 데이터 경로에 지연용 버퍼를 삽입합니다. 이때 확인해야 할 사항으로 가장 중요한 것은?
- 클럭 주기 1.25 ns(800 MHz)인 경로에서 클럭→출력 지연과 조합 회로 지연의 합이 1.05 ns, 셋업 타임이 0.05 ns, 셋업용 클럭 불확실성이 0.05 ns로 설정되어 있습니다. 셋업 슬랙은 얼마입니까?
- 클럭 불확실성을 설정할 때 셋업용에는 주기 지터를 포함하지만 홀드용에는 포함하지 않는 경우가 많습니다. 그 이유로 올바른 것은?
- STA에서 셋업과 홀드를 각각 주로 어떤 코너 조건에서 확인하는지의 조합으로 올바른 것은?
- OCV 디레이팅으로서, 셋업 분석에서 송신 측 클럭 경로와 데이터 경로의 지연을 1.1배, 수신 측 클럭 경로의 지연을 0.9배로 합니다. 송신 측 클럭 경로 1.0 ns, 데이터 경로(클럭→출력 포함) 1.5 ns, 수신 측 클럭 경로 1.0 ns(공통 부분은 없음), 주기 3.0 ns, 셋업 타임 0.1 ns일 때 셋업 슬랙은 얼마입니까?
- OCV 디레이팅을 사용한 STA에서 송신 측과 수신 측의 클럭 경로가 도중까지 공통인 경우에 수행하는 CRPR(공통 경로 비관성 제거)에 대한 설명으로 올바른 것은?
- 주기 2.0 ns인 클럭으로 동작하는 회로에서 데이터의 도착 시각(클럭→출력 지연과 조합 회로 지연의 합)이 3.3 ns, 셋업 타임이 0.1 ns인 경로가 있습니다. 이 경로는 2사이클에 한 번만 캡처하면 되므로 셋업 멀티사이클 패스를 2로 설정했습니다. 셋업 슬랙은 얼마입니까?
- 셋업 멀티사이클 패스를 N(N ≥ 2)으로 설정했을 때, 홀드에 대해서도 보통 멀티사이클 패스를 N − 1로 설정합니다. 그 이유로 올바른 것은?
- 폴스 패스(set_false_path)를 설정하는 것이 적절한 경로는?
- 주기 2.0 ns, 듀티비 50%인 클럭으로 상승 에지에서 송신하고 하강 에지에서 캡처하는 경로가 있습니다. 셋업 타임을 0.1 ns, 스큐를 0으로 하면 클럭→출력 지연과 조합 회로 지연의 합으로 허용되는 최댓값은 얼마입니까?
- 주기 2.0 ns인 클럭으로, 시각 0의 상승 에지에서 데이터를 내보내는 플립플롭으로부터 시각 1.0 ns에 열리고(투과 상태가 되고) 시각 2.0 ns에 닫히는 래치로 가는 경로가 있습니다. 데이터가 래치에 시각 1.4 ns에 도착했을 때 이 래치에서 빌린 시간(타임 보로잉)은 얼마입니까?
- 클럭과 인에이블 신호의 2입력 AND 게이트로 클럭을 멈추는 회로에서, STA의 클럭 게이팅 체크가 확인하는 내용으로 올바른 것은?
- 주기 2.0 ns인 클럭에서 입력 단자에 set_input_delay 0.6 ns가 설정되어 있습니다. 내부 플립플롭의 셋업 타임이 0.1 ns이고 클럭의 지연과 스큐를 무시하면, 입력 단자에서 플립플롭까지의 칩 내부 경로에 허용되는 최대 지연은 얼마입니까?
- set_output_delay에 지정하는 값이 나타내는 것으로 올바른 것은?
- 주기 2.5 ns(400 MHz)인 클럭에서 출력 단자에 set_output_delay 0.8 ns가 설정되어 있습니다. 출력 단자를 구동하는 플립플롭의 클럭→출력 지연이 0.2 ns일 때, 플립플롭에서 출력 단자까지의 조합 회로와 배선에 허용되는 최대 지연은 얼마입니까(클럭의 지연은 무시합니다)?
- 주기 1.0 ns인 클럭으로 플립플롭 A→B→C로 연결되는 경로가 있습니다. A→B는 클럭→출력 지연과 셋업 타임을 포함해 1.2 ns가 필요하고, B→C는 0.8 ns면 충분합니다. 스큐를 의도적으로 이용해 양쪽의 셋업을 만족하려면 B의 클럭을 어떻게 하면 됩니까(A와 C의 클럭은 동시에 도착하는 것으로 합니다)?
- 클럭을 분주 회로로 2분주하여 다른 회로에 사용하는 경우, SDC에서의 처리로 올바른 것은?
- 비동기 리셋이 있는 플립플롭에서 리셋 해제가 클럭 에지에 너무 가깝지 않은지 STA로 조사하는 체크는?
- 두 클럭 도메인 사이의 경로에서 동기화기가 필요한 것은?
- 2단 플립플롭 동기화기를 3단으로 늘렸을 때, 메타스테빌리티로 인한 고장의 평균 간격(MTBF)의 변화로 올바른 것은?
- 동기화기의 수신 측 클럭 주파수를 높이면 MTBF가 짧아집니다. 그 이유로 올바른 것은?
- 2단 플립플롭 동기화기에서 1단째와 2단째 사이에 관한 주의 사항으로 올바른 것은?
- 송신 측 클럭 도메인에서 조합 회로의 출력을 직접 수신 측 동기화기에 넣어서는 안 되는 이유로 올바른 것은?
- 4비트 데이터의 각 비트에 각각 2단 동기화기를 달아 다른 클럭 도메인으로 전달했습니다. 데이터가 0111에서 1000으로 바뀔 때 일어날 수 있는 문제로 올바른 것은?
- 멀티비트 데이터를 다른 클럭 도메인으로 안전하게 전달하는 방법으로 올바른 것은?
- 500 MHz 클럭 도메인에서 1사이클(2 ns)만 1이 되는 펄스를 100 MHz 도메인으로 2단 동기화기를 통해 전달했습니다. 일어날 수 있는 문제로 올바른 것은?
- 400 MHz 도메인에서 100 MHz 도메인으로 레벨 신호를 동기화기로 확실하게 전달하기 위해, 신호 폭을 수신 측 클럭 주기의 1.5배 이상으로 하려고 합니다. 송신 측 클럭으로 최소 몇 사이클의 폭으로 하면 됩니까?
- 토글 동기화(송신 측에서 펄스가 올 때마다 반전하는 레벨 신호를 만들어 전달하는 방식)에서 수신 측이 원래 펄스를 복원하는 방법으로 올바른 것은?
- 토글 동기화로 펄스를 빠른 클럭 도메인에서 느린 클럭 도메인으로 전달할 때의 제약으로 올바른 것은?
- req와 ack를 사용하는 4상 핸드셰이크로 데이터 하나를 전달할 때의 신호 순서로 올바른 것은?
- 핸드셰이크를 이용한 클럭 도메인 간 데이터 전송의 단점으로 올바른 것은?
- 비동기 FIFO에서 쓰기 포인터와 읽기 포인터를 그레이 코드로 변환한 후 상대 도메인으로 동기화하는 이유로 올바른 것은?
- 4비트 바이너리 0110(10진수 6)을 그레이 코드로 변환한 것은?
- 깊이 16워드인 비동기 FIFO에서 쓰기 포인터와 읽기 포인터를 주소보다 1비트 많은 5비트로 하는 이유로 올바른 것은?
- 5비트 그레이 코드 포인터를 사용하는 깊이 16워드의 비동기 FIFO에서, 쓰기 측에서 가득 참(full)을 판정하는 조건으로 올바른 것은?
- 비동기 FIFO에서는 상대의 포인터를 동기화해서 사용하므로, 보이는 포인터 값이 2~3사이클 오래된 값이 됩니다. 이 지연이 full/empty 판정에 미치는 영향으로 올바른 것은?
- 쓰기 측 100 MHz, 읽기 측 80 MHz인 비동기 FIFO에서 쓰기 측은 100워드의 버스트를 매 사이클 1워드씩 쓰고, 읽기 측은 매 사이클 1워드씩 읽습니다. 버스트 사이에는 충분한 휴지 기간이 있습니다. 넘치지 않기 위해 필요한 최소 깊이는 얼마입니까(동기화로 인한 지연은 무시합니다)?
- 쓰기 측은 200 MHz로 매 사이클 1워드씩 120워드의 버스트를 씁니다. 읽기 측은 150 MHz 클럭으로 3사이클 중 2사이클만 1워드씩 읽습니다. 넘치지 않기 위해 필요한 최소 깊이는 얼마입니까(동기화로 인한 지연은 무시합니다)?
- 쓰기 측 250 MHz, 읽기 측 200 MHz이며 둘 다 매 사이클 1워드씩 전송합니다. 64워드의 버스트를 받는 FIFO에 계산상 필요한 최소 깊이는 얼마입니까(동기화로 인한 지연은 무시하고, 소수점 이하는 올림합니다)?
- 액티브 Low 외부 리셋으로부터 '비동기로 어서트하고 동기로 디어서트하는' 내부 리셋을 만드는 리셋 동기화기의 구성으로 올바른 것은?
- 같은 송신 측 도메인에서 온 두 개의 제어 신호를 각각 별도의 2단 동기화기로 받고, 수신 측에서 AND를 취해 사용하는 설계의 문제점으로 올바른 것은?
- STA와 RTL 시뮬레이션을 수행하더라도 CDC 검증 툴로 확인해야 하는 이유로 올바른 것은?
- 비동기 FIFO의 그레이 코드 포인터를 상대 도메인으로 전달하는 경로를, 비동기라는 이유로 제약 없음(폴스 패스)으로 하면 문제가 될 수 있는 이유로 올바른 것은?