{"id":9588,"date":"2017-09-08T10:20:32","date_gmt":"2017-09-08T10:20:32","guid":{"rendered":"https:\/\/www.techdesignforums.com\/practice\/?p=9588"},"modified":"2017-09-15T07:24:28","modified_gmt":"2017-09-15T07:24:28","slug":"how-hls-is-giving-shape-to-glasses-free-3dtv","status":"publish","type":"post","link":"https:\/\/www.techdesignforums.com\/practice\/technique\/how-hls-is-giving-shape-to-glasses-free-3dtv\/","title":{"rendered":"How HLS is giving shape to glasses-free 3DTV"},"content":{"rendered":"<p>High level synthesis (HLS) has become a popular choice for designs with a heavy bias toward video processing. One of the latest companies to follow the likes of Google and Nvidia down this path is SeeCubic, the R&amp;D subsidiary of Stream TV Networks.<\/p>\n<p>SeeCubic makes an interesting case study, and not just because it has developed an innovative glasses-free 3D display technology, <a href=\"http:\/\/www.seecubic.com\/vision\/\">Ultra-D<\/a>. The company runs lean; certainly it does not today boast the same level of resources as some of HLS\u2019 better-known users.<\/p>\n<p>The initial Ultra-D\u2019s implementation was achieved by a team comprising four core engineers, and three specialists who were brought aboard later on. There was consequently little scope to adopt HLS in a leisurely way<\/p>\n<p>The business challenges facing SeeCubic\u2019s were also highly relevant to its adoption of HLS, and again arguably more influential than they might have been for larger users. The salesforce needed an FPGA-based IP demonstrator to convince potential clients to incorporate Ultra-D as a block within their own SoCs. So, the demonstrator needed to show the technology working and provide metrics for potential clients (e.g. memory bandwidth requirements and silicon area costs).<\/p>\n<p>Here the fact that, as engineer Eric Leenman explains, \u201cHLS decouples the design from the technology\u201d was very important.<\/p>\n<p>That decoupling allowed SeeCubic to develop a C++ \u2018golden reference\u2019 template for its IP that could be fed into an HLS tool (here, <a href=\"https:\/\/www.mentor.com\/hls-lp\/catapult-high-level-synthesis\/\">Mentor\u2019s Catapult<\/a>) to generate RTL aimed at different process technology libraries. These could range from the Altera FPGA used for the demonstrator to the various processes at major foundries that could ultimately be used for customers\u2019 own silicon.<\/p>\n<h3><strong>Ultra-D<\/strong><\/h3>\n<p>Ultra-D is an innovative format for glasses-free 3D viewing and rendering. Existing 3D digital content can be converted to the format on-the-fly. Meanwhile, 2D content can undergo stereo conversion to 3D Ultra-D for later viewing.<\/p>\n<p>SeeCubic describes the its processing algorithm like this: \u201cThe light of individual sub-pixels is directed from the screen and projected into space; this generates virtual pixels. Virtual pixels merge in the space and form a complete view for each eye of the viewer. From that point the viewer\u2019s brain takes over processing both views in the same natural way, as it is used to in the real world, creating a natural 3D experience.\u201d<\/p>\n<p>The converted material can be viewed on a standard display once an extra stack of layers of refractive and diffractive optical elements has been bonded to it.<\/p>\n<div id=\"attachment_9591\" style=\"width: 660px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.techdesignforums.com\/practicefiles\/2017\/09\/HLS-SeeCubic-Fig1-1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-9591\" class=\"size-full wp-image-9591\" src=\"https:\/\/www.techdesignforums.com\/practicefiles\/2017\/09\/HLS-SeeCubic-Fig1-1.png\" alt=\"HLS 3DTV Feature: Figure 1. Ultra-D overview (SeeCubic)\" width=\"650\" height=\"644\" srcset=\"https:\/\/www.techdesignforums.com\/practice\/files\/2017\/09\/HLS-SeeCubic-Fig1-1.png 650w, https:\/\/www.techdesignforums.com\/practice\/files\/2017\/09\/HLS-SeeCubic-Fig1-1-150x150.png 150w, https:\/\/www.techdesignforums.com\/practice\/files\/2017\/09\/HLS-SeeCubic-Fig1-1-300x297.png 300w, https:\/\/www.techdesignforums.com\/practice\/files\/2017\/09\/HLS-SeeCubic-Fig1-1-32x32.png 32w, https:\/\/www.techdesignforums.com\/practice\/files\/2017\/09\/HLS-SeeCubic-Fig1-1-64x64.png 64w, https:\/\/www.techdesignforums.com\/practice\/files\/2017\/09\/HLS-SeeCubic-Fig1-1-96x96.png 96w, https:\/\/www.techdesignforums.com\/practice\/files\/2017\/09\/HLS-SeeCubic-Fig1-1-128x128.png 128w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/a><p id=\"caption-attachment-9591\" class=\"wp-caption-text\">Figure 1. Ultra-D overview (SeeCubic)<\/p><\/div>\n<p>The technology can be used across a range of panels from just a few inches to several feet. As noted earlier, SeeCubic\u2019s commercial objective is to market Ultra-D as an IP block for integration on multifunctional display SoCs.<\/p>\n<h3><strong>Choosing HLS<\/strong><\/h3>\n<p>As 2016 drew to a close, the Ultra-D technology was generating increasing interest. Companies as varied as Orange and Toyota had hosted demonstrations of the company\u2019s initial hardware prototype. The time had come to progress to an IP demonstrator.<\/p>\n<p>HLS rapidly emerged as an attractive design option because it would allow the team to address multiple challenges. As noted earlier, there were numerous commercial considerations. To those they now also needed to add, an ability to perhaps tweak the specification according to a potentially unforeseen customer request. Meanwhile from a technological point of view, the small design team wanted as much of its effort to be ready-for-primetime as possible.<\/p>\n<p>Eric Leenman particularly cites a presentation at DAC 2016 by Nvidia on the use of HLS in a video-heavy implementation \u201cWe knew the guy who was giving the presentation,\u201d he says, \u201cand that he knew what he was talking about.\u201d<\/p>\n<p>The main deliverables SeeCubic aimed to benchmark with HLS included:<\/p>\n<ol>\n<li>Faster design turnaround time.<\/li>\n<li>Reduced code output and thereby IP footprint.<\/li>\n<li>A portable model for use on different processes.<\/li>\n<\/ol>\n<p>To these ends, the company took an evaluation license for the Catapult HLS tool from Mentor, A Siemens Business, in January 2017. By February, the company had familiarized itself sufficiently with Catapult that it felt ready to move forward with a trial design covering one block within its entire IP package.<\/p>\n<p>At that point, SeeCubic felt able to compare a \u2018traditional\u2019 design flow (in which an algorithm design team would pass from a \u2018golden\u2019 C model for implementation in a traditional HDL (e.g., VHDL\/Verilog\/SystemVerilog)) with a new HLS-driven one (where algorithm development and hardware design took place into the same simultaneous environment).<\/p>\n<div id=\"attachment_9592\" style=\"width: 660px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.techdesignforums.com\/practicefiles\/2017\/09\/HLS-SeeCubic-Fig2.jpeg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-9592\" class=\"size-full wp-image-9592\" src=\"https:\/\/www.techdesignforums.com\/practicefiles\/2017\/09\/HLS-SeeCubic-Fig2.jpeg\" alt=\"Figure 2. High level HLS flow with Mentor Catapult (SeeCubic\/Mentor)\" width=\"650\" height=\"307\" srcset=\"https:\/\/www.techdesignforums.com\/practice\/files\/2017\/09\/HLS-SeeCubic-Fig2.jpeg 650w, https:\/\/www.techdesignforums.com\/practice\/files\/2017\/09\/HLS-SeeCubic-Fig2-300x142.jpeg 300w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/a><p id=\"caption-attachment-9592\" class=\"wp-caption-text\">Figure 2. High level HLS flow with Mentor Catapult (SeeCubic\/Mentor)<\/p><\/div>\n<p>The comparison suggested that Catapult would deliver the Ultra-D block as clean RTL within two weeks, against an expectation of four-to-five weeks for the traditional flow. However, it was apparent that getting the best results would require some old tricks and some new thinking.<\/p>\n<p>In the latter case, Leenman says those members of the team working on software and algorithm development needed to understand that they were no longer working simply toward a C-compiler but as part of a combined hardware\/software team designing in C. This important distinction was inherent in the development of the entire C part of the project as a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Kahn_process_networks\">Khan Process Network<\/a>.<\/p>\n<p>It was clear some manual design work would be required. C is untimed, so the engineers needed to provide the timing constraints, determine what types of buffer to use, how state machines would be generated and so on. Going further, the nuances of PLLs and CDCs also required some knowledge of RTL to finesse the code that the HLS tool would automatically generate.<\/p>\n<p>With the evaluation complete and a strategy for going forward determined, SeeCubic purchased a full Catapult license. It extended the use of HLS from the initial trial block to the entire project. The demonstrator was delivered based on predominantly C-to-RTL generation in May.<\/p>\n<h3><strong>Working with HLS<\/strong><\/h3>\n<p>The results SeeCubic achieved using Catapult continue to impress the company. With its carefully developed HLS implementation strategy, Leenman estimates that the overall development project was realized in half the time that would have been taken using the traditional flow. This went a long way to justifying the significant financial investment made in adopting HLS.<\/p>\n<p>Although manual work was required, Catapult generated 95% of the RTL that was required. By contrast, manual RTL coding was responsible for 80% of the functional bugs, with C++ coding accounting for just 20%. This showed a clear advantage for the C++ approach when it comes to bug rate.<\/p>\n<p>While pleased with the result, Leenman did note that a number of lessons needed to be learned during the company\u2019s first major HLS project.<\/p>\n<p>Direct consultation with Mentor\u2019s Catapult team was, Leenman says, essential. The vendor\u2019s engineers visited with SeeCubic, got to closely understand the client\u2019s objectives, and could therefore provide invaluable help as the user became familiar with the technology. Leenman believes that had SeeCubic been forced to adopt HLS within the traditional \u2018ticket\u2019 customer support system, the project would have failed.<\/p>\n<p>SeeCubic found that some aspects of the design were harder to realize than others in HLS. The technique is, as noted earlier, extremely well suited to video projects. However, control blocks in a design are, Leenman says, trickier. However, these challenges can be overcome. HLS\u2019 other benefits make this worth the effort, he adds.<\/p>\n<p>Other factors \u2013 the need to recognize some HLS limitations, the need to see C-coding as a hardware design effort from day one \u2013 have been discussed earlier.<\/p>\n<p>One final\u00a0issue Leenman raises is flexibility.<\/p>\n<p>SeeCubic started out seeing HLS as the answer to a \u2018Catch 22\u2019. It allowed the company to balance various\u00a0questions that a marketing team and potential customers might pose\u00a0against the need to constrain a design: a demonstrator for all seasons. However, he now adds\u00a0that working in C with HLS provides more flexibility to accommodate both \u2018what if\u2019 explorations of a specification as well as\u00a0late-stage changes or tweaks that a client may seek.<\/p>\n<p>Overall, Leenman and his colleagues now see HLS as the foundation for their future design work.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>High level synthesis (HLS) was adopted to realize innovative display IP as developed by a small core engineering team.<\/p>\n","protected":false},"author":138,"featured_media":9593,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1386,160,41,38],"tags":[417,2084,2085,2086,2083],"coauthors":[1441],"class_list":["post-9588","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-assembly-integration","category-design-management","category-esl-codesign","category-ic-implementation","tag-c","tag-graphics-processor","tag-rtl-generation","tag-tradeoffs","tag-video-processor","workflow-featured","workflow-front-lead","workflow-technique","workflow-up-to-date","organization-seecubic","organization-mentor"],"_links":{"self":[{"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/posts\/9588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/users\/138"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/comments?post=9588"}],"version-history":[{"count":0,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/posts\/9588\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/media\/9593"}],"wp:attachment":[{"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/media?parent=9588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/categories?post=9588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/tags?post=9588"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/coauthors?post=9588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}