{"id":736,"date":"2017-08-19T13:39:14","date_gmt":"2017-08-19T13:39:14","guid":{"rendered":"http:\/\/panda.dei.polimi.it\/?p=736"},"modified":"2019-09-05T04:55:14","modified_gmt":"2019-09-05T04:55:14","slug":"panda-0-9-5-released","status":"publish","type":"post","link":"https:\/\/panda.deib.polimi.it\/?p=736","title":{"rendered":"PandA 0.9.5 released"},"content":{"rendered":"<p>New features introduced:<br \/>\n&#8211; Added support to GCC 6 and GCC 7 (GCC 4.9 is still the preferred GCC compiler).<br \/>\n&#8211; Added support to bitfields.<br \/>\n&#8211; Added support for pointers and memory operations to the Discrepancy Analysis.  Reference paper: Pietro Fezzardi and Fabrizio Ferrandi, &#8220;Automated bug detection for pointers and memory accesses in High-Level Synthesis compilers&#8221;, in 2016 26th International Conference on Field Programmable Logic and Applications (FPL), 2016.<br \/>\n&#8211; Added new option: &#8211;discrepancy-only=comma,separated,list,of,function,names<br \/>\n    Restricts the discrepancy analysis only to the functions whose name is in the list passed as argument.<br \/>\n&#8211; Added new option: &#8211;discrepancy-permissive-ptrs<br \/>\n    Do not trigger hard errors on pointer variables.<br \/>\n&#8211; added preliminary support to TASTE integration. Reference paper: M. Lattuada, F. Ferrandi, and M. Perrotin, \u201cComputer Assisted Design and Integration of FPGA Accelerators in Aerospace Systems,\u201d in Proceedings of the IEEE Aerospace Conference, 2016, pp. 1-11.<br \/>\n&#8211; Added support to OpenMP SIMD. Reference paper: M. Lattuada and F. Ferrandi, \u201cExploiting Vectorization in High Level Synthesis of Nested Irregular Loops,\u201d Journal of Systems Architecture, vol. 75, pp. 1-14, 2017.<br \/>\n&#8211; Default golden reference is now input C code without any modification.<br \/>\n&#8211; The options &#8211;synthesize and &#8211;objectives have been removed. Now the same values passed with &#8211;objectives can<br \/>\n    be directly passed through the option &#8211;evaluation.<br \/>\n&#8211; Improved the precision and the effectiveness of the Bit Value analysis and optimizations.<br \/>\n&#8211; Improved detection of irreducible loops.<br \/>\n&#8211; Improved CSE.<br \/>\n&#8211; Added a frontend transformations that merge some operations into FPGA LUTs.<br \/>\n&#8211; Now frontend explicitly introduces function calls to softfloat functions.<br \/>\n&#8211; Added support to block RAM with latency = 3 (&#8211;high-latency=4).<br \/>\n&#8211; Added bambu option &#8211;fsm-encoding=[auto,one-hot,binary].<br \/>\n&#8211; Added a new option: &#8211;disable-reg-init-value<br \/>\n    Used to remove the INIT value from registers (useful for ASIC designs)<br \/>\n&#8211; Improved mapping of multiplications on DSPs.<br \/>\n&#8211; Added a GCC plugin to apply the whole program optimization starting from the topfname function instead of main function (currently only GCC 4.9 is supported).<br \/>\n&#8211; Added further integer division algorithms:<br \/>\n   &#8211; non-restoring division with unrolling factor equal to 1 (&#8211;hls-div=nr1) which becomes the default division algorithm.<br \/>\n   &#8211; non-restoring division with unrolling factor equal to 2 (&#8211;hls-div=nr2)<br \/>\n   &#8211; align divisor shift dividend method (&#8211;hls-div=as)<br \/>\n&#8211; Added a specialization of the integer division working with 64bits dividend and 32bits divisor.<br \/>\n&#8211; Single precision floating point faithfully rounded expf and logf functions implemented following the HOTBM method published by<br \/>\n   &#8211; Jeremie Detrey and Florent de Dinechin, &#8220;Parameterized floating-point logarithm and exponential functions for FPGAs&#8221;, Microprocessors and Microsystems, vol.31,n.8, 2007, pp.537-545.<br \/>\n   The code has been exhaustively tested and it supports subnormals.<br \/>\n&#8211; Single precision floating point faithfully rounded sin, cos, sincos and tan functions implemented following the HOTBM method published by<br \/>\n   &#8211; Jeremie Detrey and Florent de Dinechin, &#8220;Floating-point Trigonometric Functions for FPGAs&#8221; FPL 2007.<br \/>\n   The code has been exhaustively tested and it supports subnormals.<br \/>\n&#8211; Single precision floating point faithfully rounded sqrt function implemented following the method published by<br \/>\n   &#8211; Florent de Dinechin, Mioara Joldes, Bogdan Pasca, Guillaume Revy: Multiplicative Square Root Algorithms for FPGAs. FPL 2010: 574-577<br \/>\n   The code has been exhaustively tested and it supports subnormals.<br \/>\n&#8211; Implemented the port swapping algorithm as described in the following paper:<br \/>\n   &#8211; Hao Cong, Song Chen and T. Yoshimura, &#8220;Port assignment for interconnect reduction in high-level synthesis,&#8221; Proceedings of Technical Program of 2012 VLSI Design, Automation and Test, Hsinchu, 2012, pp. 1-4.<br \/>\n&#8211; Improved support to structs passed by copy.<br \/>\n&#8211; Improved ROM identification.<br \/>\n&#8211; Added a new option: &#8211;rom-duplication<br \/>\n    Assume that read-only memories can be duplicated in case timing requires.<br \/>\n&#8211; Improved memory initialization.<br \/>\n&#8211; Added some transformations that lowered some memcpy and memset call to simple instructions.<br \/>\n&#8211; Improved softfloat functions for basic single and double precisions operations: sum, sub, mul and division.<br \/>\n  Now addition and subtraction operations correctly manage operand equal to +0 and -0.<br \/>\n&#8211; Added three options to control which softfloat and libm libraries are used: &#8211;softfloat-subnormal, &#8211;libm-std-rounding and &#8211;soft-fp.<br \/>\n&#8211; Fixed builtin isnanf.<br \/>\n&#8211; Added double precision implementation of libm round function.<br \/>\n&#8211; Added __builtin_lrint, __builtin_llrint, __builtin_nearbyint to libm library.<br \/>\n&#8211; Fixed and improved tgamma and tgammaf function.<br \/>\n&#8211; Added support to parallel compilation of bambu libraries.<br \/>\n&#8211; Added support to the automatic configuration of newer releases of Quartus for IntelFPGAs.<br \/>\n&#8211; Improved verilator detection.<br \/>\n&#8211; Improved libicu detection.<br \/>\n&#8211; Improved boost filesystem macro.<br \/>\n&#8211; Fixed problems due to -m32 under arch linux.<br \/>\n&#8211; Fixed compilation problems with glpk and ubuntu 14.04.<br \/>\n&#8211; Fixed a problem with long double. They now have the same size of double.<br \/>\n&#8211; Added support to Mentor Visualizer.<br \/>\n&#8211; Improved components characterization and timing models.<br \/>\n&#8211; Extended support to VHDL.<br \/>\n&#8211; Now VHDL modelsim simulation uses 2008 standard.<br \/>\n&#8211; Extended set of synthesis scripts and synthesis results.<br \/>\n&#8211; Improved area reporting for Virtex4 devices.<br \/>\n&#8211; Improved characterization of asynchronous RAMs.<br \/>\n&#8211; Fixed extraction of slack delay from ISE trce and Lattice reports.<br \/>\n&#8211; Fixed yosys backend wr.r.t the newer Vivado releases.<br \/>\n&#8211; Added SLICES to the set of data collected by characterization.<br \/>\n&#8211; Extended set of regression tests.<\/p>\n<p>Quality of results of this release on different target FPGAs could be found at:<br \/>\n &#8211;  <a title=\"CHStone QoR\" href=\"http:\/\/panda.dei.polimi.it\/?page_id=678\" target=\"_blank\" rel=\"noopener noreferrer\">CHStone QoR<\/a>.<br \/>\n &#8211;  <a title=\"libm QoR\" href=\"http:\/\/panda.dei.polimi.it\/?page_id=697\" target=\"_blank\" rel=\"noopener noreferrer\">libm QoR<\/a>.<br \/>\n &#8211;  <a title=\"Basic FP operations QoR\" href=\"http:\/\/panda.dei.polimi.it\/?page_id=718\" target=\"_blank\" rel=\"noopener noreferrer\">Basic FP operations QoR<\/a>.<\/p>\n<p>For any information or bug report, please write to panda-info@polimi.it or visit the <a title=\"panda-project-discussions-questions\" href=\"https:\/\/groups.google.com\/forum\/#!forum\/panda-project-discussions-questions\" target=\"_blank\" rel=\"noopener noreferrer\">google group page<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>New features introduced: &#8211; Added support to GCC 6 and GCC 7 (GCC 4.9 is still the preferred GCC compiler). &#8211; Added support to bitfields. &#8211; Added support for pointers and memory operations to the Discrepancy Analysis. Reference paper: Pietro Fezzardi and Fabrizio Ferrandi, &#8220;Automated bug detection for pointers and memory accesses in High-Level Synthesis &hellip; <a href=\"https:\/\/panda.deib.polimi.it\/?p=736\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">PandA 0.9.5 released<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-736","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PandA 0.9.5 released - panda.deib.polimi.it<\/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:\/\/panda.deib.polimi.it\/?p=736\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PandA 0.9.5 released - panda.deib.polimi.it\" \/>\n<meta property=\"og:description\" content=\"New features introduced: &#8211; Added support to GCC 6 and GCC 7 (GCC 4.9 is still the preferred GCC compiler). &#8211; Added support to bitfields. &#8211; Added support for pointers and memory operations to the Discrepancy Analysis. Reference paper: Pietro Fezzardi and Fabrizio Ferrandi, &#8220;Automated bug detection for pointers and memory accesses in High-Level Synthesis &hellip; Continue reading PandA 0.9.5 released &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/panda.deib.polimi.it\/?p=736\" \/>\n<meta property=\"og:site_name\" content=\"panda.deib.polimi.it\" \/>\n<meta property=\"article:published_time\" content=\"2017-08-19T13:39:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-05T04:55:14+00:00\" \/>\n<meta name=\"author\" content=\"Fabrizio Ferrandi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@PandA4Design\" \/>\n<meta name=\"twitter:site\" content=\"@PandA4Design\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabrizio Ferrandi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?p=736#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?p=736\"},\"author\":{\"name\":\"Fabrizio Ferrandi\",\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/#\\\/schema\\\/person\\\/bc35ee838f502f880120708c1bb705cb\"},\"headline\":\"PandA 0.9.5 released\",\"datePublished\":\"2017-08-19T13:39:14+00:00\",\"dateModified\":\"2019-09-05T04:55:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?p=736\"},\"wordCount\":875,\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?p=736\",\"url\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?p=736\",\"name\":\"PandA 0.9.5 released - panda.deib.polimi.it\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/#website\"},\"datePublished\":\"2017-08-19T13:39:14+00:00\",\"dateModified\":\"2019-09-05T04:55:14+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/#\\\/schema\\\/person\\\/bc35ee838f502f880120708c1bb705cb\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?p=736#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/panda.deib.polimi.it\\\/?p=736\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?p=736#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/panda.deib.polimi.it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PandA 0.9.5 released\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/#website\",\"url\":\"https:\\\/\\\/panda.deib.polimi.it\\\/\",\"name\":\"panda.deib.polimi.it\",\"description\":\"A framework for Hardware-Software Co-Design of Embedded Systems\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/#\\\/schema\\\/person\\\/bc35ee838f502f880120708c1bb705cb\",\"name\":\"Fabrizio Ferrandi\",\"description\":\"Fabrizio Ferrandi received his Laurea (cum laude) in Electronic Engineering in 1992 and the Ph.D. degree in Information and Automation Engineering (Computer Engineering) from the Politecnico di Milano, Italy, in 1997. He joined the faculty of Politecnico di Milano in 1999 as \\\"Ricercatore\\\" and later in 2002 as Associate Professor with the Dipartimento di Elettronica, Informazione e Bioingegneria. He has published over 100 papers. His research interests include synthesis, verification, simulation and testing of digital circuits and systems. Fabrizio Ferrandi is a Member of IEEE, of the IEEE Computer Society, of the Test Technology Technical Committee and of European Design and Automation Association \u2013 EDAA. Some references to my publications: DBLP Google Scholar\",\"sameAs\":[\"https:\\\/\\\/ferrandi.faculty.polimi.it\\\/\"],\"url\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PandA 0.9.5 released - panda.deib.polimi.it","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:\/\/panda.deib.polimi.it\/?p=736","og_locale":"en_US","og_type":"article","og_title":"PandA 0.9.5 released - panda.deib.polimi.it","og_description":"New features introduced: &#8211; Added support to GCC 6 and GCC 7 (GCC 4.9 is still the preferred GCC compiler). &#8211; Added support to bitfields. &#8211; Added support for pointers and memory operations to the Discrepancy Analysis. Reference paper: Pietro Fezzardi and Fabrizio Ferrandi, &#8220;Automated bug detection for pointers and memory accesses in High-Level Synthesis &hellip; Continue reading PandA 0.9.5 released &rarr;","og_url":"https:\/\/panda.deib.polimi.it\/?p=736","og_site_name":"panda.deib.polimi.it","article_published_time":"2017-08-19T13:39:14+00:00","article_modified_time":"2019-09-05T04:55:14+00:00","author":"Fabrizio Ferrandi","twitter_card":"summary_large_image","twitter_creator":"@PandA4Design","twitter_site":"@PandA4Design","twitter_misc":{"Written by":"Fabrizio Ferrandi","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/panda.deib.polimi.it\/?p=736#article","isPartOf":{"@id":"https:\/\/panda.deib.polimi.it\/?p=736"},"author":{"name":"Fabrizio Ferrandi","@id":"https:\/\/panda.deib.polimi.it\/#\/schema\/person\/bc35ee838f502f880120708c1bb705cb"},"headline":"PandA 0.9.5 released","datePublished":"2017-08-19T13:39:14+00:00","dateModified":"2019-09-05T04:55:14+00:00","mainEntityOfPage":{"@id":"https:\/\/panda.deib.polimi.it\/?p=736"},"wordCount":875,"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/panda.deib.polimi.it\/?p=736","url":"https:\/\/panda.deib.polimi.it\/?p=736","name":"PandA 0.9.5 released - panda.deib.polimi.it","isPartOf":{"@id":"https:\/\/panda.deib.polimi.it\/#website"},"datePublished":"2017-08-19T13:39:14+00:00","dateModified":"2019-09-05T04:55:14+00:00","author":{"@id":"https:\/\/panda.deib.polimi.it\/#\/schema\/person\/bc35ee838f502f880120708c1bb705cb"},"breadcrumb":{"@id":"https:\/\/panda.deib.polimi.it\/?p=736#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/panda.deib.polimi.it\/?p=736"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/panda.deib.polimi.it\/?p=736#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/panda.deib.polimi.it\/"},{"@type":"ListItem","position":2,"name":"PandA 0.9.5 released"}]},{"@type":"WebSite","@id":"https:\/\/panda.deib.polimi.it\/#website","url":"https:\/\/panda.deib.polimi.it\/","name":"panda.deib.polimi.it","description":"A framework for Hardware-Software Co-Design of Embedded Systems","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/panda.deib.polimi.it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/panda.deib.polimi.it\/#\/schema\/person\/bc35ee838f502f880120708c1bb705cb","name":"Fabrizio Ferrandi","description":"Fabrizio Ferrandi received his Laurea (cum laude) in Electronic Engineering in 1992 and the Ph.D. degree in Information and Automation Engineering (Computer Engineering) from the Politecnico di Milano, Italy, in 1997. He joined the faculty of Politecnico di Milano in 1999 as \"Ricercatore\" and later in 2002 as Associate Professor with the Dipartimento di Elettronica, Informazione e Bioingegneria. He has published over 100 papers. His research interests include synthesis, verification, simulation and testing of digital circuits and systems. Fabrizio Ferrandi is a Member of IEEE, of the IEEE Computer Society, of the Test Technology Technical Committee and of European Design and Automation Association \u2013 EDAA. Some references to my publications: DBLP Google Scholar","sameAs":["https:\/\/ferrandi.faculty.polimi.it\/"],"url":"https:\/\/panda.deib.polimi.it\/?author=1"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/posts\/736","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=736"}],"version-history":[{"count":3,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/posts\/736\/revisions"}],"predecessor-version":[{"id":835,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/posts\/736\/revisions\/835"}],"wp:attachment":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}