[FPGA]

Quartus 타이밍 분석, 디자인 성능 검증

Neo Park 2016. 11. 1. 11:28



설계가 더욱 복잡해짐에 따라 첨단 타이밍 분석 기능의 향상이 더욱 더 요구된다.  타이밍 분석은 각 설계 경로를 측정하고 설계에 대한 최대 시스템 클럭 속도를 알려준다.  정적 타이밍 분석 (static timing analysis) 은 설계의 기능을 체크하지는 않는다.  그러므로 설계자는 전체적인 설계 구현을 검증할 수 있는 시뮬레이션과 함께 타이밍 분석을 실시 하여야 한다.

Quartus™ 소프트웨어는 오늘날의 시스템 온 어 프로그래머블 칩 설계의 실현을 위한 첨단 타이밍 분석을 실행하는 데 필요한 기능들을 제공하고 있다.

예를 들어 컴파일이 끝날 때 마다 별도의 타이밍 분석 툴을 작동시킬 필요 없이 설계 컴파일 동안 Quartus 소프트웨어는 자동적으로 정적 타이밍 분석기를 작동시킬 수 있다.  Quartus 정적 타이밍 분석기는 또한 여러 distinct table로 결과를 알려주며 모든 타이밍 분석 결과에 대한 즉각적이며 직접적인 액세스를 제공한다.

 

타이밍 분석의 기본

포괄적인 타이밍 분석을 실시하기 위하여 설계자는 그 설계의 셋업 타임 및 홀드 타임, Clock-to-output 딜레이, 클럭 skew, 최대 클럭 주파수 그리고 slack time을 관찰할 필요가 있다.  이 정보들은 설계자가 회로의 성능을 실현하고 가능한 시간 violation을 확인하도록 해준다.  발견되지 않은 violation은 타이밍 해저드 (hazards) 나 race conditions를 야기할 수도 있는데 이들은 회로 실패의 주원인들 중의 하나이다.

셋업 타임 (tSU)

데이터나 enable input을 통하여 레지스터를 피드하는 데이터는 클럭 핀에 레지스터의 클럭 시그널이 assert 되기 전에 입력 핀에 도착하여야 한다.  셋업 타임은 액티브 클럭 edge전에 이 데이터가 도착해야 하는 최소한의 시간 길이이다.

홀드 타임 (tH)

데이터나 enable input을 통하여 레지스터를 피드하는 데이터는 클럭 핀에 레지스터의 클럭 시그널이 assert된 후에는 입력 핀에서 hold 되어야 한다.  홀드 타임은 액티브 클럭 edge 이후 이 데이터가 안정되어야 하는 최소한의 시간 길이이다.

Clock-to-output Delay (tCO)

Clock-to-output Delay는 클럭 핀에서 클럭이 트랜지션을 한 후에 출력 핀에서 유효한 출력을 얻어내는데 필요한 시간이다.

클럭 skew

클럭 skew는 두개의 서로 다른 레지스터에서의 클럭 시그널의 도착 시간 차이이다.  이 시간차는 두개의 클럭 시그널 경로가 서로 다른 길이를 갖고 있을 때 발생한다.  클럭 skew는 전체적인 라우팅이 되지 않은 클럭 시그널을 포함하는 설계에서는 흔한 일이다.  Quartus 소프트웨어는 그들이 핀위에 있든 혹은 내부적으로 파생된 클럭이든지 간에 모든 클럭에 대한 클럭 skew를 알려준다.

최대 클럭 주파수 (fMAX)

최대 클럭 주파수는 디자인 클럭이 내부 셋업과 홀드 타임 요건을 위반하지 않고 작동될 수 있는 가장 빠른 속도이다.  Quartus 소프트웨어는 설계의 내부 및 시스템 fMAX를 알려주면서 단일 혹은 다수의 클럭 설계에 대하여 모두 타이밍 분석을 실행한다.  내부 fMAX 분석은 디바이스내의 Register-to-Register 타이밍을 계산하고 시스템 fMAX는 디바이스에 대한 외부 딜레이를 포함하고 있다.

내부 fMAX를 결정하려면 회로의 클럭 주기가 계산되어야 한다.  클럭 주기는 데이터 경로 딜레이나 레지스터간의 클럭 skew, 소스 레지스터의 clock-to-output 시간 그리고 목표 레지스터의 셋업 타임에 달려 있다.

Quartus 소프트웨어는 클럭 주기와 내부 fMAX를 계산하기 위하여 다음 등식을 사용한다.  클럭 주기 등식에 있는 Register-to-Register Delay (tRD) 는 두 레지스터간의 데이터 경로 딜레이를 나타낸다.

  • Clock period = tRD - Clock Skew + Micro tCO + Micro tSU
  • Internal fMAX = 1 / Clock period

다음 등식은 위 그림 1에서 보여진 회로에 대한 내부 fMAX를 계산한다.

  • Internal fMAX = 1 / [ B - ( E - C ) + Source Micro tCO + Destination Micro tSU ]

 

Slack

Slack은 타이밍 요건 (예: fMAX) 을 만족시키는데 필요한 margin이다.  양수의 slack은 회로가 타이밍 요건을 만족한 것을 가리키고 음수의 slack은 설계가 타이밍 위반을 갖고 있다는 것을 의미한다.  Quartus 소프트웨어는 다음 등식을 가지고 slack을 결정한다.

  • Slack = Required clock period - Actual clock period
  • Slack = Slack clock period - ( Micro tCO + Data Delay + Micro tSU )

그림 2는 slack 계산 다이어그램을 보여준다.

 

첨단 기능들

Quartus 소프트웨어는 설계자가 설계 기능을 매우 잘 컨트롤할 수 있도록 다수의 클럭 도메인들을 오가는 경로를 포함하는 설계 및 멀티사이클 경로를 포함하는 설계의 타이밍 분석을 실행할 수 있다.  이 섹션에서는 이러한 첨단 기능들에 대해 설명하고자 한다.

Quartus 정적 타이밍 분석기 기능이나 이러한 첨단 기술들을 사용하는 방법에 관한 자세한 정보는 Quartus help를 참조하자.

다수의 클럭 도메인들

다수의 클럭 회로는 회로를 드라이브하는 한 개 이상의 클럭을 갖는 설계이다.  클럭이 지정된 후에 Quartus 소프트웨어는 서로 다른 클럭에 의하여 컨트롤되는 Register-to-Register 경로에 대한 타이밍을 분석하며 결과에 대해서는 slack을 통하여 나타낸다.  클럭들이 지정되지 않았을 때는 Quartus 소프트웨어는 각 클럭 핀에 대하여 fMAX를 알려준다.

멀티사이클 경로

멀티사이클 경로란 의도적으로 하나 이상의 안정된 클럭을 필요로 하는 레지스터들간의 경로이다.

예를 들어 레지스터는 두 번째 rising 클럭 edge 마다 신호를 트리거링할 필요가 있을 수도 있다.

그림 3은 작은 옵셋 (offset) 이 발생하는 클럭이 많이 있는 설계의 레지스터들 사이의 멀티사이클 경로 타이밍 다이어그램이다.

더블클릭을 하시면 이미지를 수정할 수 있습니다

이러한 경우 설계자는 부정확한 셋업 타임 위반 report를 피하기 위하여 설계에 멀티사이클 경로를 지정해야 한다.  이 지정은 Quartus의 Assignment Organizer에서 할 수 있다.

False Path

때로 설계는 회로의 작동과 관련 없는 레지스터들간의 경로를 포함할 수도 있다.  이러한 경로들은 false path로 간주된다.  정확한 결과를 얻기 위하여 설계자는 정적 타이밍 분석하는 동안 이러한 경로를 무시 (즉 제거) 할 수 있도록 Quartus 정적 타이밍 분석기를 세팅할 수 있다.

False path 시그널의 예는 정상적인 작동 (예: 리셋이나 테스트 모드) 하에서는 사용되지 않는 시그널이다.  설계자는 Quartus 소프트웨어의 Timing settings (project 메뉴) 이나 Assignment Organizer (Tool 메뉴) 대화 상자를 사용함으로써 이러한 경로를 제거할 수 있다.

 

결론

가까운 미래의 차기 설계 방식과 진보적인 프로세스 테크놀로지는 더 크고 더 높은 성능의 설계를 프로그래머블 로직 디바이스 (PLD) 에 구현하기를 요한다.  이러한 고도로 정밀한 설계의 증가 추세는 설계자가 설계 타이밍 요건을 빠르고 쉽게 분석할 수 있도록 해주는 향상된 타이밍 분석 툴을 필요로 한다.  첨단 타이밍 분석 툴이 없이는 설계자는 다수의 클럭과 경로가 뒤섞인 복잡한 설계에 대해 회로 실패의 위험을 갖게 된다.  Quartus 정적 타이밍 분석기는 시스템 온 어 프로그래머블 칩 (System-On-a-Programmable-Chip) 설계 실현에 필수적인 탁월한 새로운 타이밍 분석 기능 세트를 제공한다. (2000.7.4)




출처 : http://www.pldworld.com/_altera/html/apps/qtiming.htm