효율적인 설계 변경을 위한 인크리멘탈 구현 기법 효율적인 설계 변경을 위한 인크리멘탈 구현 기법
여기에 2008-05-27 00:00:00

 신플리시티와 자일링스는 고용량 설계를 위한 향상된 설계기법을 개발하기 위해 초고용량 분야의 전담팀(Ultra-High Capacity Task Force)을 결성했다. 그 결과물로 신플리파이 프로(Synplify Pro) 및 자일링스 ISE 소프트웨어는 새로운 SmartCompile 방법론을 제공한다.

 

 

효율적인 설계 변경을 위한 인크리멘탈 구현 기법

 

 

글│안젤라 슈톤(Angela Sutton), 수석 마케팅 매니저, 신플리시티

 

 

 지난 2006년 5월, 신플리시티와 자일링스는 고용량 설계를 위한 향상된 설계기법을 개발하기 위해 초고용량 분야의 전담팀(Ultra-High Capacity Task Force)을 결성했다. 이 전담팀의 첫번째 성과물로 발표된 것은 새로운 인크리멘탈 기법을 기반으로 한 스마트가이드(SmartGuide)TM 기술과 파티셔닝 기술이다. 이러한 기법들은 자일링스 ISETM 소프트웨어 9.1i 버전과 신플리시티의 신플리파이 프로(Synplify Pro) v8.8/v8.8.1에서 이용할 수 있다. 이 두 가지는 통합적으로 "SmartCompileTM" 기술로도 불린다.

 

 이 기법들은 반복적인 디자인 사이클 단계나 오랜 시간이 소요되는 고용량 FPGA에서 이미 동작이 이루어지고 있는 다른 설계부분을 혼란시키지 않고 로컬라이즈된 영역에 대해서만 소규모의 인크리멘탈 변화를 주고자 할 때 매우 유용하다. 표 1은 새로운 기법을 정리한 것이며, 이 글에서는 이 기법들의 사용 방법에 대한 세부 내용을 살펴볼 것이다.

 

스마트가이드(SmartGuide)

 

 스마트가이드는 레퍼런스로 사용되는 현재 디자인과 비교하여 PAR(Place and Route)상의 변경을 최소화한다. 통상적으로 ISE 소프트웨어가 PAR할 수 있도록 디자인을 합성하여 넷리스를 얻는다. 그리고 변경이 필요하다면, RTL을 변경하고 다시 합성한 후 스마트가이드를 사용하여 ISE 인크리멘탈 PAR를 동작시킨다.

 스마트가이드를 선택하면, ISE 소프트웨어는 넷리스트상의 변경에 근거하여 최소한으로 변경하도록 PAR(Place and Route)하고, 이 때 유효한 넷리스트와 타이밍 조건은 유지된다. 이 기능을 사용하기 위한 별도의 제약조건이나 합성상의 변경이 필요없다(그림 1).

 

그림 1.

 

 

스마트가이드 동작방법

 

 ISE 소프트웨어는 넷리스트 "네임 매치(name match)" 비교를 기반으로 전체 설계에 대한 인크리멘탈 PAR을 완전히 자동으로 동작시킨다.(신플리시티의 신플리파이 프로 툴로 출력한 현재의 넷리스트와 최초의 넷리스트 비교) 넷리스트를 일관성 있고 반복적으로 생성해 주는 신플리파이 프로 소프트웨어의 성능은 이러한 작업이 제대로 동작되도록 하는 핵심 기능이다. 신플리파이 프로 소프트웨어 v8.8은 넷리스트 일관성을 최대화하기 위해 수많은 새로운 기법들을 적용하고 있다. 여기에는 다음과 같은 내용들이 있다.

 

- 한 번 합성 후, 다음 합성시에도 동일한 인스턴트 이름 반복
- 한 번 합성 후, 다음 합성시 RTL 변경이 발생한 특성 경로를 로컬라이즈하여 넷리스트 변경

 

 신플리파이 프로 v8.8 소프트웨어 및 ISE 소프트웨어 9.1i 버전을 이용할 경우 자일링스는 핵심 경로가 아닌 곳에서 발생한 소규모 RTL 변경은 PAR 런타임을 절반으로 감소시키고 대부분의 경우 70% 정도 단축시킬 수 있다고 밝혔다. 절반 이상의 테스트 디자인에서 97%의 PAR결과를 유지하여, 디자인의 일관성을 유지할 수 있다.

 

 스마트가이드는 핵심 경로가 아닌 다른 경로에서 RTL 변경이 필요할 때 사용할 수 있는 최적의 방법이다. 이러한 경우 스마트가이드는 전체 설계를 다시 PAR하는 것과 비교해 평균적으로 PAR 시간을 절반으로 단축시킬 수 있다.
예를 들자면 소규모의 변경은 상수 값의 변화, 논리 조합인 OR에서 AND로 변경, "if" 상태에서의 로직 조건의 변경 혹은 스테이트 머신에 약간의 변경등을 포함하여 결과적으로 넷리스트의 10% 미만이 변경되는 경우이다.

 

파티션(Partition)

 

 파티션은 인크리멘탈 블록 기반 설계 기법이다. 이 기법은 PAR을 블록 단위로 점진적으로 수행할 수 있으며, 변경이 필요없는 다른 블록들은 보존하면서 수정 및 조정이 이루어진다. 이러한 보존은 하위 라우팅 레벨로 내려가는 경우에도 모두 가능하다. 결과적으로 이 기법은 런타임 시간을 보다 단축시킬 수 있다.

 

 "파티션(partition)"으로 구분 지어진 블록들은 합성이 이루어지기 전에 RTL 레벨에서 정의된다. 이러한 블록 계층은 신플리파이 프로 컴파일 포인트로 규정된다. 블록이 재 합성될 때마다 신플리파이 프로는 출력 EDIF 넷리스트를 업데이트하고 날짜를 기록하며, ISE 소프트웨어와 커뮤니케이션 한다. ISE 소프트웨어는 EDIF 타임 스탬프를 판독함으로써 어떤 블록이 변경되었는지를 자동으로 검출한다. 그림 2에서 보여지는 것과 같이 파티션 기법의 동작은 다음과 같다:

 

그림 2.

 

 

1. 컴파일 포인트를 설정한다. 블록/서브블록(파티션)을 신플리파이 프로에서 컴파일 포인트로 정의한다. 예를 들면:


#
# 신서시스 .sdc file에서 컴파일 포인트를 정의한다.
# 타이밍 예측을 개별적으로 정의해야 한다.
#


define_compile_point

define_compile_point

SCOPE 에디터나 신플리파이 프로 커맨드 라인을 사용해 GUI에서 컴파일 포인트를 규정할 수 있다.

 

2. 설계 구현(본래의 PAR 레이아웃) 후 합성한다. 합성의 마지막 단계에서 신플리파이 프로는 컴파일 포인트(블록/파티션)가 마지막으로 변경되었을 때의 타임 스탬프를 포함한 EDIF에 추가적인 속성을 기재한다. 예를 들면:

 

(instance or1200_dc_top (viewRef verilog
(cellRef or1200_dc_top))
(property PARTITION (string "1169730682")))

그 다음에 이루어지는 합성 동작 동안에는 기존의 타임 스탬프는 변경되지 않은 블록/파티션을 위한 EDIF에 삽입되어지고, 새로운 타임 스탬프는 변경된 블록/파티션에 삽입된다.

그 다음 신플리파이 프로 소프트웨어의 출력으로 ISE PAR을 동작시킬 수 있다. ISE 소프트웨어는 파티션으로서의 신플리파이 프로 컴파일 포인트를 자동으로 판독한다. 또한 ISE 소프트웨어는 각 블록/파티션에 대한 EDIF 날짜 스탬프를 확인하고 저장한다.

 

3. 변경하기. 신플리파이 프로에서 개별적인 블록(예를 들어, RTL 또는 제약 조건)을 조정하고 재 합성한 다음, ISE PAR을 다시 구동한다. ISE 소프트웨어 및 신플리파이 프로는 통합되어 있기 때문에 ISE 소프트웨어는 파티션의 날짜 스탬프 정보를 사용해 어떤 블록/서브블록이 변경되었는지를 자동으로 결정할 수 있다. ISE는 변경된 파티션만 PAR을 수행하고 변경되지 않은 다른 블록의 PAR은 남겨둔다.(타이밍을 만족한 상태를 유지하는 경우에 한해서)

 

 여러분은 ISE 소프트웨어가 변경되지 않은 블록의 배치를 그대로 두거나 혹은 파티션의 속성 셋팅을 통해 배치 및 라우팅을 남겨둬야 할지를 제어할 수 있다. 각 파티션은 "합성(넷리스트 보존)", "배치(넷리스트 및 배치 보존)", "라우팅(넷리스트, 배치, 라우팅 보존)", "계승(Inherit, 서브-블록의 보존 레벨이 원래 블록의 보존 레벨과 동일할 때 서브블록에서 사용)" 등 4가지 속성의 커스터마이징이 가능한 보존 레벨을 가지고 있다. 디폴트 셋팅은 합성 넷리스트, 배치, 라우팅이 한 번의 동작에서 다음 동작에 이르기까지 정확하게 보존되어지는 "라우팅"이다.(컴파일 포인트 블록 내에서 RTL이 변경되지 않는다면)

 

 신플리파이 프로 소프트웨어에서 개별 블록의 결과는 타이밍으로 이루어진다. 블록 내에서 최고 품질의 결과를 얻기 위해서는 일상적으로 각각의 컴파일 포인트를 위한 타이밍 제약을 개별적으로 생성하는 것이 더 좋다. 신플리파이 프로 소프트웨어의 상위레벨에서 제약조건을 변경시킨다면, 영향을 받은 파티션들은 변경되기 때문에 주의해야 한다.(이로 인해 재합성) 신플리파이 프로의 파티션 기법을 사용하면 여러분은 다양한 사례의 모듈을 만들 수 있다.

 

결론

 

 최신 세대의 65nm FPGA는 수백만 게이트 용량에 달하는 FPGA를 기반으로 복잡한 SoC(System-On-Chip) 설계를 구현할 수 있다. FPGA 설계에 있어 용량이 증가함에 따라 통합적이면서도 신속한 플로우를 실현하는 것이 점점 중요해지고 있으며, 사용자는 설계를 빠르게 조절하고 작은 설계 변경도 수용할 수 있는 "분할 및 통합구현(Divide-And-Conquer)" 기법을 요구하고 있다.

 

 신플리시티와 자일링스는 공동으로 이 같은 과제를 해결해 나가기 위해 초고용량 분야의 전담팀을 구성하였다. 스마트가이드와 파티션은 신플리시티와 자일링스가 사용자들에게 선보일 더욱 효율적인 설계 기법 기반의 새로운 솔루션들 가운데 최초의 제품이다.


ISE 소프트웨어와 신플리파이 프로는 통합되어 있기 때문에 ISE 소프트웨어는 파티션의 날짜 스탬프 정보를 이용해 어떤 블록/서브블록이 변경되었는지를 자동으로 결정한다.

 

 

 

 

 

디지털여기에 news@yeogie.com <저작권자 @ 여기에. 무단전재 - 재배포금지>