2007년 11월 28일 수요일

IC 설계에 지름길 제공해주는 HDL 코더

게재: 2006년 11월 01일
리차드 괴링

지금까지 IC 설계에서 당당한 행보를 해온 MathWorks사가 Simulink HDL 코더를 내놓았다. 이것은 자동으로 Simulink 모델과 Stateflow 다이어그램으로부터 합성 가능한 Verilog과 VHDL을 생성한다. 이러한 행보는 수천 Matlab 및 Simulink 유저들에게 FPGA 또는 ASIC 구현으로 가는 직접적인 경로를 제공한다.

MathWorks는 큰 사용자 기반을 가지고 이미 부상하고 있는 ESL 설계 시장의 경쟁자가 되었다. 회사에 따르면 새로운 링크로 유저들은 Matlab과 Simulink로 시스템 모델들과 알고리즘을 설계하고, 시뮬레이팅하며, 타당성을 입증할 수 있다고 한다. 또한, 자동으로 하드웨어와 소프트웨어 모두를 생성하며, 오리지날 시스템과 알고리즘 모델에 대해 HW/SW 구현물을 검증한다.

HDL Coder는 테스트벤치와 합성 및 시뮬레이션 스크립트들과 함께bit-true, cycle-accurate IEEE 1364-2001 Verilog과 IEEE 1076 VHDL을 생성해낸다. 옵션으로 ModelSim으로의 링크도 가지고 있어 Mentor Graphics 시뮬레이터 유저들은 HDL 코드를 다시 공동 시뮬레이션을 위한 Simulink로 되돌려 놓을 수 있다. 옵션인 Stateflow 제품으로는 유저들이 유한상태머신(FSM)으로부터 제어 로직을 생성시킬 수 있으며, 거기에 더하여 Simulink 모델들로부터 데이터 경로 로직을 생성시킬 수 있다.

신호 처리와 통신 부문 마케팅 디렉터인 Ken Karnofsky 씨에 의하면 고객들은 MathWorks 제품으로 설계를 시작하고 그리고 나서 HW/SW를 구현한다고 한다. "디바이스에 독립적으로 Simulink 모델들을 디자인의 HDL 레벨로 옮겨달라는 고객들의 요구가 꽤 있다. 지금까지의 기능들은 디바이스 벤더의 기술에 특정되는 경향이 있었다."

Karnofsky 씨는 그러나 Xilinx사가 지난1월 Matlab-to-HDL 공급업체인 Accelchip을 인수한 사실이 HDL 코더를 내놓는데 작용한 것은 아니라고 말했다. "우리는 수년 전부터 이러한 접근 방식과 전략을 준비해왔다"고 그는 설명했다. 그리고 MathWorks는 이미 Simulink 모델들로부터 디지털 필터들을 위해 RTL 코드를 생성시키는 성공적인 제품을 가지고 있었다고 지적했다. 고객들은 그러한 능력이 더 일반적인 방식으로 확장되기를 원한다고 그는 덧붙였다.

Karnofsky 씨에 의하면 HDL Coder 유저들에는 하드웨어 스펙에 간섭하지 않을 더 나은 방법을 필요로 하는 시스템 엔지니어들과 알고리즘 엔지니어들이 포함될 것이라고 한다. HDL Coder는 또한 이미 Simulink로 된 IP를 가지고 있는 이들과 FPGA 구현을 추구하는 DSP 엔지니어들에게도 호소력이 있을 것이라고 한다.

Karnofsky 씨는 Simulink에서 HDL로의 링크에 대해서는 ASIC 개발자들보다 FPGA 디자이너들이 더 많이 관심을 갖고 받아들이고 있다고 말했다. 그러나 그는 ASIC 커뮤니티의 시스템 아키텍트들이 Simulink를 이용하고 있으며, HDL Coder의 베타 테스터들은 FPGA 디자이너와 ASIC 디자이너가 거의 반반씩 섞여 있다는 사실에 주목했다.

HDL을 생성하던 이전의 Simulink add-on들은 고유의 블록셋과 IP 라이브러리들을 필요로 했다고 Karnofsky 씨는 말했다. 이와는 대조적으로 HDL Coder로는 유저들이 표준 Simulink 블록들을 가지고 설계한다. 이것은 하드웨어와 소프트웨어에 대해 개별적인 모델들을 갖게 되는 일을 피하고, 골든 레퍼런스 디자인을 대표하는 단일 모델을 가질 수 있도록 해준다고 그는 강조했다.

HDL 코드를 생성하기 위하여 디자이너들은 자신들이 원하는 구현을 명시하는데 GUI 또는 스크립팅 메커니즘을 이용한다. 한 콘트롤 파일이 파라미터들을 설정하고 직렬로 구현할 것인지, 아니면 종속 연결이나 병렬로 구현할 것인지를 지정할 수 있게 해준다. 유저들은 극성과 유형, 리셋 신호의 포트 이름과 더불어 Verilog이나 VHDL 등 특정 언어에 해당하는 옵션들을 선택할 수 있다.

이것은 행동 합성은 아니라고 Karnofsky 씨는 말했다. 그 이유는 Simulink가 시간의 관념을 가지고 있기 때문이다. HDL Coder는 untimed 디스크립션으로 시작하지 않는다. 그럼에도 불구하고 변환은 일어난다.

"Simulink는 자체 클럭을 가지고 있지만 이것은 Simulink 엔진을 통해 실행되는 샘플 속도에 상대적인 속도를 가지며, 칩의 클럭 속도와 동일하지 않다"고 Karnofsky 씨는 말했다. "변환은 Simulink 시간에서 칩의 실제 클럭 시간으로 이루어진다."

HDL Coder는 전체 칩이 아니라 Verilog이나 VHDL을 생성할 것이다. 이것은 데이터 경로나 알고리즘 집약적 디자인을 위한 것이라고 Karnofsky 씨는 말했다. 그러나 꼭 그러한 디자인에 한정될 필요는 없다고 한다.

합성 가능한 VHDL과 Verilog에 더하여 HDL Coder는 어떤 시뮬레이션 툴로도 읽을 수 있는 테스트벤치를 제공한다. HDL Coder는 또한 Synplicity의 Synplify Pro 합성툴과 Mentor의 ModelSim을 위한 스크립트들을 만들어낸다.

ModelSim 제품에 대한 MathWorks사의 링크로 유저들은 레거시 HDL 코드를 가져가 Simulink 환경에서 공동 시뮬레이팅 할 수 있다. 그러면 새로 생성되는 HDL은 레거시 HDL을 포함하게 된다. 그러나 이것은 ModelSim 시뮬레이터 유저들에게만 통한다.

모든 자동 생성 코드에 드는 질문 한 가지는 이것이 사람 손으로 만든 코드와 품질 면에서 어떻게 비견되는가 하는 것이다. "이 코드는 잘 구조화되고 해설되어있다"고 Karnofsky 씨는 말했다. "우리 고객 중에는 판독성과 품질에서 매우 만족하는 이들도 있다"고 그는 덧붙였다.

그러나 Karnofsky 씨는 "우리의 첫번째 제품이 전문적인 HDL 최적화와 동등하다고 주장하는 것은 아니다"라고 말했다. "나는 20년 이상 칩을 설계해 왔다"면서 MathWorks의 HDL 제품 매니저 Sudhir Sharma 씨는 "내 경험으로는 핸드 코딩으로 달성할 수 있는 품질에는 넓은 범위가 있다. 그러나 여기서는 모든 것이 Simulink 모델의 하이 레벨에서 캡처되기 때문에 RTL에 대해서는 별로 걱정하지 않아도 된다. Simulink 모델을 유지 관리하고 있더라도 시스템을 이해하기 위하여 코드를 판독하지 않아도 된다."

HDL Coder의 판매가는 1만 5,000달러이다. 유저들은 Matlab, Simulink, Fixed Point Toolbox 및Simulink Fixed Point를 이미 가지고 있어야 한다. 권장되는 제품은 Stateflow, Link for ModelSim, Signal Processing Toolbox, Signal Processing Blockset, Filter Design Toolbox가 있다.


Simulink는 HDL에 묶여있다. HDL Coder는 RTL Verilog과 VHDL을 생성시킨다.

- 출처: http://www.eetkorea.com/ART_8800439860_480103_NT_ac790059.HTM

댓글 없음: