{"id":2304,"date":"2017-06-14T17:49:31","date_gmt":"2017-06-14T09:49:31","guid":{"rendered":"http:\/\/www.plunify.com\/en\/?page_id=2304"},"modified":"2021-10-05T16:26:43","modified_gmt":"2021-10-05T08:26:43","slug":"whitepapers","status":"publish","type":"page","link":"https:\/\/www.plunify.com\/en\/whitepapers\/","title":{"rendered":"Whitepapers"},"content":{"rendered":"<p>[vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221; css=&#8221;.vc_custom_1484622607279{margin-top: 20px !important;}&#8221;][vc_column][vc_column_text css=&#8221;.vc_custom_1497490595069{padding-top: 10px !important;}&#8221;]<\/p>\n<h2 style=\"text-align: center;\">Whitepapers<\/h2>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column width=&#8221;5\/6&#8243;][vc_column_text]<\/p>\n<h4><strong><a name=\"whitepaper_2021\"><\/a>Transformational ML-Based Approach to Tackle Severe FPGA Placement and Routing Failures<\/strong><\/h4>\n<p>Placement and routing failures during the FPGA backend flow are frequent with many FPGA designs especially when these involve multiple physical constraints. This paper introduces the Machine-Learning-based approach implemented in InTime toolset to transform these failures to a less complex problem of timing convergence. Thanks to machine learning, InTime can identify the root causes of the placement or the routing failures, mitigating them through adjustment of the user constraints, and setting the various options making the design placement and routing friendly. As the experimental results illustrate, the encountered placement and routing failures are all resolved. Additionally, timing requirements are met for over 85% of the case through this ML-based transformation. The other 15% of the designs are processed through the traditional InTime recipes to resolve timing convergence.<\/p>\n<p><strong>Topics covered in this whitepaper<\/strong><\/p>\n<ul>\n<li>Inherent and Artificial Root Causes of Placement and Routing Failures<\/li>\n<li>Auto ML-Based Approach to Tackle Placement and Routing Failures<\/li>\n<li>Auto ML-Based Approach Experimental Results<\/li>\n<li>Final Look and Ongoing Near Future and Mid-Term Development<\/li>\n<\/ul>\n<p>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/6&#8243;][vc_btn title=&#8221;DOWNLOAD&#8221; shape=&#8221;square&#8221; color=&#8221;success&#8221; size=&#8221;lg&#8221; align=&#8221;center&#8221; link=&#8221;url:https%3A%2F%2Fwww.plunify.com%2Fen%2Fwp-content%2Fuploads%2Fsites%2F8%2F2021%2F10%2FML-for-Severe-FPGA-Placement-Routing-and-Timing-Failures.pdf||target:%20_blank|&#8221; css=&#8221;.vc_custom_1633422268015{padding-top: 50px !important;}&#8221; custom_onclick=&#8221;true&#8221; custom_onclick_code=&#8221;ga(&#8216;send&#8217;, { hitType: &#8216;event&#8217;, eventCategory: &#8216;File&#8217;, eventAction: &#8216;download&#8217;, eventLabel: &#8216;Whitepaper_TimingPerformanceComparison&#8217; });&#8221;][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column][vc_separator color=&#8221;chino&#8221; style=&#8221;shadow&#8221; css=&#8221;.vc_custom_1497491257620{margin-top: 30px !important;margin-bottom: 50px !important;}&#8221;][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column width=&#8221;5\/6&#8243;][vc_column_text]<\/p>\n<h4><strong><a name=\"whitepaper2\"><\/a>Timing performance comparison between InTime default recipe and seed sweep<\/strong><\/h4>\n<p>This whitepaper compares the effectiveness of two timing optimization methods: The InTime Default recipe provided by the <a href=\"https:\/\/www.plunify.com\/en\/intime\">InTime<\/a> FPGA design optimization tool and another one commonly known as a \u201cSeed Sweep\u201d. As a result, InTime is more effective at delivering higher timing performance, and there are even greater performance improvements if both methods are used in conjunction \u2013 namely, by doing a Seed Sweep based on good InTime Default results.<\/p>\n<p><strong>Topics covered in this whitepaper<\/strong><\/p>\n<ul>\n<li>Introduction of InTime Default recipe and seed sweep, and information of the comparison\u00a0experiments.<\/li>\n<li>Design details of the experiments.<\/li>\n<li>Test procedures.<\/li>\n<li>Experimentation results.<\/li>\n<li>Optimization Process and run time.<\/li>\n<li>Conclusion.<\/li>\n<\/ul>\n<p>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/6&#8243;][vc_btn title=&#8221;DOWNLOAD&#8221; shape=&#8221;square&#8221; color=&#8221;success&#8221; size=&#8221;lg&#8221; align=&#8221;center&#8221; link=&#8221;url:https%3A%2F%2Fwww.plunify.com%2Fen%2Fwp-content%2Fuploads%2Fsites%2F8%2F2018%2F04%2FWhitepaper_timing_performance_comparison.pdf||target:%20_blank|&#8221; css=&#8221;.vc_custom_1523255767541{padding-top: 50px !important;}&#8221; custom_onclick=&#8221;true&#8221; custom_onclick_code=&#8221;ga(&#8216;send&#8217;, { hitType: &#8216;event&#8217;, eventCategory: &#8216;File&#8217;, eventAction: &#8216;download&#8217;, eventLabel: &#8216;Whitepaper_TimingPerformanceComparison&#8217; });&#8221;][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column][vc_separator color=&#8221;chino&#8221; style=&#8221;shadow&#8221; css=&#8221;.vc_custom_1497491257620{margin-top: 30px !important;margin-bottom: 50px !important;}&#8221;][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column width=&#8221;5\/6&#8243;][vc_column_text]<\/p>\n<h4><strong>InTime Timing Closure Methodology for Quartus<\/strong><\/h4>\n<p>The InTime Timing Closure Methodology is a set of best practices and guidelines to determine the best build parameters under the condition that the design is currently immutable, i.e. you cannot change your RTL or constraints. InTime uses machine learning principles to achieve timing closure or optimization, treating the FPGA synthesis and place-and-route tools as black boxes and analyzing design performance across a whole range of build parameter variations. The guidelines in this document will help you achieve your performance goals in the minimum number of compilations and fastest turnaround time possible.<\/p>\n<p><strong>Topics covered in this whitepaper<\/strong><\/p>\n<ul>\n<li>Understanding the InTime Optimization Phases and InTime Optimization Process<\/li>\n<li>Recipe Selection\u00a0 and Parameter Selection<\/li>\n<li>Achieve Faster Convergence of Results<\/li>\n<li>Likelihood of Meeting Timing<\/li>\n<li>Minimize Run Time with Timing Estimates<\/li>\n<\/ul>\n<p>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/6&#8243;][vc_btn title=&#8221;DOWNLOAD&#8221; shape=&#8221;square&#8221; color=&#8221;success&#8221; size=&#8221;lg&#8221; align=&#8221;center&#8221; link=&#8221;url:https%3A%2F%2Fwww.plunify.com%2Fen%2Fwp-content%2Fuploads%2Fsites%2F8%2F2018%2F10%2FInTime-Optimization-Methodology-for-Quartus.pdf||target:%20_blank|&#8221; css=&#8221;.vc_custom_1539757854906{padding-top: 50px !important;}&#8221; custom_onclick=&#8221;true&#8221; custom_onclick_code=&#8221;ga(&#8216;send&#8217;, { hitType: &#8216;event&#8217;, eventCategory: &#8216;File&#8217;, eventAction: &#8216;download&#8217;, eventLabel: &#8216;Whitepaper_InTimeOptimizationMethodologyQuartus&#8217; });&#8221;][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column][vc_separator color=&#8221;chino&#8221; style=&#8221;shadow&#8221; css=&#8221;.vc_custom_1497491257620{margin-top: 30px !important;margin-bottom: 50px !important;}&#8221;][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column width=&#8221;5\/6&#8243;][vc_column_text]<\/p>\n<h4><strong>InTime Timing Closure Methodology for Vivado<\/strong><\/h4>\n<p>The InTime Timing Closure Methodology is a set of best practices and guidelines to determine the best build parameters under the condition that the design is currently immutable, i.e. you cannot change your RTL or constraints. InTime uses machine learning principles to achieve timing closure or optimization, treating the FPGA synthesis and place-and-route tools as black boxes and analyzing design performance across a whole range of build parameter variations.\u00a0The guidelines in this document will help you achieve your performance goals in the minimum number of compilations and fastest turnaround time possible.<\/p>\n<p><strong>Topics covered in this whitepaper<\/strong><\/p>\n<ul>\n<li>Understanding the InTime Optimization Phases and InTime Optimization Process<\/li>\n<li>Recipe Selection\u00a0 and Parameter Selection<\/li>\n<li>Achieve Faster Convergence of Results<\/li>\n<li>Likelihood of Meeting Timing<\/li>\n<li>Minimize Run Time with Timing Estimates<\/li>\n<\/ul>\n<p>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/6&#8243;][vc_btn title=&#8221;DOWNLOAD&#8221; shape=&#8221;square&#8221; color=&#8221;success&#8221; size=&#8221;lg&#8221; align=&#8221;center&#8221; link=&#8221;url:https%3A%2F%2Fwww.plunify.com%2Fen%2Fwp-content%2Fuploads%2Fsites%2F8%2F2018%2F05%2FInTime-Timing-Closure-Methodology-for-Vivado-WP04.pdf||target:%20_blank|&#8221; css=&#8221;.vc_custom_1539758289491{padding-top: 50px !important;}&#8221; custom_onclick=&#8221;true&#8221; custom_onclick_code=&#8221;ga(&#8216;send&#8217;, { hitType: &#8216;event&#8217;, eventCategory: &#8216;File&#8217;, eventAction: &#8216;download&#8217;, eventLabel: &#8216;Whitepaper_InTimeOptimizationMethodologyVivado&#8217; });&#8221;][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column][vc_separator color=&#8221;chino&#8221; style=&#8221;shadow&#8221; css=&#8221;.vc_custom_1497491257620{margin-top: 30px !important;margin-bottom: 50px !important;}&#8221;][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column width=&#8221;5\/6&#8243;][vc_column_text]<\/p>\n<h4><strong><a name=\"whitepaper1\"><\/a>Timing closure in FPGAs is critical<\/strong><\/h4>\n<p>If you are reading this, the odds are that you or someone in your company is facing \/ has faced FPGA design challenges. Timing closure is the single most important obstacle to implementing a successful FPGA application.<\/p>\n<p><strong>Bruce Talley<\/strong>, former VP of Software at Xilinx and Plunify technical advisor, is one of the most qualified people to speak about this topic. Download the whitepaper to view his perspectives.<\/p>\n<p><strong>Topics covered in this whitepaper<\/strong><\/p>\n<ul>\n<li>Planning for timing closure.<\/li>\n<li>The vendor tools do a remarkably good job at design compilation for the general case but sometimes they can fall short.<\/li>\n<li>Why is timing closure so difficult for the vendor FPGA compilation tools?<\/li>\n<li>What to do if you cannot achieve timing closure?<\/li>\n<li>How does the <a href=\"http:\/\/www.plunify.com\/en\/intime\" target=\"_blank\" rel=\"noopener\">InTime timing closure tool<\/a> help?<\/li>\n<\/ul>\n<p>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/6&#8243;][vc_btn title=&#8221;DOWNLOAD&#8221; shape=&#8221;square&#8221; color=&#8221;success&#8221; size=&#8221;lg&#8221; align=&#8221;center&#8221; link=&#8221;url:http%3A%2F%2Fwww.plunify.com%2Fen%2Fwp-content%2Fuploads%2Fsites%2F8%2F2017%2F08%2FWhitePaper-Timing-closure-in-FPGAs-is-critical.pdf||target:%20_blank|&#8221; css=&#8221;.vc_custom_1525859966328{padding-top: 50px !important;}&#8221; custom_onclick=&#8221;true&#8221; custom_onclick_code=&#8221;ga(&#8216;send&#8217;, { hitType: &#8216;event&#8217;, eventCategory: &#8216;File&#8217;, eventAction: &#8216;download&#8217;, eventLabel: &#8216;Whitepaper_TimingClosureIsImportant&#8217; });&#8221;][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column][vc_separator color=&#8221;chino&#8221; style=&#8221;shadow&#8221; css=&#8221;.vc_custom_1497491257620{margin-top: 30px !important;margin-bottom: 50px !important;}&#8221;][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column width=&#8221;5\/6&#8243;][vc_column_text]<\/p>\n<h4><strong><a name=\"whitepaper2\"><\/a>Optimizing design performance with Xilinx tools in InTime<\/strong><\/h4>\n<p>This whitepaper describes how <a href=\"http:\/\/www.plunify.com\/en\/intime\">InTime<\/a> works with Vivado to optimize FPGA timing performance by adjusting compilation parameters and running builds in parallel. InTime uses machine learning to determine the best combination of synthesis and place-&amp;-route settings for a FPGA design. Combined with compute servers, InTime rapidly optimizes timing while simultaneously addressing limitations on the user\u2019s flow automation.<\/p>\n<p><strong>Topics covered in this whitepaper<\/strong><\/p>\n<ul>\n<li>Introduction of traditional timing closure techniques and InTime&#8217;s approach.<\/li>\n<li>Understanding the InTime flow.<\/li>\n<li>Steps to optimize a design using InTime.<\/li>\n<li>InTime &amp; Vivado in the cloud.<\/li>\n<\/ul>\n<p>[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/6&#8243;][vc_btn title=&#8221;DOWNLOAD&#8221; shape=&#8221;square&#8221; color=&#8221;success&#8221; size=&#8221;lg&#8221; align=&#8221;center&#8221; link=&#8221;url:http%3A%2F%2Fwww.plunify.com%2Fen%2Fwp-content%2Fuploads%2Fsites%2F8%2F2017%2F08%2Foptimizing-design-performance-with-xilinx-tools-intime.pdf||target:%20_blank|&#8221; css=&#8221;.vc_custom_1506399538549{padding-top: 50px !important;}&#8221; custom_onclick=&#8221;true&#8221; custom_onclick_code=&#8221;ga(&#8216;send&#8217;, { hitType: &#8216;event&#8217;, eventCategory: &#8216;File&#8217;, eventAction: &#8216;download&#8217;, eventLabel: &#8216;Whitepaper_OptimizingXilinxInTime&#8217; });&#8221;][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column][vc_separator color=&#8221;chino&#8221; style=&#8221;shadow&#8221; css=&#8221;.vc_custom_1497491257620{margin-top: 30px !important;margin-bottom: 50px !important;}&#8221;][vc_empty_space height=&#8221;50px&#8221;][\/vc_column][\/vc_row]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221; css=&#8221;.vc_custom_1484622607279{margin-top: 20px !important;}&#8221;][vc_column][vc_column_text css=&#8221;.vc_custom_1497490595069{padding-top: 10px !important;}&#8221;] Whitepapers [\/vc_column_text][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column width=&#8221;5\/6&#8243;][vc_column_text] Transformational ML-Based Approach to Tackle Severe FPGA Placement and Routing Failures Placement and routing failures during the FPGA backend flow are frequent with many FPGA designs especially when these involve multiple physical constraints. This paper introduces the Machine-Learning-based approach implemented in [&hellip;]<\/p>\n","protected":false},"author":17,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-page-full-width-vc.php","meta":{"spay_email":"","_links_to":"","_links_to_target":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Whitepapers &mdash; Plunify<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.plunify.com\/en\/whitepapers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Whitepapers &mdash; Plunify\" \/>\n<meta property=\"og:description\" content=\"[vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221; css=&#8221;.vc_custom_1484622607279{margin-top: 20px !important;}&#8221;][vc_column][vc_column_text css=&#8221;.vc_custom_1497490595069{padding-top: 10px !important;}&#8221;] Whitepapers [\/vc_column_text][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column width=&#8221;5\/6&#8243;][vc_column_text] Transformational ML-Based Approach to Tackle Severe FPGA Placement and Routing Failures Placement and routing failures during the FPGA backend flow are frequent with many FPGA designs especially when these involve multiple physical constraints. This paper introduces the Machine-Learning-based approach implemented in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.plunify.com\/en\/whitepapers\/\" \/>\n<meta property=\"og:site_name\" content=\"Plunify\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Plunify\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-05T08:26:43+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@plunify\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.plunify.com\/en\/#organization\",\"name\":\"Plunify\",\"url\":\"https:\/\/www.plunify.com\/en\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/Plunify\",\"https:\/\/www.linkedin.com\/company\/plunify\/\",\"https:\/\/www.youtube.com\/user\/Plunify\",\"https:\/\/twitter.com\/plunify\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.plunify.com\/en\/#logo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/www.plunify.com\/en\/wp-content\/uploads\/sites\/8\/2017\/04\/logo-blueback.png\",\"contentUrl\":\"https:\/\/www.plunify.com\/en\/wp-content\/uploads\/sites\/8\/2017\/04\/logo-blueback.png\",\"width\":812,\"height\":346,\"caption\":\"Plunify\"},\"image\":{\"@id\":\"https:\/\/www.plunify.com\/en\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.plunify.com\/en\/#website\",\"url\":\"https:\/\/www.plunify.com\/en\/\",\"name\":\"Plunify\",\"description\":\"Optimize your FPGA design\",\"publisher\":{\"@id\":\"https:\/\/www.plunify.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.plunify.com\/en\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.plunify.com\/en\/whitepapers\/#webpage\",\"url\":\"https:\/\/www.plunify.com\/en\/whitepapers\/\",\"name\":\"Whitepapers &mdash; Plunify\",\"isPartOf\":{\"@id\":\"https:\/\/www.plunify.com\/en\/#website\"},\"datePublished\":\"2017-06-14T09:49:31+00:00\",\"dateModified\":\"2021-10-05T08:26:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.plunify.com\/en\/whitepapers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.plunify.com\/en\/whitepapers\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.plunify.com\/en\/whitepapers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.plunify.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Whitepapers\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Whitepapers &mdash; Plunify","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.plunify.com\/en\/whitepapers\/","og_locale":"en_US","og_type":"article","og_title":"Whitepapers &mdash; Plunify","og_description":"[vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221; css=&#8221;.vc_custom_1484622607279{margin-top: 20px !important;}&#8221;][vc_column][vc_column_text css=&#8221;.vc_custom_1497490595069{padding-top: 10px !important;}&#8221;] Whitepapers [\/vc_column_text][\/vc_column][\/vc_row][vc_row row_type=&#8221;row&#8221; stretch_row_type=&#8221;no&#8221;][vc_column width=&#8221;5\/6&#8243;][vc_column_text] Transformational ML-Based Approach to Tackle Severe FPGA Placement and Routing Failures Placement and routing failures during the FPGA backend flow are frequent with many FPGA designs especially when these involve multiple physical constraints. This paper introduces the Machine-Learning-based approach implemented in [&hellip;]","og_url":"https:\/\/www.plunify.com\/en\/whitepapers\/","og_site_name":"Plunify","article_publisher":"https:\/\/www.facebook.com\/Plunify","article_modified_time":"2021-10-05T08:26:43+00:00","twitter_card":"summary_large_image","twitter_site":"@plunify","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.plunify.com\/en\/#organization","name":"Plunify","url":"https:\/\/www.plunify.com\/en\/","sameAs":["https:\/\/www.facebook.com\/Plunify","https:\/\/www.linkedin.com\/company\/plunify\/","https:\/\/www.youtube.com\/user\/Plunify","https:\/\/twitter.com\/plunify"],"logo":{"@type":"ImageObject","@id":"https:\/\/www.plunify.com\/en\/#logo","inLanguage":"en-US","url":"https:\/\/www.plunify.com\/en\/wp-content\/uploads\/sites\/8\/2017\/04\/logo-blueback.png","contentUrl":"https:\/\/www.plunify.com\/en\/wp-content\/uploads\/sites\/8\/2017\/04\/logo-blueback.png","width":812,"height":346,"caption":"Plunify"},"image":{"@id":"https:\/\/www.plunify.com\/en\/#logo"}},{"@type":"WebSite","@id":"https:\/\/www.plunify.com\/en\/#website","url":"https:\/\/www.plunify.com\/en\/","name":"Plunify","description":"Optimize your FPGA design","publisher":{"@id":"https:\/\/www.plunify.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.plunify.com\/en\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.plunify.com\/en\/whitepapers\/#webpage","url":"https:\/\/www.plunify.com\/en\/whitepapers\/","name":"Whitepapers &mdash; Plunify","isPartOf":{"@id":"https:\/\/www.plunify.com\/en\/#website"},"datePublished":"2017-06-14T09:49:31+00:00","dateModified":"2021-10-05T08:26:43+00:00","breadcrumb":{"@id":"https:\/\/www.plunify.com\/en\/whitepapers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.plunify.com\/en\/whitepapers\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.plunify.com\/en\/whitepapers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.plunify.com\/en\/"},{"@type":"ListItem","position":2,"name":"Whitepapers"}]}]}},"_links":{"self":[{"href":"https:\/\/www.plunify.com\/en\/wp-json\/wp\/v2\/pages\/2304"}],"collection":[{"href":"https:\/\/www.plunify.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.plunify.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.plunify.com\/en\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/www.plunify.com\/en\/wp-json\/wp\/v2\/comments?post=2304"}],"version-history":[{"count":39,"href":"https:\/\/www.plunify.com\/en\/wp-json\/wp\/v2\/pages\/2304\/revisions"}],"predecessor-version":[{"id":4889,"href":"https:\/\/www.plunify.com\/en\/wp-json\/wp\/v2\/pages\/2304\/revisions\/4889"}],"wp:attachment":[{"href":"https:\/\/www.plunify.com\/en\/wp-json\/wp\/v2\/media?parent=2304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}