타이밍 분석과 CDC

셋업·홀드 슬랙 계산, OCV, 멀티사이클 패스 등 정적 타이밍 분석과, 동기화기와 비동기 FIFO를 이용하는 클럭 도메인 크로싱 설계를 객관식 문제로 확인합니다.

10문제 연습하기이 분야에서 무작위 10문제 · 약 5분 이 분야 연습하기이 분야의 모든 문제를 무작위 순서로 풀어요 취약 문제최근에 틀린 문제만 다시 풀어요

타이밍 분석과 CDC: 핵심 정리

동기 회로가 올바르게 동작하려면 플립플롭 사이의 모든 경로에서 데이터가 셋업 타임과 홀드 타임을 만족하며 도착해야 합니다. 정적 타이밍 분석(STA)은 SDC로 지정한 클럭과 입출력 지연의 제약을 바탕으로 각 경로의 슬랙을 계산하고, 스큐와 지터, 제조 편차까지 고려하여 위반을 찾아냅니다.

한편 비동기 클럭 사이에서는 타이밍을 보장할 수 없어 메타스테빌리티를 피할 수 없습니다. 2단 플립플롭 동기화기, 핸드셰이크, 그레이 코드 포인터를 사용하는 비동기 FIFO 등으로 신호를 안전하게 전달하는 클럭 도메인 크로싱(CDC)의 설계와 검증도 논리 설계의 기본입니다.

타이밍 분석과 CDC 전체 문제 (50)

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

설계와 산업의 다른 분야