{"id":910,"date":"2020-01-17T14:48:25","date_gmt":"2020-01-17T14:48:25","guid":{"rendered":"http:\/\/panda.dei.polimi.it\/?page_id=910"},"modified":"2020-01-17T14:48:25","modified_gmt":"2020-01-17T14:48:25","slug":"bambu-examples","status":"publish","type":"page","link":"https:\/\/panda.deib.polimi.it\/?page_id=910","title":{"rendered":"Bambu: examples"},"content":{"rendered":"<p>The distribution includes several examples under directory example. Here is the list of directories currently included:<\/p>\n<h2>add_device_simple (<a title=\"add_device_simple example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/add_device_simple\">link<\/a>)<\/h2>\n<p>This example shows how to add a non-supported device to the Bambu synthesis flow.<br \/>\nThe file xc7z045-2ffg900-VVD.xml has copied from the framework distribution etc\/devices\/Xilinx_devices\/xc7z020-1clg484-VVD.xml and then renamed in xc7z045-2ffg900-VVD.xml.<br \/>\nAfter copying the file few changes have been made. All of them relate to the new device characteristics: model, package and speed grade.<br \/>\nHere it follows the changed part of the xml file:<br \/>\n<code>    &lt;model value=\"xc7z045\"\/&gt;<\/code><br \/>\n<code>    &lt;package value=\"ffg900\"\/&gt;<\/code><br \/>\n<code>    &lt;speed_grade value=\"-2\"\/&gt;<\/code><\/p>\n<p>Note that the field<br \/>\n<code>    &lt;family value=\"Zynq-VVD\"\/&gt;<\/code><br \/>\nrefers to the synthesis script stored in etc\/devices\/Xilinx_devices\/Zynq-VVD.xml.<br \/>\nSo, the bambu.sh will first simulate and then synthesize the C based description using the above specified Zynq device.<\/p>\n<p>Note that, this example shows another nice feature of the HLS framework. The file module.c contains the C specification of the factorial function in its recursive form.<br \/>\nBambu is not actually able to synthesize recursive functions but GCC is able to automatically translate it in its non-recursive form once -O2 option is passed. To understand what exactly<br \/>\nhas been synthesized please check the a.c in the sim or synth directory created by bambu.sh.<br \/>\nThe new device considered in this example is very similar to one of the already supported. In case the device is not very similar to one of the already characterized devices, the user should<br \/>\ncheck and accordingly add the characterization scripts. Examples of characterization scripts based on eucalyptus are available in etc\/devices.<br \/>\nNote that, eucalyptus is automatically built once an RTL synthesis back-end is configured.<\/p>\n<h2>arf (<a title=\"arf example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/arf\">link<\/a>)<\/h2>\n<p>This directory includes a simple example of High Level synthesis and generation of RTL simulation&amp;synthesis scripts.<br \/>\nThe results of the HLS synthesis could be inspected by looking into testbench\/hls_summary_0.xml.<br \/>\nThe result of the scheduling could be graphically viewed by exploiting a viewer of dot files (e.g., xdot or dotty).<br \/>\nIn particular, Bambu generates several dot files by passing the option &#8211;print-dot.<br \/>\nThe scheduling of the arf function is stored in file HLS_output\/dot\/arf\/HLS_scheduling.dot while the FSM of the arf function annotated with the C statements is stored in file HLS_output\/dot\/arf\/HLS_STGraph.dot.<\/p>\n<h2>arf_res_sharing (<a title=\"arf_res_sharing example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/arf_res_sharing\">link<\/a>)<\/h2>\n<p>In this directory, the impact of resource sharing on multipliers for the arf benchmark is considered. Two sets of scripts are provided: constrained and non-constrained based synthesis scripts.<br \/>\nThe devices considered are the ones supported by Bambu.<br \/>\nIn all the synthesis performed, the WB4 interface has been used to avoid issues with the high number of IO pins required by the arf function when synthesized alone.<br \/>\nBasically, adding a constraint on the number of used multipliers used requires to pass to Bambu a xml file structured in this way:<\/p>\n<pre>&lt;?xml version=\"1.0\"?&gt;\r\n&lt;constraints&gt;\r\n   &lt;HLS_constraints&gt;\r\n      &lt;tech_constraints fu_name=\"mult_expr_FU\" fu_library=\"STD_FU\" n=\"1\"\/&gt;\r\n   &lt;\/HLS_constraints&gt;\r\n&lt;\/constraints&gt;\r\n<\/pre>\n<h2>crc (<a title=\"crc example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/crc\">link<\/a>)<\/h2>\n<p>This directory collects several scripts to test the multi-bus feature of bambu.<br \/>\nThe file test_icrc.xml shows how to write xml testcases for array-based function parameters.<\/p>\n<h2>crc_yosys (<a title=\"crc_yosys example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/crc_yosys\">link<\/a>)<\/h2>\n<p>This directory shows an example of how it is possible to write a C-based testbench to test a given kernel.<br \/>\nThe kernel function is defined through the option &#8211;top-rtldesign-name.<\/p>\n<p>This design flow requires to add two attributes to the kernel function:<\/p>\n<pre>  __attribute__ ((noinline)) __attribute__ ((used))  \r\n<\/pre>\n<p>and to insert this two timing functions:<\/p>\n<pre>        __builtin_bambu_time_start();\r\n        __builtin_bambu_time_stop();\r\n<\/pre>\n<p>These two functions will start and stop a timer used by Bambu to compute the total number of cycles spent in the kernel function.<br \/>\nThe target device is a Zynq xc7z020,-1,clg484 and the back-end flow is based on yosys open-source RTL synthesis tool (http:\/\/www.clifford.at\/yosys\/).<\/p>\n<h2>crypto_designs (<a title=\"crypto_designs example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/crypto_designs\">link<\/a>)<\/h2>\n<p>This example starts from the reference C description of Keccak crypto function distributed through this website http:\/\/keccak.noekeon.org\/.<br \/>\nKeccak has been selected by NIST to become the new SHA-3 standard (see http:\/\/www.nist.gov\/hash-competition and http:\/\/ehash.iaik.tugraz.at\/wiki\/The_SHA-3_Zoo).<br \/>\nFurther details can be found at http:\/\/ehash.iaik.tugraz.at\/wiki\/Keccak.<br \/>\nTogether with the C implementation optimized for processors, there exist several implementations for FPGA and ASIC.<br \/>\nSo, as a referenced it has been selected one of the Low-Area Implementations developed by the authors of the Keccak algorithm (i.e., Guido Bertoni-STMicroelectronics, Joan Daemen-STMicroelectronics, Micha\u00ebl Peeters-NXP Semiconductors and Gilles Van Assche-STMicroelectronics).<\/p>\n<p>The results reported at this link http:\/\/ehash.iaik.tugraz.at\/wiki\/SHA-3_Hardware_Implementations are:<\/p>\n<pre>Altera Cyclone III 1559LEs 47.8Mbit\/s 181 MHz\r\n\r\nXilinx Virtex 5 444slices 70.1Mbit\/s 265 MHz\r\n<\/pre>\n<p>Starting from the C description delivered as a reference, it has been built an equivalent C function (equivalent to the VHDL reference design).<br \/>\nAfter two days of hacking and design space exploration, here are 5 different alternatives using different FPGAs:<\/p>\n<pre>Altera Cyclone II 5460LEs 66.9Mbit\/s 107MHz (directory keccak_CycloneII_10)\r\n\r\nAltera Cyclone II 8681LEs 150.8Mbit\/s 262MHz (directory keccak_CycloneII_4hl)\r\n\r\nLattice ECP3 3789slices 80.2Mbit\/s 128MHz (directory keccak_ECP3_10_09)\r\n\r\nLattice ECP3 3831slices 80.2Mbit\/s 128MHz (directory keccak_ECP3_9)\r\n\r\nXilinx Virtex 5 7015slices 152.69Mbit\/s 252MHz (directory keccak_V5_4hl)\r\n<\/pre>\n<p>These results have been obtained with PandA framework 0.9.3.<\/p>\n<p>Along with this example, another one comes showing how it is possible to build an Autotools project for the high-level synthesis with bambu: directory crypto_designs\/multi-keccak.<\/p>\n<h2>fft_example (<a title=\"fft_example example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/fft_example\">link<\/a>)<\/h2>\n<p>This directory includes an example program which computes the FFT of a short pulse in a sample of length 128.<\/p>\n<h2>function_pointers (<a title=\"function_pointers example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/function_pointers\">link<\/a>)<\/h2>\n<p>Scripts, updated results, and code related to this paper:<br \/>\nMarco Minutoli, Vito Giovanni Castellana, Antonino Tumeo, Fabrizio Ferrandi: Inter-procedural resource sharing in High Level Synthesis through function proxies. FPL 2015: 1-8.<\/p>\n<h2>CHStone (<a title=\"CHStone example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/CHStone\">link<\/a>)<\/h2>\n<p>This directory contains the CHStone v1.11 benchmarks taken from http:\/\/www.ertl.jp\/chstone\/ and all the scripts used and results obtained with bambu.<\/p>\n<h2>mm (<a title=\"mm example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/mm\">link<\/a>)<\/h2>\n<p>In this directory, it is shown how to write a test.xml file when multi-dimensional arrays are used as function parameters.<br \/>\nThe example uses the option &#8211;memory-allocation-policy=EXT_PIPELINED_BRAM. This option is used to declare that the parameters are allocated on a block ram memory (e.g., pipelining access is possible).<\/p>\n<h2>mm_float (<a title=\"mm_float example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/mm_float\">link<\/a>)<\/h2>\n<p>This example is very similar to the mm example.<br \/>\nThere are mainly two differences:<br \/>\n&#8211; the two dimensions of the arrays are passed as a parameter;<br \/>\n&#8211; the matrix elements are floats.<\/p>\n<h2>libm (<a title=\"libm example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/libm\">link<\/a>)<\/h2>\n<p>This directory contains scripts and results obtained on the libm functions supported by bambu.<\/p>\n<h2>VGA (<a title=\"VGA example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/VGA\">link<\/a>)<\/h2>\n<p>Vga Adapter on Altera DE1 Cyclone II (EP2C20F484C7N).<br \/>\nThe main aim of the project is to develop an application written in C which drives a VGA-compatible screen connected to a DE1 Altera FPGA.<br \/>\nThe design includes some Verilog IPs which control the VGA port and shows how Bambu can manage existing IPs described by using hardware description languages.<\/p>\n<h2>VGA_Nexys4 (<a title=\"VGA_Nexys4 example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/VGA_Nexys4\">link<\/a>)<\/h2>\n<p>This simple example shows how to integrate C code with low-level interfaces written in Verilog.<br \/>\nThe design improves the VGA example by adapting such design to the more capable NEXYS4 prototyping board.<\/p>\n<h2>file_simulate (<a title=\"file_simulate example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/file_simulate\">link<\/a>)<\/h2>\n<p>In this directory, an example of how Bambu can use IO libc primitives (open, read, write and close) is shown.<\/p>\n<h2>IP_integration (<a title=\"IP_integration example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/IP_integration\">link<\/a>)<\/h2>\n<p>This directory contains a simple example describing how to integrate and verify existing IPs with functions written in C that receives structs passed by pointers.<\/p>\n<h2>simple_asm (<a title=\"simple_asm example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/simple_asm\">link<\/a>)<\/h2>\n<p>This simple example shows how to integrate small snippet of Verilog in the HLS flow by making Bambu use Verilog as third assembler dialect.<br \/>\nCurrently, only single output asm instructions are supported. In case outputs are included to pass the simulation the Intel and the ATT asm should be included. For asm having only inputs, such asm string could be safely left empty.<br \/>\nA detailed reference on how asm statements are considered by GCC could be found at this link:https:\/\/gcc.gnu.org\/onlinedocs\/gcc\/Extended-Asm.html.<\/p>\n<h2>python-bindings (<a title=\"python-bindings example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/python-bindings\">link<\/a>)<\/h2>\n<p>This directory includes an example showing how to integrate Python for design verification.<\/p>\n<h2>led_example (<a title=\"led_example example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/led_example\">link<\/a>)<\/h2>\n<p>This directory includes an example of a simple GPIO controller developed to show how to integrate Verilog IPs with plain C.<\/p>\n<h2>pong (<a title=\"pong example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/pong\">link<\/a>)<\/h2>\n<p>This directory includes the Pong game ported to Nexys4 prototyping board. Pong was the first game developed by Atari Inc. and was designed and built by Allan Alcorn. Further information can be found at https:\/\/en.wikipedia.org\/wiki\/Pong.<br \/>\nThe code has been ported by Fabrizio Ferrandi by adapting an SDL based tutorial to the PandA methodology for the integration of low-level IP cores written in Verilog.<br \/>\nThe original SDL code can be found at http:\/\/www.aaroncox.net\/tutorials\/arcade\/PaddleBattle.html.<br \/>\nThe artificial intelligence used to control the computer paddle is based on a random function described at http:\/\/burtleburtle.net\/bob\/rand\/smallprng.html<\/p>\n<h2>breakout (<a title=\"breakout example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/breakout\">link<\/a>)<\/h2>\n<p>This directory includes the breakout game ported to Nexys4 prototyping board. The game was designed by Nolan Bushnell, Steve Wozniak, and Steve Bristow. History of Breakout game can be found at this link: https:\/\/en.wikipedia.org\/wiki\/Breakout_%28video_game%29.<br \/>\nThe code has been ported by Fabrizio Ferrandi by adapting an SDL based tutorial to the PandA methodology for the integration of low-level IP cores written in Verilog.<br \/>\nThe original SDL code can be found at http:\/\/www.aaroncox.net\/tutorials\/arcade\/BRICKBreaker.html.<\/p>\n<h2>MachSuite (<a title=\"MachSuite example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/MachSuite\">link<\/a>)<\/h2>\n<p>This directory contains the scripts, the results and code of the MachSuite benchmarks set which is described in this paper:<\/p>\n<p>Brandon Reagen, Robert Adolf, Sophia Yakun Shao, Gu-Yeon Wei, and David Brooks.<br \/>\n&#8220;MachSuite: Benchmarks for Accelerator Design and Customized Architectures.&#8221;<br \/>\n2014 IEEE International Symposium on Workload Characterization.<\/p>\n<h2>hls_study (<a title=\"hls_study example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/hls_study\">link<\/a>)<\/h2>\n<p>This directory includes the scripts, the updated results and the code related to this paper:<\/p>\n<p>R. Nane, V. M. Sima, C. Pilato, J. Choi, B. Fort, A. Canis, Y. T. Chen, H. Hsiao, S. Brown, F. Ferrandi, J. Anderson, and K. Bertels, \u201cA Survey and Evaluation of FPGA High-Level Synthesis Tools,\u201d IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. PP, iss. 99, pp. 1-1, 2016.<\/p>\n<h2>softfloat (<a title=\"softfloat example on GihHub\" href=\"https:\/\/github.com\/ferrandi\/PandA-bambu\/tree\/master\/examples\/softfloat\">link<\/a>)<\/h2>\n<p>This directory includes scripts and code testing single and double precision basic operations: division, subtraction, addition and multiplication.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The distribution includes several examples under directory example. Here is the list of directories currently included: add_device_simple (link) This example shows how to add a non-supported device to the Bambu synthesis flow. The file xc7z045-2ffg900-VVD.xml has copied from the framework distribution etc\/devices\/Xilinx_devices\/xc7z020-1clg484-VVD.xml and then renamed in xc7z045-2ffg900-VVD.xml. After copying the file few changes have been &hellip; <a href=\"https:\/\/panda.deib.polimi.it\/?page_id=910\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Bambu: examples<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":31,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-910","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Bambu: examples - 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\/?page_id=910\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bambu: examples - panda.deib.polimi.it\" \/>\n<meta property=\"og:description\" content=\"The distribution includes several examples under directory example. Here is the list of directories currently included: add_device_simple (link) This example shows how to add a non-supported device to the Bambu synthesis flow. The file xc7z045-2ffg900-VVD.xml has copied from the framework distribution etc\/devices\/Xilinx_devices\/xc7z020-1clg484-VVD.xml and then renamed in xc7z045-2ffg900-VVD.xml. After copying the file few changes have been &hellip; Continue reading Bambu: examples &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/panda.deib.polimi.it\/?page_id=910\" \/>\n<meta property=\"og:site_name\" content=\"panda.deib.polimi.it\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@PandA4Design\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?page_id=910\",\"url\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?page_id=910\",\"name\":\"Bambu: examples - panda.deib.polimi.it\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/#website\"},\"datePublished\":\"2020-01-17T14:48:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?page_id=910#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/panda.deib.polimi.it\\\/?page_id=910\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?page_id=910#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/panda.deib.polimi.it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bambu\",\"item\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?page_id=31\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Bambu: examples\"}]},{\"@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\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bambu: examples - 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\/?page_id=910","og_locale":"en_US","og_type":"article","og_title":"Bambu: examples - panda.deib.polimi.it","og_description":"The distribution includes several examples under directory example. Here is the list of directories currently included: add_device_simple (link) This example shows how to add a non-supported device to the Bambu synthesis flow. The file xc7z045-2ffg900-VVD.xml has copied from the framework distribution etc\/devices\/Xilinx_devices\/xc7z020-1clg484-VVD.xml and then renamed in xc7z045-2ffg900-VVD.xml. After copying the file few changes have been &hellip; Continue reading Bambu: examples &rarr;","og_url":"https:\/\/panda.deib.polimi.it\/?page_id=910","og_site_name":"panda.deib.polimi.it","twitter_card":"summary_large_image","twitter_site":"@PandA4Design","twitter_misc":{"Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/panda.deib.polimi.it\/?page_id=910","url":"https:\/\/panda.deib.polimi.it\/?page_id=910","name":"Bambu: examples - panda.deib.polimi.it","isPartOf":{"@id":"https:\/\/panda.deib.polimi.it\/#website"},"datePublished":"2020-01-17T14:48:25+00:00","breadcrumb":{"@id":"https:\/\/panda.deib.polimi.it\/?page_id=910#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/panda.deib.polimi.it\/?page_id=910"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/panda.deib.polimi.it\/?page_id=910#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/panda.deib.polimi.it\/"},{"@type":"ListItem","position":2,"name":"Bambu","item":"https:\/\/panda.deib.polimi.it\/?page_id=31"},{"@type":"ListItem","position":3,"name":"Bambu: examples"}]},{"@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"}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/pages\/910","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/types\/page"}],"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=910"}],"version-history":[{"count":4,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/pages\/910\/revisions"}],"predecessor-version":[{"id":915,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/pages\/910\/revisions\/915"}],"up":[{"embeddable":true,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/pages\/31"}],"wp:attachment":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}