{"id":28,"date":"2014-11-04T10:27:30","date_gmt":"2014-11-04T09:27:30","guid":{"rendered":"http:\/\/www.fabienm.eu\/flf\/?p=28"},"modified":"2015-04-13T15:58:19","modified_gmt":"2015-04-13T14:58:19","slug":"compiler-ghdl-avec-ses-petites-mains","status":"publish","type":"post","link":"http:\/\/www.fabienm.eu\/flf\/compiler-ghdl-avec-ses-petites-mains\/","title":{"rendered":"Compiler GHDL avec ses petites mains"},"content":{"rendered":"<p><a href=\"https:\/\/sourceforge.net\/projects\/ghdl-updates\/\">GHDL<\/a> est le plus avanc\u00e9 des simulateurs libre pour le <a href=\"http:\/\/fr.wikipedia.org\/wiki\/VHDL\">VHDL<\/a>. GHDL est d\u00e9j\u00e0 int\u00e9gr\u00e9 dans de nombreuses distributions, un simple \u00abapt-get install ghdl\u00bb fonctionne sur une ubuntu ou une debian (wheezy).<\/p>\n<p>Cependant, il se peut que nous souhaitions utiliser la derni\u00e8re version en date de ghdl (0.32). Il se peut aussi que ghdl ne soit pas encore int\u00e9gr\u00e9 \u00e0 notre distribution pr\u00e9f\u00e9r\u00e9e (c&rsquo;est le cas de Debian Jessie), auquel cas nous aurons besoin de compiler l&rsquo;outil depuis les sources.<\/p>\n<p><strong>d\u00e9pendances<\/strong><\/p>\n<p>Les paquets suivants doivent \u00eatre install\u00e9 au pr\u00e9alable :<\/p>\n<pre><code>$ apt-get install gnat mercurial\r\n<\/code><\/pre>\n<p><strong>R\u00e9cup\u00e9rer les sources<\/strong><br \/>\nLes sources se trouvent sur sourceforge et utilise <a href=\"http:\/\/mercurial.selenic.com\/\">mercurial<\/a> comme gestionnaire de version:<\/p>\n<pre><code>$ cd \/opt\/\r\n$ hg clone http:\/\/hg.code.sf.net\/p\/ghdl-updates\/code ghdl-updates-code\r\n<\/code><\/pre>\n<p>Nous allons aussi avoir besoin des sources de gcc:<\/p>\n<pre><code>$ wget ftp:\/\/ftp.uvsq.fr\/pub\/gcc\/releases\/gcc-4.9.2\/gcc-4.9.2.tar.bz2\r\n<\/code><\/pre>\n<p>Une fois les sources t\u00e9l\u00e9charg\u00e9es il faut g\u00e9n\u00e9rer une archive que nous d\u00e9compresserons ensuite dans les sources de gcc.<\/p>\n<pre><code>$ cd ghdl-updates-code\/translate\/gcc\r\n$ .\/dist.sh sources\r\n<\/code><\/pre>\n<p><strong>Installation du vhdl dans gcc<\/strong><\/p>\n<p>On d\u00e9compresse tout d&rsquo;abord les archives de ghdl fraichement g\u00e9n\u00e9r\u00e9e et de gcc:<\/p>\n<pre><code>$ cd \/opt\/\r\n$ tar -jxvf ghdl-updates-code\/translate\/gcc\/ghdl-0.32dev.tar.bz2\r\n$ tar -jxvf gcc-4.9.2.tar.bz2\r\n<\/code><\/pre>\n<p>Puis on copie le code du plugin vhdl dans gcc<\/p>\n<pre><code>$ cp -R ghdl-0.32dev\/vhdl gcc-4.9.2\/gcc\/\r\n<\/code><\/pre>\n<p><strong>Compilation<\/strong><\/p>\n<p>Pour compiler il nous suffit maintenant de nous rendre dans le r\u00e9pertoire de gcc puis de faire un .\/configure, make, make install:<\/p>\n<pre><code>$ cd gcc-4.9.2\/\r\n$ mkdir \/opt\/ghdl\/\r\n$ .\/configure --enable-languages=vhdl --disable-bootstrap --prefix=\/opt\/ghdl\/\r\nmake CFLAGS=\"-O\"\r\n<\/code><\/pre>\n<p>L&rsquo;ajout de \u00ab&#8211;prefix=\/opt\/ghdl\u00bb permet d&rsquo;\u00e9viter de p\u00e9ter son installation de gcc en installant ghdl dans un autre endroit.<\/p>\n<p>Pour utiliser notre version compil\u00e9e de ghdl il suffit donc de l&rsquo;appeler en donnant le bon path :<\/p>\n<pre><code>\r\n$ \/opt\/ghdl\/bin\/ghdl --help\r\nusage: \/opt\/bin\/ghdl COMMAND [OPTIONS] ...\r\n[...]\r\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>GHDL est le plus avanc\u00e9 des simulateurs libre pour le VHDL. GHDL est d\u00e9j\u00e0 int\u00e9gr\u00e9 dans de nombreuses distributions, un simple \u00abapt-get install ghdl\u00bb fonctionne sur une ubuntu ou une debian (wheezy). Cependant, il se peut que nous souhaitions utiliser la derni\u00e8re version en date de ghdl (0.32). Il se peut aussi que ghdl ne &hellip; <a href=\"http:\/\/www.fabienm.eu\/flf\/compiler-ghdl-avec-ses-petites-mains\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Compiler GHDL avec ses petites mains<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[10,9],"tags":[13,14,59,12,60],"class_list":["post-28","post","type-post","status-publish","format-standard","hentry","category-ghdl","category-outils","tag-compilation","tag-gcc","tag-ghdl","tag-linux","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\/martoni\/"},"uagb_comment_info":1,"uagb_excerpt":"GHDL est le plus avanc\u00e9 des simulateurs libre pour le VHDL. GHDL est d\u00e9j\u00e0 int\u00e9gr\u00e9 dans de nombreuses distributions, un simple \u00abapt-get install ghdl\u00bb fonctionne sur une ubuntu ou une debian (wheezy). Cependant, il se peut que nous souhaitions utiliser la derni\u00e8re version en date de ghdl (0.32). Il se peut aussi que ghdl ne\u2026","_links":{"self":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/28","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\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/comments?post=28"}],"version-history":[{"count":14,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/28\/revisions"}],"predecessor-version":[{"id":322,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/posts\/28\/revisions\/322"}],"wp:attachment":[{"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/media?parent=28"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/categories?post=28"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/tags?post=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}