http://www.plunify.com/ |
Plunify는 Cloud Accelerated Chip Design이라는 모토를 가지고 있습니다. 하지만 사이트를 살펴본 결과 아직까지는, 다음과 같은 FPGA compile에 관련된 3가지 서비스만을 제공하는 것으로 보입니다.
- FPGAAccel Web
Cloud 위에 있는 머신에서 Altera Quartus II Web Edition을 돌리는 것으로, 사용자는 web browser로 해당 작업을 제어할 수 있게 만든 서비스입니다.
- Explorer++(Beta)
Xilinx ISE의 SmartXplorer의 동작을 cloud 상의 여러 머신에 나누어 돌릴 수 있게 하는 기능입니다. Xilinx ISE가 제공하는 SmartXplorer는 조건(?)을 바꾸어 가며 compile을 여러번 돌려서 좋은(timing/area 등의 측면에서) 결과를 찾는 기능인데, 당연히 여러 머신에 나누어 돌릴 수 있으면 더 빠른 결과를 볼 수 있겠습니다. Plunify는 이 서비스를 위해 별도의 client software를 제공하고, 그 client software가 사용자의 머신에 있는 Xilinx ISE와 연동하여 동작하는 형태를 가집니다.
- FPGAAccel Client
Client software를 통해 shell 환경에서 Altera Quartus II Web Edition을 돌릴 수 있게 하는 서비스입니다. Shell 환경을 web browser 위에서 제공하지 않고 왜 별도의 client software로 처리하는지는 알 수 없지만, SmartXplorer와 마찬가지로 shell 환경으로 option을 바꾸어 가며 compile을 여러번 수행하여, 원하는(좋은) 결과를 찾는 것을 목적으로 하는 것으로 보입니다.
FPGA 설계를 하다 보면 timing이나 area 문제로 인해 고통 받는 경우가 종종 있습니다. 보통의 경우 설계해야 하는 기능이 빡빡하게 들어갈 만한 크기(LUT 갯수)의 FPGA를 선택하게 되므로, area의 여유가 많이 있을 수가 없습니다. 그런데 area의 여유가 줄어들게 되면, 자연스럽게 timing 문제가 생기는 경우가 많습니다. FPGA는 특성상 대부분의 timing delay가 logic cell이 아니라 routing에서 발생하는데, 설계가 커질수록 routing resource가 줄어들어 delay가 커질 가능성이 크기 때문입니다. 아주 이상한 경우에는 critical path에 logic은 두어 단계만 존재하고 routing delay만 매우 커서 해당 부분의 rtl을 변경해도 줄일 수 없는 경우도 있습니다.
위와 같은 문제가 있는 경우 컴파일 옵션을 변경하거나 RTL의 일부를 변경하며 컴파일을 여러번 돌려 해결을 시도하게 됩니다. Plunify는 이런 경우 작업자의 머신이 아니라 cloud위에 있는 머신에서 병렬적으로 돌릴 수 있게 해주는 서비스라고 할 수 있습니다.
그런데 아직까지는 사용하는 데 여러 제한 사항이 있어 보입니다. 우선 Software license 문제로 추측됩니다만, Xilinx ISE에 대한 지원이 Altera Quartus II와는 달리 부족합니다. 그나마 Altera Quartus II 조차도 Web edition 뿐으로 사용할 수 있는 FPGA가 제한 받습니다. 또한 3rd parity IP를 구매하여 사용할 경우, 일반적인 경우 개발 머신의 hostid를 이용하여 license file을 받게 되는데, Plunify에서는 어떻게 할 수 있는지 모르겠습니다.
위와 같은 제한 사항의 해결뿐 아니라, Plunify의 모토대로 Chip 설계 분야로 진입하기 위해서는 EDA tool vendor(FPGA vendor 포함), IP provider 등과 협상을 해야 할 것 같은데, 쉽지 않을 것 같습니다. EDA tool vendor의 경우에는 오히려 Plunify의 경쟁 서비스를 직접 만들 수도 있기 때문입니다. 결국 사용자를 많이 확보하여 협상력을 키우는 수 밖에 없을 텐데, 현재 제공되는 서비스만으로는 뭔가 부족한 느낌입니다. 어떻게든 가치 있는 여러 서비스들을 추가하면서 입소문을 내고 사용자를 모을 필요가 있어 보입니다. 어떻게 할 지 지켜볼 일입니다.