ÀÚÀϸµ½º´Â ¾÷°è ÃÖÃÊ SoC °µµ °³¹ß ȯ°æÀÎ ºñ¹Ùµµ µðÀÚÀÎ ¼öÆ® 2014.1(Vivado¢ç Design Suite 2014.1)À» Ãâ½ÃÇß´Ù. ºñ¹Ùµµ µðÀÚÀÎ ¼öÆ® 2014.1Àº ¿ïÆ®¶ó ÆÐ½ºÆ®(UltraFast)¢â µðÀÚÀÎ ±â¹ýÀÇ ÀÚµ¿È¸¦ È®´ë½Ã۰í, Æò±ÕÀûÀ¸·Î 25% ºü¸¥ ·±Å¸ÀÓÀ» ´Þ¼ºÀº ¹°·Ð ¸ðµç µð¹ÙÀ̽ºÀÇ ¼º´ÉÀ» 5% °³¼±½ÃÄÑÁØ´Ù. ¶ÇÇÑ ºñ¹Ùµµ HSL(High-Level Synthesis) ³»ºÎÀÇ OpenCL Ä¿³Î(Kernel) Çϵå¿þ¾î °¡¼Ó ±â´ÉÀÌ »õ·Î Ãß°¡µÇ¾ú´Ù.
ÀÚÀϸµ½º´Â ¿ïÆ®¶óÆÐ½ºÆ® µðÀÚÀÎ ±â¹ýÀ» »ç¿ëÇÏ´Â 2,500°³ ÀÌ»óÀÇ °í°´»ç¸¦ È®º¸Çϰí ÀÖÀ¸¸ç, ÀÌ µðÀÚÀÎ ±â¹ý¿¡ °üÇÑ ºñµð¿À Æ©Å丮¾ó ½Ãû¼ö´Â 30,000°Ç¿¡ ´ÞÇÑ´Ù. ÀÚÀϸµ½º´Â »õ·Ó°Ô °³¹ßµÈ ¿ïÆ®¶óÆÐ½ºÆ® ±â¹ýÀÇ ÀÎÁöµµ ¹× äÅÃÀ» ³ôÀÓÀ¸·Î½á µðÀÚÀ̳ÊÀÇ »ý»ê¼ºÀ» Áõ°¡½ÃÄ×´Ù. ¿ïÆ®¶óÆÐ½ºÆ® µðÀÚÀÎ ±â¹ýÀ» »ç¿ëÇϸé, ±âÁ¸¿¡ ¿©·¯ ´ÞÀÌ °É·Á ¿Ï¼ºµÇ¾ú´ø µðÀÚÀÎÀ» ´Ü ¸î ÁÖ ³»·Î ´ÜÃàÇÏ¿© ½Å¼ÓÇÏ°Ô ¿Ï¼ºÇÒ ¼ö ÀÖ´Ù.
À̹ø ¿¡µð¼Ç 2¿¡¼ ¿ïÆ®¶óÆÐ½ºÆ® µðÀÚÀÎ ±â¹ýÀº 28nm 7 ½Ã¸®Áî ¹× 20nm ¿ïÆ®¶ó½ºÄÉÀÏ µð¹ÙÀ̽º¸¦ Áö¿øÇÏ´Â ºñ¹Ùµµ(Vivado)¿ë Ãֽм±Áø ÇÁ·Î¼¼½º¸¦ Æ÷ÇÔÇϵµ·Ï È®ÀåµÇ¾ú´Ù. ÀÌ ¿ïÆ®¶ó½ºÄÉÀÏ ¾ÆÅ°ÅØÃ³´Â Àüü ¶óÀÎ ·¹ÀÌÆ®¿¡¼ ½º¸¶Æ® °øÁ¤À¸·Î ÃÊ´ç ¼ö¹é ±â°¡ºñÆ®ÀÇ ½Ã½ºÅÛ ¼º´É °ü¸®¿Í Å×¶óºñÆ®(terabit)¿Í Å×¶óÇ÷Ó(teraflop)À¸·Î È®ÀåÇÑ ÇÁ·Î±×·¡¸Óºí ¾ÆÅ°ÅØÃ³¿¡ ÷´Ü ASIC ±â¼úÀ» Àû¿ëÇß´Ù. ¶ÇÇÑ HLS°ú ºÎºÐ À籸¼º¿¡¼ºÎÅÍ ÄÉÀÌ´ø½º(Cadence), ¸àÅä ±×·¡ÇÈ(Mentor Graphics) ¹× ½Ã³ñ½Ã½º Ç÷οì(Synopsys flows)¸¦ ÀÌ¿ëÇÑ °ËÁõ±îÁö Æ÷ÇÔÇϰí ÀÖ´Ù.
ÇÑÆí ºñ¹Ùµµ µðÀÚÀÎ ¼öÆ® 2014.1´Â ÃֽŠÀÎÅÍ·¢Æ¼ºê(interactive) ŸÀÌ¹Ö ÄÁ½ºÆ®·¹ÀÎÆ® À§Àúµå¸¦ ÀÌ¿ëÇÏ¿© ¿À·ù Á¦°Å(correct-by-construction) ÄÁ½ºÆ®·¹ÀÎÆ®¸¦ ÀÚµ¿ÈÇϰí ÀÖ´Ù. À§Àúµå³»ÀÇ Áö´ÉÇü Äõ¸®µéÀº ºñ¹Ùµµ ´ÙÀÚÀÎ µ¥ÀÌÅͺ£À̽º¿¡¼ ÁÖ·Î IP Àç»ç¿ë¿¡¼ ºñ·ÔµÇ´Â ±âÁ¸ ÄÁ½ºÆ®·¹ÀÎÆ® »Ó¸¸ ¾Æ´Ï¶ó Ŭ·°Å·(clocking) ±¸Á¶µµ ÃßÃâÇÏ¿©, »ç¿ëÀÚ°¡ µðÀÚÀÎÀÇ ³ª¸ÓÁö ºÎºÐ¿¡ ´ëÇÑ ÄÁ½ºÆ®·¹ÀÎÆ®¸¦ Á¤È®ÇÏ°Ô ÁÙ ¼ö ÀÖµµ·Ï µµ¿ÍÁØ´Ù.
¶ÇÇÑ À̹ø ¸±¸®Áî¿¡¼´Â »õ·Î¿î ÀÚÀϸµ½º Tcl ½ºÅä¾î°¡ µµÀԵȴÙ. ÀÌ »õ·Î¿î ÀÚÀϸµ½º Tcl ½ºÅä¾î´Â À¯¿ëÇÑ ±â´ÉÀ» ¼öÇàÀÌ °¡´ÉÇÏ°í »ý»ê¼ºÀ» ³ôÀÏ ¼ö ÀÖ´Â ½ºÅ©¸³Æ®¸¦ ÀÚÀ¯·Ó°Ô °øÀ¯Çϰųª ÀÛ¼ºÇÒ ¼ö ÀÖ´Â µðÀÚÀÎ Ä¿¹Â´ÏƼÀÌ´Ù. Tcl ½ºÅä¾î´Â ºñ¹Ùµµ ÅëÇÕ µðÀÚÀΠȯ°æ(Vivado Integrated Design Environment)¿¡¼ ÀÌ¿ë °¡´ÉÇϸç, ¿ÀǼҽº(Open source) ÀúÀå¼ÒÀÇ ¿ªÇÒÀ» ÇÑ´Ù.
ÇØ´ç ¿ÀǼҽº ÀúÀå¼Ò¿¡¼ µðÀÚÀ̳ʵéÀº ºñ¹Ùµµ µðÀÚÀÎ ¼öÆ®ÀÇ ÇÙ½É ¼º´ÉÀÌ È®ÀåµÈ ±â´ÉÀ» ¼öÇàÇÏ´Â ½ºÅ©¸³Æ®¸¦ Ȱ¿ëÇÒ ¼ö ÀÖ°í, Åø Àü¹®°¡µéÀº º¸´Ù Å« »ç¿ëÀÚ Ä¿¹Â´ÏƼÀÇ È¿À²À» °³¼±ÇÒ ¼ö ÀÖ´Â Äڵ带 °øÀ¯ÇÒ ¼ö ÀÖ´Ù. ¸ÂÃãÇü º¸°í¼, ºÐ¼®, ÃÖÀûÈ, Åø Ç÷οì Á¦¾î ¹× µðÀÚÀÎ º¯°æ°ú °°Àº ±â´ÉÀ» Á¦°øÇÏ´Â Tcl ¾ÖÇø®ÄÉÀ̼ÇÀº Áö±Ý ¹Ù·Î ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.
ÇöÀç ¹«¼±, ÀÇ·á, ±¹¹æ, ¼ÒºñÀÚ µî ¾ÖÇø®ÄÉÀ̼ǿ¡¼ IP »ý¼º °¡¼Ó À§ÇÑ Ã·´Ü ¾Ë°í¸®Áò¿¡ »ç¿ëµÇ°í ÀÖ´Â ºñ¹Ùµµ HLSÀº RTLÀ» ¼öµ¿À¸·Î »ý¼ºÇÏÁö ¾Ê¾Æµµ C, C++, ½Ã½ºÅÛ C ½ºÆåÀ¸·Î ÀÚÀϸµ½º¢ç ¿Ã ÇÁ·Î±×·¡¸Óºí µð¹ÙÀ̽º¿¡ ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ºñ¹Ùµµ IP ÅëÇÕ ¹× ºñ¹Ùµµ HLSÀÇ Á¶ÇÕÀº RTL ¹æ½Ä°ú ºñ±³Çغ¸¾ÒÀ» ¶§, 15¹è Á¤µµÀÇ °³¹ß ºñ¿ëÀ» Àý°¨½ÃÄ×´Ù.
ºñ¹Ùµµ µðÀÚÀÎ ¼öÆ® 2014.1 ¸±¸®Á ÅëÇØ ºñ¹Ùµµ HLS´Â OpenCL Ä¿³ÎÀÇ Ãʱ⠾׼¼½º¸¦ Áö¿øÇϰí ÀÖ´Ù. OpenCLÀº ÀÌÁ¾ Ç÷§Æûµé¿¡¼ ½ÇÇàµÇ´Â Ä¿³ÎÀ» ¾µ ¼ö ÀÖ´Â ÇÁ·¹ÀÓ¿öÅ©¿Í ¾ð¾î¸¦ Á¦°øÇϸç, ÀÚÀϸµ½º ¿Ã ÇÁ·Î±×·¡¸Óºí µð¹ÙÀ̽º¿¡¼ ½ÇÇàµÇ´Â IP·Î ¸Å²ô·´°Ô º¯È¯ÀÌ °¡´ÉÇÏ´Ù.
¶ÇÇÑ À̹ø ¸±¸®Áî´Â ½Åȣó¸® ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇØ »õ·Î¿î ¼±Çü ´ë¼ö ¶óÀ̺귯¸®(linear algebra library)·Î ºñ¹Ùµµ HLS¸¦ È®Àå½Ã۸ç, ÃÍ·¹½ºÅ° ºÐÇØ(Cholesky decomposition), SVD(singular value decomposition), QR ÀμöºÐÇØ ¹× Çà·Ä°ö¼À(matrix multiplication)°ú °°Àº ±â´ÉÀ» ÇÊ¿ä·Î ÇÏ´Â C/C++ ¾Ë°í¸®ÁòÀÇ ºü¸¥ IP »ý¼ºÀ» °¡´ÉÄÉ ÇÑ´Ù.