{"id":2534,"date":"2026-10-13T08:07:38","date_gmt":"2026-10-13T07:07:38","guid":{"rendered":"https:\/\/www.fabienm.eu\/flf\/?p=2534"},"modified":"2026-10-13T08:07:38","modified_gmt":"2026-10-13T07:07:38","slug":"colibri-enfin-une-bibliotheque-vhdl-libre-utilisable-par-tous","status":"publish","type":"post","link":"http:\/\/www.fabienm.eu\/flf\/colibri-enfin-une-bibliotheque-vhdl-libre-utilisable-par-tous\/","title":{"rendered":"Colibri, enfin une biblioth\u00e8que VHDL libre utilisable par tous"},"content":{"rendered":"\n<p><a href=\"https:\/\/linuxfr.org\/news\/colibri-enfin-une-bibliotheque-vhdl-libre-utilisable-par-tous\">[ Article apparu en premier sur LinuxFR ]<\/a><\/p>\n\n\n\n<p>Le CERN vient de sortir une biblioth\u00e8que VHDL (VHDL-2008) ind\u00e9pendante du mat\u00e9riel sous licence CERN-OHL-W-2.0.<\/p>\n\n\n\n<p>Le <a href=\"https:\/\/fr.wikipedia.org\/wiki\/VHDL\">VHDL<\/a> est le langage de description mat\u00e9riel (Hardware Description Language) de r\u00e9f\u00e9rence avec le <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Verilog\">Verilog<\/a>. Il est utilis\u00e9 pour d\u00e9crire des mod\u00e8les num\u00e9riques de composant. Ces mod\u00e8les sont utilis\u00e9s pour la <strong>simulation<\/strong> mais \u00e9galement pour la <strong>synth\u00e8se<\/strong> \u00e0 destination de cible comme les FPGA, ASIC\u2026<\/p>\n\n\n\n<p>Le principe de l\u2019\u00e9tape de la synth\u00e8se est de transformer le mod\u00e8le VHDL en une repr\u00e9sentation mat\u00e9rielle du circuit d\u2019\u00e9lectronique num\u00e9rique constitu\u00e9 de portes logiques, bascules, multiplexeurs, additionneurs, etc.<\/p>\n\n\n\n<p>Et c\u2019est la synth\u00e8se qui pose souvent probl\u00e8me : un mod\u00e8le VHDL correct, \u00e9crit pour la simulation, ne synth\u00e9tisera pas forc\u00e9ment. Certaines structures ne peuvent pas \u00eatre d\u00e9crites en termes de portes logiques, on parlera dans ce cas de VHDL <strong>non synth\u00e9tisable<\/strong>. Pour complexifier la partie, certaines structures peuvent \u00eatre synth\u00e9tisables pour une cible mais pas pour une autre.<\/p>\n\n\n\n<p>Ces sp\u00e9cificit\u00e9s ont amen\u00e9 chaque entreprise \u00e0 d\u00e9velopper leurs propres biblioth\u00e8ques adapt\u00e9es \u00e0 leurs propres besoins, tout en ajoutant une couche d\u2019environnement de d\u00e9veloppement sp\u00e9cifique (Qsys, vivado\u2026). Ces r\u00e9servoirs de codes sp\u00e9cifiques \u00e0 une plate-forme et \u00e0 une culture d\u2019entreprise rendent le portage ou m\u00eame la publication en open-source tr\u00e8s compliqu\u00e9.<\/p>\n\n\n\n<p>Depuis toujours, il manque cruellement une biblioth\u00e8que standard pour disposer de briques de base en conception HDL.<\/p>\n\n\n\n<p>C\u2019est pour tenter de r\u00e9soudre ce probl\u00e8me que le CERN&nbsp;publie sa biblioth\u00e8que <a href=\"https:\/\/ep-news.web.cern.ch\/colibri-cern-vhdl-common-library-released-for-everyone-to-use\/\">Colibri en opensource<\/a>.<\/p>\n\n\n\n<p>La biblioth\u00e8que propose les \u00e9l\u00e9ments suivant (traduction libre de la doc):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>colibri.common<\/code> : Fonctions standards<\/li>\n\n\n\n<li><code>colibri.comms<\/code> : Utilitaires pour la communication (PRBS, CRC\u2026)<\/li>\n\n\n\n<li><code>colibri.endec<\/code> : Encodeurs et d\u00e9codeurs (RLE, 8b10b\u2026)<\/li>\n\n\n\n<li><code>colibri.fileio<\/code> : Op\u00e9rations sur les fichiers<\/li>\n\n\n\n<li><code>colibri.interfaces<\/code> : Protocoles de Bus et Flux Components (AXI, Avalon, Wishbone\u2026)<\/li>\n\n\n\n<li><code>colibri.io<\/code> : Bus \u00e9lectroniques standards (UART, I2C, SPI\u2026)<\/li>\n\n\n\n<li><code>colibri.memory<\/code> : Blocs de RAM, FIFO\u2026 (FIFO, RAM)<\/li>\n\n\n\n<li><code>colibri.misc<\/code> : Divers<\/li>\n\n\n\n<li><code>colibri.pipes<\/code> : Pipes (Arbiter, Router\u2026)<\/li>\n\n\n\n<li><code>colibri.packet<\/code> : Gestion des flux de paquets<\/li>\n\n\n\n<li><code>colibri.proto<\/code> : Quelques protocoles standards (Aurora 64b66b\u2026)<\/li>\n<\/ul>\n\n\n\n<p>Depuis quelques ann\u00e9es maintenant, le CERN a une politique ambitieuse d\u2019ouverture du mat\u00e9riel tr\u00e8s efficace. On pense notamment \u00e0 la prise en compte de <a href=\"https:\/\/www.kicadprojects.com\/\">Kicad<\/a> qui rivalise aujourd\u2019hui avec les concurrents historiques. On pense \u00e9galement \u00e0 la plate-forme <a href=\"https:\/\/ohwr.org\/\">Open Hardware Repository<\/a> (ohwr pour les intimes) qui permet le partage de dossier de fabrication de cartes \u00e9lectronique librement.<\/p>\n\n\n\n<p>Esp\u00e9rons que cette biblioth\u00e8que puisse infuser dans toutes les strates du d\u00e9veloppement HDL et qu\u2019elle devienne un standard. La conception num\u00e9rique (FPGA mais \u00e9galement ASIC) en serait grandement am\u00e9lior\u00e9e soyons en certains.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Aller plus loin<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/linuxfr.org\/redirect\/118157\">colibri: CERN VHDL Common Library released for Everyone to Use<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/linuxfr.org\/redirect\/118158\">Le d\u00e9p\u00f4t gitlab du projet<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>[ Article apparu en premier sur LinuxFR ] Le CERN vient de sortir une biblioth\u00e8que VHDL (VHDL-2008) ind\u00e9pendante du mat\u00e9riel sous licence CERN-OHL-W-2.0. Le VHDL est le langage de description mat\u00e9riel (Hardware Description Language) de r\u00e9f\u00e9rence avec le Verilog. Il est utilis\u00e9 pour d\u00e9crire des mod\u00e8les num\u00e9riques de composant. Ces mod\u00e8les sont utilis\u00e9s pour la &hellip; <a href=\"http:\/\/www.fabienm.eu\/flf\/colibri-enfin-une-bibliotheque-vhdl-libre-utilisable-par-tous\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Colibri, enfin une biblioth\u00e8que VHDL libre utilisable par tous<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[22,3,24,11],"tags":[287,238,286,60],"class_list":["post-2534","post","type-post","status-publish","format-standard","hentry","category-blog","category-langages","category-materiel","category-vhdl","tag-bibliotheque","tag-cern","tag-colibri","tag-vhdl"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false},"uagb_author_info":{"display_name":"Fabien Marteau","author_link":"http:\/\/www.fabienm.eu\/flf\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"[ Article apparu en premier sur LinuxFR ] Le CERN vient de sortir une biblioth\u00e8que VHDL (VHDL-2008) ind\u00e9pendante du mat\u00e9riel sous licence CERN-OHL-W-2.0. Le VHDL est le langage de description mat\u00e9riel (Hardware Description Language) de r\u00e9f\u00e9rence avec le Verilog. Il est utilis\u00e9 pour d\u00e9crire des mod\u00e8les num\u00e9riques de composant. Ces mod\u00e8les sont utilis\u00e9s pour la\u2026","_links":{"self":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/2534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/comments?post=2534"}],"version-history":[{"count":1,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/2534\/revisions"}],"predecessor-version":[{"id":2535,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/2534\/revisions\/2535"}],"wp:attachment":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/media?parent=2534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/categories?post=2534"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/tags?post=2534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}