평범한 학생의 dreamlog
by 이별사랑
이글루 파인더
카테고리
완벽한 언어를 찾아서
전자 업계는 현재의 개발 방법론을 통합할 수 있는 시스템 레벨 설계 해법을 찾기 위해 전력 투구하고 있다.
글: Gabe Moretti, 테크니컬 에디터

전자 산업의 태동 이후, 제조 기술은 보다 우수한 기능의 새로운 EDA 툴 개발을 촉진하는 원동력이 되어 왔다. 그리고 이제는 전자 산업을 재편할 정도의 기술적인 전환점에 도달했다. 대부분의 디자이너들에게 있어서 최신 IC 제조 기술을 사용하는 것은 이제 더 이상 최고의 목표가 아니다. 오늘날의 제품은 경쟁력을 유지하기 위해 복잡한 기능을 수행해야 한다. 130nm 이하의 공정에서 나타나는 기생 현상은 디바이스가 제 기능을 발휘하는 데 악영향을 미친다. 반면 대부분의 디자이너들은 이러한 문제를 해결하는 방법에 대해 교육 받지 않았으므로 개발 주기는 길어지고 비용은 증가하게 되었다. 따라서 레이아웃에서 문제를 피해 가거나 해결하길 기대하지 말고 문제를 본질적으로 피하는 방법을 찾는 것이 바람직하다. 이렇게 하려면 제품이 제 기능을 수행하고 일정에 맞출 수 있게 해주는 신중하고 정밀한 시스템 레벨 설계가 필요하다.

현재 개발된 대부분의 IC 제품은 설계 오류로 인해 적어도 한 번은 리스핀을 수행해야 한다. 리스핀 한 번에 드는 직접 비용은 평균 100만 달러가 넘으며, 이로 인해 시장 진출 기회를 상실하는 대가는 수천억 달러에 달한다. 그래서 디자이너는 가능하면 제조 공정을 신중하게 선택하고 다른 누군가가 새로운 공정 기술의 알려지지 않은 함정을 탐험해 주길 바란다. 엔지니어들은 프로젝트 초반에 제품의 계획, 정의, 작업 분할에 더 많은 시간을 투자한다. 그러나 유감스럽게도 이런 작업에 사용하는 툴은 대체로 정밀하지 않다. 툴은 인간의 의사소통에 쓰이는 언어를 기반으로 구성돼 있다. 즉, 무형식 의미론(informal semantics), 실행 모델로 변환할 수 없는 스프레드시트, 제품 개발에 사용되는 형식으로 업데이트하거나 변환하기 어려운 그림 등이 포함돼 있다. 시스템 레벨 작업을 위한 보다 정교한 툴이 있긴 하지만 나머지 개발 플로우와 통합시킬 수 있는 툴은 거의 전무한 실정이다. 따라서 엔지니어는 수작업으로 정보를 기존 툴에 재입력해야 한다. 수동으로 번역해야 할 데이터의 양과 복잡성으로 인해 오류 발생 가능성이 높은 것은 당연하다.

새로운 모델링 언어를 찾아서
1990년대 말, Verilog가 하드웨어 모델링 언어로 널리 사용되면서 디자이너는 시스템 레벨 구성을 모델링하기에는 Verilog의 기능이 너무 취약하다는 사실을 깨닫기 시작했다. 일부 EDA 벤더가 이 문제의 해법을 찾기 위해 노력했다. 물론 대부분 신생 벤더였다. 당시 주요 난관은 하드웨어와 소프트웨어 구현 간의 상반관계(trade-off)와 하드웨어 엔지니어와 소프트웨어 개발자 간의 의사 소통을 향상시키기 위한 설계 방법의 지원이었다. 1999년 9월, 약 50개 업체의 지원을 받아 OSCI(Open SystemC Initiative)가 구성되었다. OSCI의 1차 목표는 시스템 레벨의 지적 재산권 관련 제품의 교류와 C++ 모델링 플랫폼을 통한 하드웨어/소프트웨어 동시 설계를 촉진시키는 것이었다. C++를 기본 언어로 채택했던 이유는 C와 C++가 칩 디자이너와 소프트웨어 엔지니어가 주로 사용하는 언어였기 때문이다.

지금은 Synopsys의 일부가 된 Co-Design Automation은 하드웨어 디자이너들 사이에서의 선호도를 고려해 Verilog를 시스템 레벨 모델링 언어 개발의 시발점으로 보았다. Synopsys는 ‘1999년 설계 자동화 컨퍼런스(1999 Design Automation Conference)’에서 새로운 언어인 Superlog를 발표했다. 이름에서 알 수 있듯이, Superlog는 Verilog의 초집합이다. 2002년 6월 Accellera는 SystemVerilog라는 새로운 언어의 3.0 버전을 발표했다. Co-Design은 Accellera 위원회와 손 잡고 Verilog의 기능을 확장했다. Synopsys는 Co-Design을 합병한 후, 더 많은 Superlog 사양을 Accellera에 공여했다. 표준을 제정하는 컨소시엄인 Accellera는 현재 SystemVerilog 버전 3.1을 발표한 상태이다.

2001년 Verilog 재표준화 이후, Verilog 연구 그룹은 새 버전이 시스템 레벨 모델링 요구 사항에 부응하지 못하므로 새로운 버전을 내놓아야 한다는 판단을 내렸다. 이 그룹은 IEEE의 후원 하에 연구를 수행하고 있으며 프로젝트 승인 요구서(PAR) 번호는 1364이다. SystemC, Verilog, SystemVerilog는 지난 12개월 동안 언론의 지대한 관심을 받았는데, 이들 언어의 특성과 개발 상태는 면밀히 지켜볼 만한 가치가 있다. 또한 IEEE도 PAR 번호 1076의 VHDL-200X라는 프로젝트에서 VHDL의 새 버전 개발 작업을 진행 중이다(사이드바 기사 "'시스템이라는 별칭이 필요 없는 VHDL” 참조).

그러나 안타깝게도 VHDL-200x 연구 그룹은 하드웨어 모델링에 있어 SystemVerilog의 대안 개발에 열중하고 있는 것 같다. 이 접근 방식의 문제점은 VHDL이 결코 Verilog나 SystemVerilog의 훌륭한 대안이 될 수 없다는 사실에 있다. VHDL은 구문과 의미론이 훨씬 풍부하므로 전자 공학 하드웨어 뿐만 아니라, 이종 시스템 모델링에 더 적합하다. 실제로 칩과 멀티칩 기반 시스템이나 멀티보드 시스템은 하드웨어, 소프트웨어, 기계 시스템의 동시 모델링이 필요하다. 이 작업에는 VHDL이 가장 적합하고 연구 그룹도 이를 따라야 한다. 표 1에는 기존의 언어와 새로 제안된 언어를 통틀어 다양한 모델링 언어의 주목할 만한 사양들이 요약돼 있다.

SystemC
OSCI는 SystemC 개발의 지침이 되는 5가지 요건을 명시했다. 이 요건에 따르면 SystemC는 하드웨어/소프트웨어로 구현해야 하는 시스템 기능에 관한 고차원 기술을 지원하고, 시스템 설계자가 하드웨어/소프트웨어 분할 결정을 최대한 연기할 수 있도록 허용하며, 시스템 표현을 하恙�佇?구현하는 방법을 제공하고, 최첨단 시스템의 복잡성을 관리하는 메커니즘을 제공해야 한다.

SystemC는 새로운 클래스를 가진 C++이다. 주요 이점으로는 언어로서의 발전 수준과 퍼블릭 도메인(public-domain) 상태를 꼽을 수 있다. 디자이너가 실시간 운영 체제 개발을 비롯한 다양한 애플리케이션에C++를 사용해 왔기 때문에 C++는 강력한 언어라 할 수 있다. 또한 퍼블릭 도메인(public-domain) 상태로 인해 비용이 아주 저렴하지만, EDA 벤더는 이미 형성된 거대한 잠재 고객층에 독자적인 툴을 제공함으로써 수익을 창출할 수 있다. C++는 소프트웨어 개발 툴이기 때문에 의미론(semantics)이 하드웨어 모델링 기능을 지원하지 않는다. OSCI는 개발자가 클래스를 작성하여 언어 확장을 정의할 수 있는 C++의 기능을 사용해 이 문제를 해결했다. 클래스를 정의할 때 엔지니어는 구문과 런타임 의미론을 모두 명시할 수 있다.

일반적으로 새로운 의미론은 기존의 의미론적 정의가 오버로드(overload)되는 방식으로 정의된다. 오버로드란 C++ 언어의 로컬 영역 내에서 규칙을 재정의하는 것을 뜻하는데, 이 경우는 SystemC 클래스 라이브러리를 일컫는다. 디자이너가 라이브러리에서 정의한 변수와 프리미티브를 사용하면 새로운 규칙이 효력을 발생한다. 다른 곳에서 정의한 변수와 프리미티브를 사용하면 원래의 C++ 규칙이 효력을 발휘한다. 새로운 런타임 의미론을 정의하면, C++ 컴파일러가 생성한 이진 문자열을 이해하는 프로그램이 실행 가능한 새 코드를 컴파일러가 생성한다. 그러면 클래스 정의에 있는 추가적인 정보를 통해 C++ 런타임 기능을 확장하여 SystemC 시뮬레이터를 개발할 수 있다. OSCI는 시간, 동시성, 하드웨어 데이터 형식이라는 세 가지 기본적인 개념을 C++에 추가해야 했다.

소프트웨어 프로그래밍 언어는 프로그램을 실행하는 하드웨어가 실행 타이밍을 정하므로 시간을 이해할 필요가 없다. 하지만 하드웨어를 모델링해야 할 경우, 시간 지연과 실행 시퀀스를 모델링할 수 있어야 한다. 어떤 하드웨어 모델이 다음에 실행되어야 하고 한 하드웨어 프리미티브에서 다음 프리미티브로 신호가 전파되는 데 시간이 얼마나 걸리는지 시뮬레이터에 제시할 수 있어야 한다. 소프트웨어 프로그래밍 언어가 병렬 실행(parallel execution) 개념을 지원하긴 하지만 동시성은 이해하지 못한다. 병렬 실행이란 결합도가 약한 하드웨어 시스템이 독립적으로 둘 이상의 명령 스트림을 실행하는 것을 뜻한다. 보통 세마포어 프리미티브(semaphore primitive)를 사용하여 이런 병렬 실행을 동기화하는데, 세마포어 프리미티브는 의도한 알고리즘이 제대로 실행되는지 감시하는 글로벌 상태 시스템 역할을 한다.

하드웨어 동시성(concurrency)이란 일단 전원을 켜면 모든 하드웨어가 동시에 작동하는 것을 의미한다. 그래서 시뮬레이터는 원래부터 동시적이지 않은 명령 시퀀스를 처리하는 컴퓨터에서 실행되는 동안 동시성을 흉내내야 한다. C++의 기본 데이터 형식은 하드웨어 모델링에 부적합하다. 예를 들어, 3상 논리값을 기술하는 데 사용할 수 있는 데이터 형식이 존재하지 않는다. SystemC는 네 가지 값의 논리 시스템을 C++에 추가하여 디지털 논리 모델링을 가능하게 했다. 하지만 아직 디지털 논리와 아날로그 논리 간의 상호 작용과 아날로그 모듈의 구성 검사는 지원하지 않는다. 가장 최신 버전은 SystemC 버전 2.0.1로 알려져 있다.


SystemVerilog
SystemVerilog는 Verilog-1995의 모델링 기능을 확장한 것으로서 VHDL-1993이 제시한 기능을 충족시키지만 그 이상을 만족시키기도 한다. 이 개발 작업을 후원하는 업계 컨소시엄인 Accellera가 직면한 근본적인 문제는 VHDL의 주요 단점 즉, 장황함과 복잡성을 피하는 것이다. 구문을 복잡하게 하지 않고?더 중요한 것은 의미론을 복잡하게 하지 않고?언어에 기능을 추가하는 것은 사실상 불가능하다. VHDL에 비해 이 프로젝트가 갖는 이점은 시장 수요에 있다. VHDL은 시대를 앞서 있지만 전자 공학 엔지니어들은 극소수 외에 VHDL 기능을 사용하지 않고 있다. 따라서 VHDL은 복잡한 것처럼 보이고 시뮬레이터는 수행할 작업이 더 많으므로 Verilog 보다 실행 속도가 느린 단점이 있었다. EDA 벤더에겐 안 좋은 소식이지만, 미국 국방부의 계약 체결 조건을 충족시키려면 제품이 모든 언어를 지원해야 한다는 미 공군의 주장 때문에 벤더들은 하기 싫은 일을 억지로 할 수 밖에 없었다. 디자이너가 언어의 복잡성, 느린 실행 속도와 씨름하여 보다 우수한 동작 모델링과 검증 기능의 장점을 누릴 수 있게 될지는 앞으로 두고 볼 일이다.

SystemVerilog의 목표는 게이트 수가 많은 VC(virtual-cores) 기반의 버스 집약적인 칩 설계의 생산성을 개선하는 것이다. 이는 주로 칩 구현과 검증 플로우를 목표로 한다. 버전 3.1은 Verilog 2001의 네 가지 주요 확장 기능을 구현했다. 트랜잭션 모델링을 지원하기 위해 SystemVerilog는 디자이너가 C/C++/SystemC 기능을 설계 모델에 포함시킬 수 있도록 하는 DPI(직접 프로그래밍 인터페이스)를 제공하는데, DPI 덕분에 SystemVerilog와 SystemC 블록 간의 동시 시뮬레이션이 가능해졌다.

확장 그룹(a group of extensions)은 모델링의 편의성을 높이는 것을 목표로 하고 있다. 인터페이스 레벨에서 트랜잭션을 모델링하는 기능을 사용하면 버스 집약적인 회로 개발을 수월하게 할 수 있으며, 포트 양쪽에 임의의 데이터 형식을 허용하면 모델링 작업이 한결 수월해진다. 물론 확장된 데이터 형식은 C 계열 언어 사용을 지원한다. 또한 상위 모듈에 로컬로 모듈을 중첩시키면 VC 보호 기능을 강화할 수 있다. 이 방법의 단점은 포트 연결 규칙이 느슨해져 설계 오류가 발생할 수 도 있다는 점이다. 사용 편의성과 구조적인 수정 간의 상반관계에서는 아마도 사용 편의성 쪽이 절대적으로 불리할 것이다. 디자이너는 한 번에 정확하게 모델링해야 하지만 검증 엔지니어는 다른 형식의 두 연결 포트가 동작하지 않는 경우 문제 해결을 위해 며칠 정도의 시간을 소요해야 할 수 있다.

이를 위해, ‘검증을 위한 디자인(DFV, design-for-verification)’ 방법을 구현하는 어서션 기반 검증을 지원하는 새로운 메커니즘이 발표됐다. Synopsys는 DFV를 SystemVerilog 위치를 확보하기 위한 홍보 전략의 핵심으로 내걸었다. 포트 의미론을 완화시켜 발생하는 문제를 확인하는 데 사용할 수 있는 임베디드 어서션(embedded assertion)은 기능과 한계의 관점에서 설계 의도를 파악한다. 기능과 한계는 시뮬레이션 중에 검증한다. IBM(
www.ibm.com)의 형식 어서션 언어인 PSL(Property Specification Language)은 SystemVerilog가 사용하는 어서션 기술을 제공하며, 개체 지향 기술을 지원하여 테스트벤치와 하드웨어 모델의 개발과 재사용을 향상시킨다. Accellera는 원칙적으로 SystemVerilog 다음 버전을 Verilog 2005 워킹 그룹이 사용할 수 있도록 하는 데 동의했다. Accellera는 시장에서 혼동과 비호환성을 야기시키는 Verilog 2001의 두 가지 초집합이 생기는 것을 피하는 데 동의했다. 하지만 기술 공여는 Verilog 연구 그룹의 기대보다 늦어지기 때문에 Verilog 2005 개발자가 할 일이 더 많아질 것이다.

Verilog 2005
Verilog 1995와 Verilog 2001을 개발한 IEEE 1364 워킹 그룹은 IEEE Verilog 표준 개발 작업을 맡고 있다. 2003년 3월, 이 그룹은 새로운 전자 시스템 설계 과제를 다루기 위해 표준을 업데이트하고 확장하기 위한 기술 공여를 요청했다. 그 해 9월, 9개의 주제를 다루기 위해 EDA 벤더 네 곳으로부터 9개의 공여를 받았다. 이 위원회의 목적은 2005년 새로운 IEEE 표준을 작성하는 것이다. 연구 그룹에는 유감스럽게도 Accellera가 2004년 6월경 공여를 약속했지만 아직 SystemVerilog 작업 공여는 전혀 이루어지지 않았다.

Cadence Design Systems는 여섯 개 분야의 기술을 공여했고 Fintronic, Jeda Technologies, Verisity가 각각 한 분야씩을 다루는 기술을 공여했다. Cadence의 공여는 근본적으로 Verilog 2005의 구문과 의미론으로의 확장을 목적으로 한다. Cadence는 Verilog를 시스템 레벨로 확장하는 데 유용한 새로운 데이터 형식 정의 뿐 아니라, Verilog로 일관성 있게 데이터 형식과 함수를 정의하는 방법의 지침이 되는 규칙도 제공했다. 이를 위해 기본 및 복합 데이터 형식의 집합, 사용자 정의 형식의 일반적인 방법론 및 임의의 형식의 동적 메모리 할당을 제시했다. Verilog 모델의 소스 코드 일부를 암호화하는 방법을 제시한 공여는 제 3의 소프트 코어 공급자를 위해 독자적인 보호 기술을 제공하기 위한 것이다. VPI(Verilog Programming Interface)를 확장하는 공여는 확장된 데이터 형식과 PSL을 사용하는 어서션을 지원한다.

Verilog로 작성된 모델의 디버깅을 편리하게 할 목적으로 두 가지 공여가 이루어졌다. 하나는 테스트 패턴을 제한적으로 랜덤화하는 기능을 제공하고 나머지 하나는 디자이너가 높은 추상화 계층에서 트랜잭션을 보고 분석할 수 있는 트랜잭션 기록용 VPI가 그것이다. 또한 Cadence는 단기간에 강력한 언어를 생성하고 미래의 확장 경로를 순탄하게 만들어 주는 지침도 기부했으며, 연구 그룹에 과거보다 체계적으로 작동할 수 있게 하는 구조를 제공하는 것을 목적으로 하고 있다.

Fintronic은 Verilog 모델을 따로 컴파일하는 것을 지원하는 기술을 공여했다. 이 기능으로 Verilog 설계 부분들을 따로 컴파일할 수 있다. 그런 다음 미리 컴파일한 부분들을 다른 Verilog 소스 및 바이너리 파일과 혼합하여 설계를 하고 시뮬레이트할 수 있다. 이 기능은 Cadence 가 공여한 암호화 기술의 대안이 될 수는 있지만 직접 대체할 수는 없다. Jeda Technologies는 다른 언어 Jeda-X와 Verilog 언어를 결합시켜 테스트벤치 개발과 설계 디버깅 기능 확장을 제안했다. 제안된 언어 Jeda-X는 재사용 가능한 모듈식 테스트벤치를 작성하기 위한 개체 지향 프로그래밍을 지원할 것이다. 또한 영역 지향 프로그래밍(aspect-oriented programming), 동시 프로그래밍, 주기 기반 테스트벤치도 지원한다. 마지막으로 동작 모델링을 위한 향상된 리스트, 배열 데이터 형식, 멀티스레드 실행을 위한 동기화 프리미티브 등을 제공한다.

Verisity는 테스트벤치와 디버깅을 지원하는 자체 기술을 Jeda-X 제안의 직접적인 대안으로 공여했다. Verisity는 Verilog에 ‘keep’과 ‘gen’이라는 두 가지 키워드를 추가할 것을 제안했는데 이는 디자이너가 모든 값을 규격에 맞게 유지하기 위한 규칙(강력한 규칙과 느슨한 규칙 모두)과 필요할 때 새로운 자극을 정확하게 생성하기 위한 요구를 명시할 수 있게 해준다. Verisity의 다른 공여는 Verilog을 확장하여 디자이너가 검증 엔지니어와 협력함으로써 함께 기능상 다뤄야 할 점을 기술하고 테스트해야 하는, 결정적인 입력과 내부 이벤트 조합을 확인할 수 있게 한 점이다. 또한 테스트 작성자용 구문을 공여하여 테스트 모듈이나 모듈들 내부의 데이터 값 생성에 제한을 가하는 ‘keep’ 문장을 도입할 수 있게 했다. ‘extend’ 키워드를 사용하여 테스트 작성자는 한 번에 올바른 입력 시퀀스의 기본 규칙을 기술하고 나중에 이 규칙을 테스트용으로 확장하여 하나의 대상에 집중할 수 있다.

연구 그룹은 SystemVerilog 기술 공여를 받으면 이미 많은 SystemVerilog 기능을 Verilog 2005에 설계해 넣었기 때문에 어려운 통합 문제에 직면할 것이다. 또한 이 두 언어는 유사하지만 결코 동일하지는 않다. 두 언어의 차이를 극복하고 그 결과 언어학적으로 동일한 부모를 가진 다른 두 방언이 아닌 하나의 언어를 만들어내려면 엔지니어링과 관리 분야에서 모두 엄청난 노력이 필요할 것이다.

상업적 지원
이상 네 가지 언어의 표준 개발은 서로 다른 경로를 따르고 있다. SystemC와 SystemVerilog의 개발자 모두 언어를 상업용으로 설계했고 표준화를 위한 움직임은 언어 수용을 위한 엔지니어링 분야의 노력인 동시에 마케팅 분야의 노력이기도 하다. Verilog 2005와 VHDL 200x는 IEEE를 제정한 전문가 학회 중 하나인 컴퓨터 소사이어티(Computer Society)의 전통적인 전략을 따르고 있다. 즉, 먼저 엔지니어링 분야의 노력을 통해 표준을 개발한 다음 그 표준의 마케팅을 실시하는 것이다. 그 결과 IEEE가 개발한 언어 중 어느 하나를 지원하는 툴은 아직 존재하지 않는다. 몇몇 EDA 벤더가 VHDL 구현에 PSL을 지원함으로써 이 접근 방식에 예외를 만들고 있다.

그 동안 이 전략은 다른 쪽에 비해 상업적으로 성공을 거두지 못한 것으로 입증됐다. 예를 들면, VHDL과 Verilog의 경우, VHDL은 VHDL의 일부분이라도 사용한 EDA 툴은 어느 것이든 표준화 이전에 사용할 수 없었다는 점 때문에 상업적인 손실이 컸던 반면 Verilog는 개발 단계에서도 적극적인 지원을 누렸다. 그러나 EDA 벤더는 IEEE 개발 프로세스가 언어 구성 방법에 관한 엔지니어링 측면의 뛰어난 통찰력을 제공하고 밝혀내기 어려운 고객의 기호를 알려 주므로 IEEE 개발 프로세스에 적극 투자하려 할 것이다.

Synopsys는 SystemC 개발의 진정한 원동력이었다. Synopsys 초기 언어 개발은 독자적이었지만 Synopsys는 재빨리 Cadence가 Verilog에서 개발했던 전략을 따랐다. Synopsys는 업계 컨소시엄 Open SystemC를 형성했는데 이는 Verilog의 성공을 이끌어낸 컨소시엄인 OVI(Open Verilog International)와 유사했다. Open SystemC는 EDA 벤더의 후원을 받는 컨소시엄은 언어를 빨리 수용하는 데 도움이 되지 못한다는 것이 분명해지자 OSCI로 변모했다. 그 과정에서 Synopsys는 두 주요 경쟁사인 Cadence와 Mentor의 폭넓은 참여를 위해 OSCI의 정책과 방향에 관한 권한을 상당 부분 포기했다. SystemC는 Verilog만큼 인기를 얻지 못하고 있는데 그 이유는 시장이 작기 때문이기도 하고 사용할 수 있는 툴이 시스템 설계와 하드웨어 설계의 간극을 제대로 메워주지 못하고 있기 때문이기도 하다.

포괄적인 SystemC 툴 목록은 OSCI 웹 사이트에서 구할 수 있지만 일부 업체는 SystemC 사용에 RTL(register-transfer-level) 방법론을 결합시키는 제품을 개발했기 때문에 특히 주목할 필요가 있다. Cadence, EVE(Emulation and Verification Engineering), Mentor, Synopsys, TNI-Valiosys 등 업체들은 엔지니어들이 한 설계에서 SystemC 모델을 VHDL, Verilog 모델과 함께 사용할 수 있게 해주는 혼합형 언어 시뮬레이터를 제공했다. CoWare는 SystemC 시장에 일찍 진출했다. 다수의 시스템 업체들은 ConvergenSC 제품이 설계와 검증에 공통의 인프라를 사용하기 때문에 이 제품을 선택했다. ConvergenSC는 OSCI가 무상으로 제공했던 정식 시뮬레이터의 첫 번째 대안이었다. 예상대로 대체 시뮬레이터(ConvergenSC)는 상업용 애플리케이션용으로 유용한 툴이 되기에는 너무 기능이 적었다. Forte Design Systems는 웹상에 유용한 안내서 역할을 할 SystemC 자습서를 무료로 제공한다. Forte Design Systems의 Cynthesizer 합성 툴을 사용하면 디자이너는 SystemC 번역을 Verilog나 VHDL로 변환하여 SystemC 모델에서 하드웨어를 생성할 수 있다.(참고 자료 1).

많은 EDA 벤더들이 SystemVerilog 지원 툴을 개발하고 있다. 발표된 툴 대부분은 6월에 열렸던 설계 자동화 회의의 상업용 툴이 되었다. Real Intent, Synopsys, 0-In은 형식 검증 제품 계획을 발표했다. Novas, SynaptiCAD, Synopsys는 테스트벤치 및 디버깅 툴을 지원할 예정이다. Aldec, @HDL, Synopsys는 시뮬레이터를 제공할 것이다. Axis Systems는 에뮬레이션 제품과 관련된 언어를 지원할 예정이다. Bluespec, Cadence, Mentor는 제품 제안의 성격을 명시하지 않았지만 Cadence와 Mentor 모두 최소한 이 언어의 시뮬레이션을 지원할 것으로 기대해도 좋겠다.

Verilog 2005에 대한 상업적 지원은 아직 없지만(발표 당시), Fintronic, Jeda Technologies, Verisity 모두 연구 그룹에 공여한 기술을 구현하는 제품을 제공한다. Fintronic은 FinSim 제품에서 Verilog를 따로 컴파일하는 기능을 채용했고, Jeda Technologies는 Jeda-X를 테스트벤치 개발 툴로 시장에 내놓았으며, Verisity는 e language를 기반으로 자사 검증 제품을 위한 기술을 개발했다. 한편 Cadence는 검증 제품 전 라인에 공여 기술의 일부를 채용했다.

저자

EDN의 테크니컬 에디터인 Gabe Moretti의 연락처는 전화 1-941-497-9880, 팩스 1-941-497-9887, 이메일
gmoretti@edn.com이다.


시스템이라는 별칭이 필요 없는 VHDL
글: Stephen Bailey, Mentor Graphics

EDA 업계에 시스템 레벨 설계를 다루는 새로운 언어나 개정 언어가 쏟아져 나오고 있다. 이들 언어는 주로 시스템이라는 접두사를 달고 있는 것이 특색이다. 신기하게도 VHDL 커뮤니티는 "SystemVHDL" 개정 작업에 대해 알린 적이 없다. 하지만 이렇게 홍보를 하지 않는다고 해서 VHDL이 앞으로 개선 계획이 없어 뒤쳐질 것이라는 것을 의미하지는 않는다. 오히려 VHDL 언어의 개정 노력으로 더 수준 높은 고급 설계 및 검증 기능을 VHDL에 가져올 것을 약속하고 있다. VHDL은 역사적으로 고급 HDL 기능의 선두 주자였기 때문에 설계 과정에서의 광범위한 사용이 RTL(register-transfer level)보다 더 추상적이라는 사실이 밝혀졌다. 그래서 VHDL 개정안을 "SystemVHDL"이라고 부르게 되면 VHDL이 다른 HDL과 같은 심각한 결함이 있었다는 것을 내포하게 된다. 개정 작업은 VHDL의 논리적인 연장선상에서 이루어지므로 IEEE는 새 천년에 처음 이루어지는 중요한 개정 작업이라는 점을 들어 VHDL 개정 작업을 특별히 인식하여 VHDL 200X라고 부른다.

VHDL 200X 개발 계획에는 상위 레벨의 모델링 추상화를 촉진하는 개선 작업이 있으며 디자이너 생산성 향상, 상위 레벨의 추상화 기능, 복잡성 감소, 설계 의도 파악 개선 등도 포함된다. 또한 계획에는 현재 어렵거나 불가능한 모델링을 가능하게 하는 기능, 검증 생산성, 어서션 기반 검증, 자극 생성, 고차원 모델링(참조 모델과 트랜잭션 레벨 모델링)도 포함된다.

설계 생산성을 높이기 위해 VHDL은 견고한 데이터 형식 체계를 제공하는데, 여기에는 사용자 정의 형식인 열거, 부호 있음(signed), 부호 없음(unsigned), 비트, 비트 벡터, 정수와 제한된 정수, 리얼(real), 액세스(포인터)와 레코드 형식 등이 포함된다. VHDL은 해당 데이터 값(형식)에 사용자 정의 조작을 가해 데이터 값을 암호화하는 보호(protected) 형식을 정의하지만 완전한 개체 지향 기능은 누락되어 있다. 1076 위원회는 모델의 형식 및 서브프로그램의 매개변수화를 허용하기 위해 상속과 향상된 ‘generic’ 추가 방법을 확인하기 위한 노력을 기울이고 있다. 향상된 개체 지향 기능도 여러 레벨의 추상화 단계에서 인터페이스 모델링 발전을 촉진시킬 것으로 예상된다. 이러한 개체 지향 특성을 추가하면 모델링에서 추상화 레벨을 높일 뿐 아니라 설계 재사용 레벨을 높이는 데도 크게 도움이 될 것이다.

또한 연구 그룹은 VHDL의 정적 검증 기능을 손상시키지 않으면서 필요한 입력량을 줄이는 방법도 모색하고 있다. VHDL의 강력한 입력과 결정론적 시뮬레이션 의미론은 경합 조건, 잘못된 배열 인덱스, 잘못된 값 범위 등과 같은 문제를 예방하고 빨리 식별한다. 이런 특성은 검증 시간을 절약해 주는데 검증이 설계 시간의 70%를 차지하기 때문에 검증과 디버깅 작업이 크게 줄어든다.

많이 향상된 기능이 디자이너의 입력 부담을 줄여주는 동시에 설계 의도를 더 잘 파악할 수 있게 해준다. 프로세스의 결합과 순차적 속성에 기초하여 프로세스 민감도를 정확하게 파악하는 것 가장 좋은 예다. 아키텍처를 별도로 작성할 필요성을 없애는 것도 한 예다. 이런 변화의 대부분은 VHDL 언어에 상대적으로 미미한 영향을 미치지만, 디자이너의 VHDL에 대한 경험을 쌓는데는 중대한 영향을 미친다.

매우 드문 경우이긴 하지만 VHDL은 하드웨어 기능 모델링에 필요한 기능을 제공하기도 한다. 이 경우의 대표적인 예가 점퍼 또는 양방향 패스 스루(pass-through) 스위치를 모델링하는 기능이다. 연구 그룹은 이 문제도 다루고 있다.

VHDL의 검증 생산성을 높이기 위해 연구 그룹은 Accellera의 PSL(Property Specification Language)을 VHDL의 속성-사양 기능으로 채택할 계획이다. PSL을 다음과 같이 여러 용도에 사용할 수 있다.

  • 검증 과정에서 유지해야 하는 특성 정의(어서션)
  • 검증 과정에서 테스트해야 하는 기능 정의(기능적인 대상 범위)
  • 입력 제한, 올바른 시퀀스, 올바른 시퀀스 조합 명시(자극 생성)

개체 지향 기능 향상은 두 가지 이점이 있다. 검증 기능과 설계 생산성을 모두 개선시키기 때문이다. 개체 지향 방법은 다음과 같은 작업을 간소화해 준다.

  • 여러 추상화 단계에서 그리고 한 설계에서 다른 설계로 재사용할 수 있는 테스트벤치(검증 인프라) 작성
  • 검증 과정에서 참조 모델로 사용되는 수준 높은 모델 작성
  • 트랜잭션과 스코어보드 같은 공통적인 검증 데이터 구조 모델

검증 생산성을 높이기 위해 계획한 개선 기능은 다음과 같다.

  • 동적 프로세스 생성/소멸
  • 속성을 사용하여 자극 생성을 유도하기 위한 중량 조합을 명시하는 기능
  • 테스트벤치의 기능 대상 범위의 데이터 액세스로 반응성 테스트벤치 작성 허용
  • 테스트벤치로 설계 회로 어디서나 신호를 검사하고 실행할 수 있는 표준화된 신호 액세스 기능
  • FIFO와 연관 배열(associative array) 같이 사전에 정의되어 공통으로 사용하는 검사기와 데이터 형식 라이브러리
  • 보다 추상적인 프로세스 간의 통신 메커니즘

다음번 언어 개정 버전을 SystemVHDL이라고 부르지는 않지만 개정안은 설계 품질과 검증 생산성을 개선할 속성-사양과 검증 자동화 기능 뿐만 아니라, 보다 수준 높은 모델링과 추상화 기능을 제공할 것이다.

표1-언어 사양



저자

Stephen Bailey는 Mentor Graphics의 기술 마케팅 엔지니어이자 IEEE 1076 워킹 그룹의 회장이다.

요약 내용

  • 모델링 언어는 전자 시스템 레벨 설계에 사용하기에는 부족한 면이 많다.· SystemC, SystemVerilog, Verilog 2005는 많은 공통적인 사양을 갖고 있다.
  • 연구 그룹에서는 SystemVerilog과 Verilog 2005를 단일 언어로 병합하려 한다.
  • 연구 그룹은 또한 VHDL에 사양을 추가하고 있다.

추가 정보

본 기사에 나온 제품에 대한 정보가 필요할 경우에는 아래의 업체에 문의하시면 됩니다. 문의하실 때에는 EDN을 통해 제품을 알게 됐다고 알려 주시길 바랍니다.

Accellera
www.accellera.org

Aldec
www.aldec.com
1-800-487-8743

@HDL
www.athdl.com
1-408-441-1317

Axis Systems
www.axiscorp.com
1-408-588-2000

Bluespec
www.bluespec.com
1-781-250-2200

Cadence Design Systems
www.cadence.com
1-800-746-6223

CoWare
www.coware.com
1-888-269-2738

EVE
www.eve-team.com
1-888-738-3872

Fintronic
www.fintronic.com
1-650-349-0108

Forte Design Systems
www.forteds.com
1-800-585-4120
Jeda Technologies
www.jedatechnologies.com
1-650-964-5332

Mentor Graphics
www.mentor.com
1-800-547-3000

Novas
www.novas.com
1-408-467-7888

OSCI
www.systemc.org

Real Intent
www.realintent.com
1-408-982-5444

SynaptiCAD
www.syncad.com
1-540-953-3390

Synopsys
www.synopsys.com

TNI-Valiosys
www.tni-valiosys.com
1-408-203-2500

Verisity
www.verisity.com
1-650-934-6800

0-In Design Automation
www.0-in.com
1-408-487-3640

<출처 : http://www.ednkorea.com>

by 이별사랑 | 2007/01/16 15:23 | SoC 이야기 | 트랙백(37) | 덧글(352)


<< 이전 페이지 다음 페이지 >>


메모장
최근 등록된 덧글
<a href= http://coin-pu..
by Kids Coin at 07/22
paxil online <a href="h..
by paxil at 07/22
cheap viagra online <..
by cheap viag at 07/22
diflucan online <a hr..
by diflucan at 07/22
order cialis online <a ..
by order cial at 07/22
최근 등록된 트랙백
Buy percocet and gree..
by Buy percocet.
Phentermine cash on de..
by Phentermine weight loss.
Phentermine 37.5 mg onlin..
by Phentermine 37.5 mg onlin..
Buy tramadol online cod.
by Buy tramadol with ameri..
Off for tramadol online free..
by Cheap tramadol fedex o..
이글루링크
rss

skin by 이글루스