{"id":478,"date":"2016-03-16T21:13:53","date_gmt":"2016-03-16T20:13:53","guid":{"rendered":"http:\/\/www.fabienm.eu\/flf\/?page_id=478"},"modified":"2019-06-25T20:51:21","modified_gmt":"2019-06-25T19:51:21","slug":"myhdl","status":"publish","type":"page","link":"https:\/\/www.fabienm.eu\/flf\/hdl\/myhdl\/","title":{"rendered":"MyHDL"},"content":{"rendered":"<p>MyHDL est un framework Python permettant de mod\u00e9liser et simuler des designs de type RTL. La convertion des designs MyHDL en VHDL et\/ou Verilog est \u00e9galement possible.<br \/>\nContrairement \u00e0 Migen, il n&rsquo;y a pas de \u00ab\u00a0mini-langage\u00a0\u00bb. Tout est \u00e9crit en Python standard avec l&rsquo;aide des classes, fonctions et d\u00e9corateurs sp\u00e9cifiques ajout\u00e9es par le framework.<\/p>\n<p>MyHDL est tr\u00e8s \u00e0 l&rsquo;aise dans la mod\u00e9lisation de concepts : En simulation pure, tout est possible ou presque.<br \/>\nPar exemple, une FIFO peut \u00eatre simul\u00e9e \u00e0 l&rsquo;aide d&rsquo;une liste et d&rsquo;un compteur. Il est bien \u00e9vident que ce n&rsquo;est pas convertible en VHDL ou Verilog. Une fois le concept valid\u00e9, les \u00e9l\u00e9ments du design seront cod\u00e9s de fa\u00e7on \u00e0 ce qu&rsquo;ils soient convertibles.<\/p>\n<p>En simulation, les donn\u00e9es de simulation peuvent \u00eatre export\u00e9es dans un fichier au format vcd. Ce fichier sera lu par un logiciel adapt\u00e9 (GtkWave par exemple) qui affichera les formes d&rsquo;ondes des signaux du design.<br \/>\nBeaucoup de librairies Python peuvent aider \u00e0 la mise au point des designs. Matplotlib peut afficher des courbes d\u00e9riv\u00e9es des donn\u00e9es de simulation. Lors de la conception de filtres photo, PIL permet de lire des images pour les injecter dans le design en cours de simulation. Bien d&rsquo;autres possibilit\u00e9s s&rsquo;offrent au concepteur.<\/p>\n<ul>\n<li><a href=\"http:\/\/www.myhdl.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">MyHDL<\/a>: Le site officiel<\/li>\n<li><a href=\"https:\/\/github.com\/myhdl\/myhdl\" target=\"_blank\" rel=\"noopener noreferrer\">Github<\/a>: Le code sur github<\/li>\n<li><a href=\"http:\/\/discourse.myhdl.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Discourse<\/a> : Support en ligne par la communaut\u00e9<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>MyHDL est un framework Python permettant de mod\u00e9liser et simuler des designs de type RTL. La convertion des designs MyHDL en VHDL et\/ou Verilog est \u00e9galement possible. Contrairement \u00e0 Migen, il n&rsquo;y a pas de \u00ab\u00a0mini-langage\u00a0\u00bb. Tout est \u00e9crit en Python standard avec l&rsquo;aide des classes, fonctions et d\u00e9corateurs sp\u00e9cifiques ajout\u00e9es par le framework. MyHDL &hellip; <a href=\"https:\/\/www.fabienm.eu\/flf\/hdl\/myhdl\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">MyHDL<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"parent":468,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-478","page","type-page","status-publish","hentry"],"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":"Nicolas Pinault","author_link":"https:\/\/www.fabienm.eu\/flf\/author\/nicolasp\/"},"uagb_comment_info":0,"uagb_excerpt":"MyHDL est un framework Python permettant de mod\u00e9liser et simuler des designs de type RTL. La convertion des designs MyHDL en VHDL et\/ou Verilog est \u00e9galement possible. Contrairement \u00e0 Migen, il n&rsquo;y a pas de \u00ab\u00a0mini-langage\u00a0\u00bb. Tout est \u00e9crit en Python standard avec l&rsquo;aide des classes, fonctions et d\u00e9corateurs sp\u00e9cifiques ajout\u00e9es par le framework. MyHDL\u2026","_links":{"self":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/pages\/478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/comments?post=478"}],"version-history":[{"count":2,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/pages\/478\/revisions"}],"predecessor-version":[{"id":966,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/pages\/478\/revisions\/966"}],"up":[{"embeddable":true,"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/pages\/468"}],"wp:attachment":[{"href":"https:\/\/www.fabienm.eu\/flf\/wp-json\/wp\/v2\/media?parent=478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}