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 >>
Este post faz da série MyHDL. Leia também os outros posts da série:
NEWSLETTER

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

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

4
Deixe um comentário

avatar
 
2 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
André CastelanWillian HenriqueEuripedes Rocha Filho Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Willian Henrique
Visitante
Willian Henrique

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
Visitante

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
Visitante
Euripedes Rocha Filho

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
Visitante

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