MyHDL – Descrevendo hardware em Python

MyHDL
Este post faz parte da série MyHDL. Leia também os outros posts da série:

Transformar o Python em uma linguagem de descrição e verificação de hardware poderosa, está é a ideia do MyHDL, ferramenta 100% Open Source e gratuita desenvolvida por Jan Decaluwe.

Ferramentas de síntese de alto nível tem aparecido bastante em FPGAs, a ideia é de que a partir de um modelo seja possível gerar um hardware. Sem a necessidade de se preocupar muito com os detalhes de implementação de baixo nível (registradores, portas lógicas, etc.). Não é o caso de MyHDL, apesar de se descrever o hardware em uma linguagem como Python, o hardware ainda é descrito como hardware e não como um modelo de alto nível que deriva um hardware.

No contexto de facilitar o desenvolvimento de hardware e ser uma alternativa as ótimas, mas antigas, linguagens de descrição de hardware (VHDL e Verilog possuem cerca de 35 anos) apareceu o MyHDL.

A ideia é aplicar todos os novos conceitos que apareceram na indústria de desenvolvimento de software de alto nível na descrição de hardware.

Orientação a objeto, desenvolvimento orientado a teste (TDD), testes funcionais, bibliotecas  prontas com diversas funcionalidades implementadas (manipulação de texto, funções matemáticas, parte gráfica e etc.) e tudo mais que faz parte do universo Python está disponível para desenvolvimento de hardware com o MyHDL.

Uma das maiores vantagens de se desenvolver seu hardware em alto nível é utilizar todo o poder do Python. Após realizar todos os testes possíveis em Python e garantir que o seu hardware está funcionando, basta apertar o botão "Vai" e gerar o código em VHDL ou Verilog do seu hardware. (Como bem disse Maxfield em sua entrevista ao Embarcados)

A conversão gera código elegante e sintetizável, para gerar o arquivo de configuração do FPGA basta adicionar os arquivos VHDL ou Verilog na ferramenta de seu fabricante e seguir o fluxo normal de desenvolvimento. Esta ferramenta é utilizada tanto na indústria de FPGA quanto na de ASIC.

Em um próximo post faremos um projeto com esta ferramenta.

Para saber mais

 

Site: http://www.myhdl.org/

Manual de referência: http://docs.myhdl.org/en/latest/

Lista de discussão: http://blog.gmane.org/gmane.comp.python.myhdl

Imagem destacada retirada deste post: http://www.xess.com/blog/learn-fpga-programming-with-myhdl/

Outros artigos da série

Projeto completo de uma UART em MyHDL >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Hardware » Sistemas Digitais » MyHDL - Descrevendo hardware em Python
Comentários:
Notificações
Notificar
guest
4 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Willian Henrique
Willian Henrique
22/07/2014 17:42

Muito legal, em relação ao número de look up tables geradas com relação ao VHDL, alguém já fez alguma comparação?
Parabéns pelo post.

André Castelan
Reply to  Willian Henrique
22/07/2014 18:19

William você ainda descreve o hardware de forma bem semelhante, é possível fazer a exata mesma implementação em MyHDL e VHDL. Tudo depende da sua forma de codificação, na parte de geração ele é basicamente um tradutor de Python para VHDL.

Euripedes Rocha Filho
Euripedes Rocha Filho
22/07/2014 17:10

André, conforme já citei pra você o MyHDL brilha, e muito, quando usado como linguagem de verificação. Infelizmente não há nenhum simulador opensource com capacidade de misturar as linguagens, já que a cosimulação em VHDL nunca pegou de fato( o vpi do verilog é muito mais maduro).

André Castelan
Reply to  Euripedes Rocha Filho
22/07/2014 18:20

Verdade Euripedes! A parte de geração de código é basicamente um tradutor Python -> VHDL.

O código fonte gerado é bem bacana, depende do seu estilo de codificação, estamos avaliando usar somente MyHDL e fazer uma revisão de código no VHDL gerado, se passar mandar bala...

As vantagens para verificação são muito boas.

Um abraço e obrigado pelo auxílio

Talvez você goste:

Séries



Outros da Série

Menu

WEBINAR
 
NVIDIA JETSON – A Inteligência Artificial na palma de sua mão

Data: 08/07 às 14:00h Apoio: Arrow | NVIDIA
 
INSCREVA-SE AGORA »



 
close-link

WEBINAR
 
Redes Mesh para Monitoramento
e Controle de Sensores

Data: 15/07 às 14:00h Apoio: Artimar| Microchip| Tecsus
 
INSCREVA-SE AGORA »



 
close-link