{"id":3111,"date":"2018-03-20T09:02:27","date_gmt":"2018-03-20T09:02:27","guid":{"rendered":"https:\/\/support.plunify.com\/en\/?p=3111"},"modified":"2018-08-28T03:23:38","modified_gmt":"2018-08-28T03:23:38","slug":"how-to-reduce-your-build-time-by-50","status":"publish","type":"post","link":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/","title":{"rendered":"How To Reduce Your FPGA Build Time By 50%"},"content":{"rendered":"<h2>The New InTime<\/h2>\n<p>Since day one, every customer has been hoping that we can magically reduce their designs' compile times. Sadly, (and for the umpteenth time!) we can't - that is still the domain of the FPGA tool makers.\u00a0 However, what we as users can do, is learn how to quickly abandon builds with poor results and thus save time.<\/p>\n<p>The key is to use timing estimates. This is how to do it with the InTime software.<\/p>\n<h2>Progressive Estimation Accuracy<\/h2>\n<p>Back in 2015, I remember reading a \"Club Vivado\" <a href=\"https:\/\/www.xilinx.com\/publications\/prod_mktg\/club_vivado\/presentation-2015\/paris\/Xilinx-TimingClosure.pdf\">presentation<\/a> that mentioned \"<em>Progress Estimation Accuracy<\/em>\" on slide 6. The bullet seemed innocuous yet was telling in its brevity:<\/p>\n<blockquote><p>\"<em>As stages progress from pre-synth to final route \u201csignoff\u201d<\/em>\"<\/p><\/blockquote>\n<p>Our interpretation is it implied that the estimated timing summary reported by Vivado would get more and more accurate as it went from synthesis to routing. That does sound pretty intuitive and logical, right? The idea is that with good timing estimates, you can roughly know how well (or not) the design's timing is doing. For example, a difference in post-synthesis estimates after an RTL change can mean that, \"Okay, that RTL change worsened timing by -0.5ns in Worst Slack after synthesis, so I probably should stop compiling and fix the RTL first.\"<\/p>\n<p>How do we use similar observations to further reduce our build times?<\/p>\n<h2>Understanding Timing Estimates<\/h2>\n<p>To understand how timing estimates behave, we use a project targeting a\u00a0<a href=\"https:\/\/www.xilinx.com\/support\/documentation\/selection-guides\/ultrascale-fpga-product-selection-guide.pdf\">xcvu190 device<\/a> as an example.<\/p>\n<p><img loading=\"lazy\" class=\"size-full wp-image-3119 alignnone\" src=\"https:\/\/i2.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/xcvu190.png?resize=683%2C620&#038;ssl=1\" alt=\"xcvu190\" width=\"683\" height=\"620\" srcset=\"https:\/\/i2.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/xcvu190.png?w=683&amp;ssl=1 683w, https:\/\/i2.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/xcvu190.png?resize=300%2C272&amp;ssl=1 300w\" sizes=\"(max-width: 683px) 100vw, 683px\" data-recalc-dims=\"1\" \/><\/p>\n<p>This 2-million CLB flip-flop device is not a small one. The design itself clocks -1.5ns off the target period and we use <a href=\"https:\/\/www.plunify.com\/en\/product\/\">InTime <\/a>to optimize it. Each compilation typically takes up to 12 hours.<\/p>\n<h3>Timing Estimates Snapshot<\/h3>\n<p>The following chart shows a snapshot of the timing estimates for 14 out of 35 builds of this project. These 35 builds were generated by the Explorer recipe in InTime and go through synthesis all the way to routing as usual. Each time Vivado can report timing estimates, InTime captures the data and collates it.<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-3121\" src=\"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates.png?resize=929%2C505&#038;ssl=1\" alt=\"estimates\" width=\"929\" height=\"505\" srcset=\"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates.png?w=929&amp;ssl=1 929w, https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates.png?resize=300%2C163&amp;ssl=1 300w, https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates.png?resize=768%2C417&amp;ssl=1 768w\" sizes=\"(max-width: 929px) 100vw, 929px\" data-recalc-dims=\"1\" \/><\/p>\n<p>The X-axis enumerates all the timing estimates and the Y-axis shows the Worst Negative Slack (WNS). Some builds have more data points as they use different compiler settings, like \"-directive Explore\" or additional iterative optimization steps.<\/p>\n<p>You will immediately notice 2 patterns.<\/p>\n<ol>\n<li><strong>There are noticeable troughs - 2 bigger and 1 smaller (usually).<\/strong><br \/>\nA dip in WNS indicates a worsening timing estimate. (Note: The <span style=\"text-decoration: underline\">2 initial dips are actually due to duplicate logging lines<\/span> in the reports caused by how InTime runs Vivado, so treat them as the same data-point).\u00a0The initial dip usually happens after placement and improves after a \"replication\" phase. Based on our data, if the hold timing seems poor, the trough is generally deeper. (Xilinx or some tool expert out there can probably explain this better)<\/li>\n<li><strong>Timing estimates mostly improved as the compilation progressed, except for that 1 build.<\/strong><br \/>\nNotice that \"explore_25\" is the outlier. Despite 'recovering' from the initial troughs, it just got worse and worse. For the rest, the lines trend upwards.<\/li>\n<\/ol>\n<h3>Where and when to stop a build<\/h3>\n<p>Here comes the interesting part; Based on the chart below, it seems like post-placement values are good indicators of eventual timing performance. Tracing individual \"explorer_N\" data-points, you can see how post-placement timing estimates started off badly, as indicated by the blue arrows. They improved gradually and became the results marked by the red arrows. The orange arrows show the best performing build. The chart shows clearly that you need a good post-placement estimate to consistently predict the final outcome. The key here is <span style=\"text-decoration: underline\"><strong>consistency<\/strong><\/span>.<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-3123\" src=\"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?resize=960%2C540&#038;ssl=1\" alt=\"estimates_wns_improve\" width=\"960\" height=\"540\" srcset=\"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?w=960&amp;ssl=1 960w, https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?resize=768%2C432&amp;ssl=1 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" data-recalc-dims=\"1\" \/><\/p>\n<p>Therefore you can adopt a strategy of stopping a build if it fails a certain WNS or Total Negative Slack (TNS) threshold - <strong><span style=\"text-decoration: underline\">shaving almost 50% off your build time in many cases<\/span><\/strong>! That means getting to run 2x the number of compilations within the same period of time. It also means that InTime is able to learn and explore twice the number of settings. Everything becomes 2x more effective for you.<\/p>\n<h3>How about estimates at other stages?<\/h3>\n<p>Why not save even more time by using earlier timing estimates, like post-synthesis ones? Intuitively, post-synthesis timing estimates are inaccurate. We compare the numbers as shown in the table below.<\/p>\n<p>The first row contains post-synthesis estimates; however, 8 out of 14 results actually have the same WNS values, rendering post-synthesis timing estimates rather meaningless as a predictor of final timing performance. In fact, explorer_1's estimate starts out worse than that of its counterparts and eventually ends up better. When we add build time to the overall consideration, post-placement estimates seem like the best point to decide if a build should be terminated.<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-3124\" src=\"https:\/\/i2.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/synthesis_estimates.png?resize=960%2C173&#038;ssl=1\" alt=\"synthesis_estimates\" width=\"960\" height=\"173\" srcset=\"https:\/\/i2.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/synthesis_estimates.png?w=996&amp;ssl=1 996w, https:\/\/i2.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/synthesis_estimates.png?resize=300%2C54&amp;ssl=1 300w, https:\/\/i2.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/synthesis_estimates.png?resize=768%2C138&amp;ssl=1 768w\" sizes=\"(max-width: 960px) 100vw, 960px\" data-recalc-dims=\"1\" \/><\/p>\n<h2>Reduce build time\u00a0in InTime<\/h2>\n<p>If you are running multiple builds (using InTime to get the best settings), the post-placement timing estimate is a great indicator to stop builds early and re-allocate precious resources to other builds. The latest version of InTime provides new Flow Properties labeled, \"<strong>Stop A Run When Post-Place Timing is Bad<\/strong>\" (below). By enabling this option, you can specify TNS and WNS value in nanoseconds and InTime will stop the build if its post-placement timing estimate is worse than either of these values.<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-3126\" src=\"https:\/\/i2.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/intime_properties.png?resize=637%2C599&#038;ssl=1\" alt=\"intime_properties\" width=\"637\" height=\"599\" srcset=\"https:\/\/i2.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/intime_properties.png?w=637&amp;ssl=1 637w, https:\/\/i2.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/intime_properties.png?resize=300%2C282&amp;ssl=1 300w\" sizes=\"(max-width: 637px) 100vw, 637px\" data-recalc-dims=\"1\" \/><\/p>\n<p>What values to specify depends on your design (the project in this article used a WNS cutoff of -2.5ns) You can create simple scripts to collate post-placement timing estimates and obtain a good idea of what the cutoffs for your designs should be.\u00a0This new feature is released in the new version with the latest patch. If you are using the earlier 2.5 release, please upgrade to the latest one to enjoy this feature. Feel free to reach out to us to discuss how to get the most mileage out of it.<\/p>\n<h2>#InTimeDelivers<\/h2>\n<p>By tracking how each build is performing with timing estimates, we are able to make decisions on whether to stop the build or let it continue. This saves time, money and achieves our 3-7 days\u00a0commitment\u00a0for turnaround time (See <a href=\"https:\/\/www.plunify.com\/en\/service\/\">InTime Service<\/a>). Using this method, InTime has close up to -2ns of WNS.<\/p>\n<p>I am sure many designers out there have interesting experiences dealing with early indicators of timing performance. Let us know about your experiences. Is post-placement timing a good indicator?<\/p>\n<p>Other Vivado related articles:<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"hUa7BJKBt5\"><p><a href=\"https:\/\/support.plunify.com\/en\/2017\/08\/31\/intimes-whitepaper-in-xilinx-acceleration-zone-full-article\/\">InTime&#8217;s Whitepaper in Xilinx Acceleration Zone &#8211; Full Article<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" src=\"https:\/\/support.plunify.com\/en\/2017\/08\/31\/intimes-whitepaper-in-xilinx-acceleration-zone-full-article\/embed\/#?secret=hUa7BJKBt5\" data-secret=\"hUa7BJKBt5\" width=\"600\" height=\"338\" title=\"&#8220;InTime&#8217;s Whitepaper in Xilinx Acceleration Zone &#8211; Full Article&#8221; &#8212; Plunify Blog &amp; Support\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<h4>Subscribe to Plunify Blog<\/h4>\n<div class=\"jetpack_subscription_widget\"><h2 class=\"widgettitle\"><\/h2>\n            <form action=\"#\" method=\"post\" accept-charset=\"utf-8\" id=\"subscribe-blog-455\">\n\t\t\t\t                    <div id=\"subscribe-text\"><p>Enter your email address and have the latest insights on FPGA, cloud and Machine Learning delivered straight to your inbox.<\/p>\n<\/div>                    <p id=\"subscribe-email\">\n                        <label id=\"jetpack-subscribe-label\"\n                               class=\"screen-reader-text\"\n                               for=\"subscribe-field-455\">\n\t\t\t\t\t\t\tEmail Address                        <\/label>\n                        <input type=\"email\" name=\"email\" required=\"required\"\n                        \t\t\t                                                value=\"\"\n                            id=\"subscribe-field-455\"\n                            placeholder=\"Email Address\"\n                        \/>\n                    <\/p>\n\n\t\t\t\t\t<p id=\"subscribe-submit\"\n\t\t\t\t\t\t\t\t\t\t\t>\n                        <input type=\"hidden\" name=\"action\" value=\"subscribe\"\/>\n                        <input type=\"hidden\" name=\"source\" value=\"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/posts\/3111\"\/>\n                        <input type=\"hidden\" name=\"sub-type\" value=\"widget\"\/>\n                        <input type=\"hidden\" name=\"redirect_fragment\" value=\"455\"\/>\n\t\t\t\t\t\t                        <button type=\"submit\"\n\t                        \t\t                    \t\t\t                    style=\"margin-left: 0px;\"\n\t\t                    \t                        name=\"jetpack_subscriptions_widget\"\n\t                    >\n\t                                    Sign Me Up!                                  <\/button>\n                    <\/p>\n\t\t\t\t            <\/form>\n\t\t\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The New InTime Since day one, every customer has been hoping that we can magically reduce their designs&#8217; compile times. Sadly, (and for the umpteenth time!) we can&#8217;t &#8211; that is still the domain of the FPGA tool makers.\u00a0 However, what we as users can do, is learn how to quickly abandon builds with poor [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":3123,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"_links_to":"","_links_to_target":""},"categories":[206],"tags":[101,213,227],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Reduce Your FPGA Build Time By 50%<\/title>\n<meta name=\"description\" content=\"The new InTime speeds up turnaround time by automatically stopping builds based on post-placement timing estimates, reducing your FPGA build time by 50%.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Reduce Your FPGA Build Time By 50%\" \/>\n<meta property=\"og:description\" content=\"The new InTime speeds up turnaround time by automatically stopping builds based on post-placement timing estimates, reducing your FPGA build time by 50%.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/\" \/>\n<meta property=\"og:site_name\" content=\"Plunify Blog &amp; Support\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-20T09:02:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-08-28T03:23:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?fit=960%2C540&#038;ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirvy Teo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/support.plunify.com\/en\/#organization\",\"name\":\"Plunify-Support\",\"url\":\"https:\/\/support.plunify.com\/en\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/support.plunify.com\/en\/#logo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2016\/05\/Plunify_Logo_Outline_TranspBG_sm.png?fit=600%2C159&ssl=1\",\"contentUrl\":\"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2016\/05\/Plunify_Logo_Outline_TranspBG_sm.png?fit=600%2C159&ssl=1\",\"width\":600,\"height\":159,\"caption\":\"Plunify-Support\"},\"image\":{\"@id\":\"https:\/\/support.plunify.com\/en\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/support.plunify.com\/en\/#website\",\"url\":\"https:\/\/support.plunify.com\/en\/\",\"name\":\"Plunify Blog &amp; Support\",\"description\":\"Everything you need to know about Plunify products\",\"publisher\":{\"@id\":\"https:\/\/support.plunify.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/support.plunify.com\/en\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?fit=960%2C540&ssl=1\",\"contentUrl\":\"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?fit=960%2C540&ssl=1\",\"width\":960,\"height\":540},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#webpage\",\"url\":\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/\",\"name\":\"How to Reduce Your FPGA Build Time By 50%\",\"isPartOf\":{\"@id\":\"https:\/\/support.plunify.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#primaryimage\"},\"datePublished\":\"2018-03-20T09:02:27+00:00\",\"dateModified\":\"2018-08-28T03:23:38+00:00\",\"description\":\"The new InTime speeds up turnaround time by automatically stopping builds based on post-placement timing estimates, reducing your FPGA build time by 50%.\",\"breadcrumb\":{\"@id\":\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/support.plunify.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How To Reduce Your FPGA Build Time By 50%\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#webpage\"},\"author\":{\"@id\":\"https:\/\/support.plunify.com\/en\/#\/schema\/person\/e837e6c73fa6ac9d51563659f5703277\"},\"headline\":\"How To Reduce Your FPGA Build Time By 50%\",\"datePublished\":\"2018-03-20T09:02:27+00:00\",\"dateModified\":\"2018-08-28T03:23:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#webpage\"},\"wordCount\":1079,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/support.plunify.com\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?fit=960%2C540&ssl=1\",\"keywords\":[\"InTime\",\"timing\",\"Vivado\"],\"articleSection\":[\"InTime\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/support.plunify.com\/en\/#\/schema\/person\/e837e6c73fa6ac9d51563659f5703277\",\"name\":\"Kirvy Teo\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/support.plunify.com\/en\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/774c97d4bacda481b716e8168ce23aad?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/774c97d4bacda481b716e8168ce23aad?s=96&d=mm&r=g\",\"caption\":\"Kirvy Teo\"},\"url\":\"https:\/\/support.plunify.com\/en\/author\/kirvy\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Reduce Your FPGA Build Time By 50%","description":"The new InTime speeds up turnaround time by automatically stopping builds based on post-placement timing estimates, reducing your FPGA build time by 50%.","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:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/","og_locale":"en_US","og_type":"article","og_title":"How to Reduce Your FPGA Build Time By 50%","og_description":"The new InTime speeds up turnaround time by automatically stopping builds based on post-placement timing estimates, reducing your FPGA build time by 50%.","og_url":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/","og_site_name":"Plunify Blog &amp; Support","article_published_time":"2018-03-20T09:02:27+00:00","article_modified_time":"2018-08-28T03:23:38+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?fit=960%2C540&ssl=1","path":"\/var\/www\/html\/support_plunify_com\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png","size":"full","id":3123,"alt":"","pixels":518400,"type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirvy Teo","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/support.plunify.com\/en\/#organization","name":"Plunify-Support","url":"https:\/\/support.plunify.com\/en\/","sameAs":[],"logo":{"@type":"ImageObject","@id":"https:\/\/support.plunify.com\/en\/#logo","inLanguage":"en-US","url":"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2016\/05\/Plunify_Logo_Outline_TranspBG_sm.png?fit=600%2C159&ssl=1","contentUrl":"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2016\/05\/Plunify_Logo_Outline_TranspBG_sm.png?fit=600%2C159&ssl=1","width":600,"height":159,"caption":"Plunify-Support"},"image":{"@id":"https:\/\/support.plunify.com\/en\/#logo"}},{"@type":"WebSite","@id":"https:\/\/support.plunify.com\/en\/#website","url":"https:\/\/support.plunify.com\/en\/","name":"Plunify Blog &amp; Support","description":"Everything you need to know about Plunify products","publisher":{"@id":"https:\/\/support.plunify.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/support.plunify.com\/en\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#primaryimage","inLanguage":"en-US","url":"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?fit=960%2C540&ssl=1","contentUrl":"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?fit=960%2C540&ssl=1","width":960,"height":540},{"@type":"WebPage","@id":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#webpage","url":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/","name":"How to Reduce Your FPGA Build Time By 50%","isPartOf":{"@id":"https:\/\/support.plunify.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#primaryimage"},"datePublished":"2018-03-20T09:02:27+00:00","dateModified":"2018-08-28T03:23:38+00:00","description":"The new InTime speeds up turnaround time by automatically stopping builds based on post-placement timing estimates, reducing your FPGA build time by 50%.","breadcrumb":{"@id":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/support.plunify.com\/en\/"},{"@type":"ListItem","position":2,"name":"How To Reduce Your FPGA Build Time By 50%"}]},{"@type":"Article","@id":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#article","isPartOf":{"@id":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#webpage"},"author":{"@id":"https:\/\/support.plunify.com\/en\/#\/schema\/person\/e837e6c73fa6ac9d51563659f5703277"},"headline":"How To Reduce Your FPGA Build Time By 50%","datePublished":"2018-03-20T09:02:27+00:00","dateModified":"2018-08-28T03:23:38+00:00","mainEntityOfPage":{"@id":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#webpage"},"wordCount":1079,"commentCount":1,"publisher":{"@id":"https:\/\/support.plunify.com\/en\/#organization"},"image":{"@id":"https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#primaryimage"},"thumbnailUrl":"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?fit=960%2C540&ssl=1","keywords":["InTime","timing","Vivado"],"articleSection":["InTime"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/support.plunify.com\/en\/2018\/03\/20\/how-to-reduce-your-build-time-by-50\/#respond"]}]},{"@type":"Person","@id":"https:\/\/support.plunify.com\/en\/#\/schema\/person\/e837e6c73fa6ac9d51563659f5703277","name":"Kirvy Teo","image":{"@type":"ImageObject","@id":"https:\/\/support.plunify.com\/en\/#personlogo","inLanguage":"en-US","url":"https:\/\/secure.gravatar.com\/avatar\/774c97d4bacda481b716e8168ce23aad?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/774c97d4bacda481b716e8168ce23aad?s=96&d=mm&r=g","caption":"Kirvy Teo"},"url":"https:\/\/support.plunify.com\/en\/author\/kirvy\/"}]}},"jetpack_featured_media_url":"https:\/\/i1.wp.com\/support.plunify.com\/en\/wp-content\/uploads\/sites\/5\/2018\/03\/estimates_wns_improve-1.png?fit=960%2C540&ssl=1","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7XiEH-Ob","_links":{"self":[{"href":"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/posts\/3111"}],"collection":[{"href":"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/comments?post=3111"}],"version-history":[{"count":45,"href":"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/posts\/3111\/revisions"}],"predecessor-version":[{"id":4028,"href":"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/posts\/3111\/revisions\/4028"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/media\/3123"}],"wp:attachment":[{"href":"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/media?parent=3111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/categories?post=3111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/support.plunify.com\/en\/wp-json\/wp\/v2\/tags?post=3111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}