멀티코어 프로세서나 FPGA와 같이 점점 더 복잡해지는 시스템 및 기술로 인해 기존 설계 방법들이 무용지물이 되었다는 사실을 한 번쯤 들어봤을 것이다. 따라서 새로운 접근방법이 필요한데, 이는 복잡성을 다룰 수 있는 시스템 레벨 추상화의 방법론과 개념설계에서 실제 구현까지 비용 및 시간이 많이 소요되는 과정을 자동화할 수 있는 도구가 있어야 한다.
전자 시스템 설계에서 시스템 최적화
글│Ken Karnofsky
, 신호처리 및 통신 부문 총괄 기술마케팅 이사
, 매스웍스
멀티코어 프로세서나 FPGA와 같이 점점 더 복잡해지는 시스템 및 기술로 인해 기존 설계 방법들이 무용지물이 되었다는 사실을 한 번쯤 들어봤을 것이다. 따라서 새로운 접근방법이 필요한데, 이는 복잡성을 다룰 수 있는 시스템 레벨 추상화의 방법론과 개념설계에서 실제 구현까지 비용 및 시간이 많이 소요되는 과정을 자동화할 수 있는 도구가 있어야 한다.
프로세서 중심의 SoC 설계와 검증분야에서 전자 시스템 레벨(ESL) 방법론은 이러한 몇 가지 문제들을 해결하는 데 도움이 된다. 몇 년 전에 EDA 분석가인 Gary Smith가 ESL이라는 개념을 만들어내면서 다양한 접근방법과 상용 도구들이 소개되었다. 이러한 도구를 통해 하드웨어 설계자들이 복잡한 SoC 아키텍처를 모델링 할 수 있어, 하드웨어가 만들어지기 전에 소프트웨어 개발자들이 코드를 작성할 수 있게 되며, 경우에 따라 하드웨어 구성요소의 구현에 도움을 줄 수 있다.
그러나 대다수 좁은 범위의 ESL 접근방법과 도구의 채택에는 제한이 따르다. 복잡한 시스템을 개발하는 데 있어서 소요되는 시간, 비용 및 오류를 획기적으로 줄이기 위해서 SoC를 뛰어넘는 단계의 포괄적인 방법론이 필요하다. 새로운 방법은 다음과 같다.
- 하드웨어와 소프트웨어 설계가 기능적으로 올바르고 실제 요구사항을 충족해야 한다.
- 시스템 설계자들이 가능한 개발 초기에 정확한 설계를 할 수 있도록 도움을 줌으로써 문제가 되는 부분을 미연에 방지할 수 있도록 한다.
- 디지털, 아날로그, 전자 기계와 다른 서브시스템 사이의 통합 문제를 예측한다.
- 설계개념과 하드웨어 및 소프트웨어 구현 사이의 프로세스 격차를 없애야 한다.
- 점차 늘어나는 검증 비용을 줄여야 한다.
빠르게 변화하는 시장에서 경쟁해야 하는 반도체 회사들과 반도체 공급 업체가 해당 응용분야의 요구사항들을 충족시켜주는 디바이스를 제공하는지 보증해야 하는 전자분야 OEM 회사의 경우에는 이러한 문제를 해결하는 일이 매우 중요하게 되어가고 있다.
Gary Smith는 자신의 ESL 연구에서 ‘설계자 작업대(Architect’s work-bench)’의 중요성에 대해 언급했지만 이는 대답의 일부분일 뿐이다. 모델 기반 설계는 시스템 개발 과제에 보다 완벽한 솔루션을 제공하기 위해 이러한 개념을 확립하며, 이러한 접근방법을 채택하는 회사들은 50% 이상의 시간절약의 효과를 기대할 수 있고, 도구에 대한 투자의 10배에 해당하는 수익을 가져올 수 있기를 기대하고 있다.
모델 기반 설계(Model-Based Design)는 네 가지 요소, 즉 원하는 동작이나 참조 설계 모델링, 시뮬레이션을 통한 설계의 진단과 개선, 코드 생성을 통한 구현, 개발 과정 전반에 걸친 지속적인 테스트와 검증으로 구성된다. 이러한 요소들은 엔지니어들이 설계부터 구현 및 검증까지의 과정을 체계적으로 진행하고 기능 및 물리적 요구사항을 명확하게 설명하는 실행 가능한 시스템 모델을 활용하여 오늘날의 전자 시스템에 관한 설계 및 검증 문제를 해결한다.
모델 기반 설계의 필요성
모델 기반 설계는 아날로그, 디지털, 소프트웨어 부분을 각기 설계하는 개발팀에게 이들 구성요소의 모델과 운용환경을 같이 사용함으로써 서로 협력할 수 있게 한다. 이러한 모델은 단지 IP 블록에 국한되지 않으며 다양한 추상화 단계에서 시스템 요소를 나타낼 수 있다. 따라서 각 엔지니어링 팀은 복잡한 통신 및 멀티미디어 기술을 최적화하는 데 필요한 설계 진단과 반복 작업을 수행하면서, 동시에 해당 구성요소들이 요구사항을 충족하는 전체 시스템에 통합될 것이라는 걸 보증할 수 있다. 또한 엔지니어들은 문제를 조기에 발견하고 해결하며, 설계의 어떤 부분이 유용하지 않다고 하는 경우에도 이를 제외한 일부의 시스템 상에서 작업할 수 있다.
기존의 설계 절차에서는 설계가 완전히 구현될 때까지 전체 시스템을 체계적으로 테스트할 수 없었다. 그 결과, 시스템 개발의 후반부에 이르러서도 결함이 나타나지 않았으며, 이러한 결함을 해결하는 데 많은 비용이 소요되고 실패 가능성이 많았다. 이에 반해 모델 기반 설계는 개발 초기부터 시스템 테스트 및 디버깅할 수 있으며 그 결과, 대부분의 결함이 발견된다. 모델은 시뮬레이션을 통해 초기에 확인되고 구성요소 모델이 후에 추가로 세부적인 구현이 상세화될 때 지속적으로 검증할 수 있다. ESL 모델뿐만 아니라 C, HDL 및 SPICE 모델의 구현도 기존의 워크플로우, 설계 재사용 및 최종 통합 테스트를 지원하기 위해 통합할 수 있다. 서로 다른 설계 팀에서 만들어진 구성요소는 사용 가능해지면 통합할 수 있으므로, 어떤 변화도 시스템 성능을 저하시키지 않고 잘못된 구성요소에서 결함을 빠르게 제거할 수 있다.
기존의 설계 절차에서 설계오류와 지연을 발생시키는 또 다른 요인은 개념도입에서 설계 및 구현에 이르는 과정을 수작업으로 수행하므로 서 발생한다. 일반적으로 알고리즘 개발자들은 부동소수점 알고리즘을 MATLAB으로 개발한다. 시스템 설계자는 알고리즘을 C 언어로 다시 코딩하고 동시에 고정소수점 코드로 변환한다. 이러한 알고리즘은 임베디드 소프트웨어나 하드웨어의 구현을 위해 또 다시 변환되어 코딩된다. 이러한 과정을 거치게 되면 많은 시간과 노력이 소모되고 오류를 발생시키며 설계 반복 작업을 어렵게 하고 구현된 부분이 참조 알고리즘과 일치하는지 확인하기 위한 별도의 검증 과정도 필요하다.
모델 기반 설계는 이러한 문제를 세 가지 방법으로 해결한다. 첫 번째, C 또는 HDL 코드는 구성요소 모델로부터 또는 기존에 구현된 부분을 다시 사용함으로써 자동으로 생성될 수 있다. 이 접근방법은 수동으로 코드를 생성할 때 발생하는 오류를 제거하고, 구현 방법을 하드웨어 혹은 소프트웨어 중에 하나로 선택하는 데 있어 유연성을 제공하며, 또한 기존의 구현 플로우와 같은 환경에서 작업이 이루어진다. 두 번째, 구성요소 모델은 수동으로 코딩된 C 또는 HDL을 검증할 때 ‘중요한 참조’ 역할을 수행한다. 세 번째, 시스템과 환경 모델은 구현이 수작업으로 코딩 되었거나 자동으로 생성되었는지 여부에 관계없이 시뮬레이션 데이터와 함께 구현을 위한 테스트 벤치가 될 수 있다.
그림 1. Model-Based Design Workflow
결론
모델 기반 설계는 시스템 개발의 다양한 관점에서 이를 통합하고 가속화시킨다. 모델 기반 설계를 채택하는 것은 변화를 관리하는 데 있어 이점을 극대화한다. 모델 기반 설계를 새로 도입하는 조직은 일반적으로 IP 및 노하우를 다시 사용할 수 있는 기회가 점차 줄어드는 기존 프로세스뿐만 아니라 이를 유지해야 하는 기존 프로세스의 요소에서도 품질 문제와 생산성 저하의 근본 원인을 규명하는 것부터 시작한다. 이와 같이 진행함으로써 첫 번째 프로젝트는 문제점을 최소화하면서 신속한 결과를 가져오며 프로젝트, 팀 및 업무에 걸쳐 해당 방법론을 도입함에 따라 ROI는 크게 늘어나게 되는 것이다.