O que me faria escolher o Verilog ou o VHDL em vez do design esquemático em CPLDs ou FPGAs?

13

Não tenho absolutamente nenhum conhecimento de lógica programável, uso principalmente microcontroladores em meus projetos, mas recentemente precisei trabalhar com vídeo e o microcontrolador é muito lento para o que precisava, então comecei a jogar com CPLDs.

Consegui obter bons resultados com o CPLD apenas usando o desenho esquemático, mas ao pesquisar informações sobre os CPLDs me deparei com muitos exemplos usando VHDL e Verilog. Estou curioso sobre o que poderia me fazer querer definir meu dispositivo em um desses idiomas. O que eles podem fazer que o desenho esquemático não pode? Eles são usados ​​principalmente para funções?

Até agora, usei apenas CPLDs, os projetos de FPGAs se beneficiam mais do que os CPLDs de usar esses idiomas?

Bruno Ferreira
fonte
1
Você provavelmente encontrará ferramentas de síntese fornecidas pelo fornecedor para Verilog e VHDL para peças comuns. Portanto, a escolha é puramente opinião. Eu encorajo você a olhar para os dois e decidir qual você prefere. O Xilinx fornece bons exemplos nos dois idiomas, eu suspeito que outros fornecedores também.
David
3
Você definitivamente deve se afastar da captura esquemática para o design lógico. Ele se sente mais fácil no início, mas isso é ilusório. Meus US $ 0,02 em idiomas: VHDL é uma abominação, use o Verilog.
Markt
@markt, por que você acha que o VHDL é tão ruim assim?
stanri
2
Poder-se-ia igualmente dizer que Verilog é uma abominação, use VHDL. O VHDL espera que você diga exatamente o que deseja, enquanto o Verilog meio que adivinha. Mas isso é apenas meus 0,02 libras.
Brian Drummond
1
@markt, eu comecei com o VHDL, então, a certa altura, apreciei o forte tipo de digitação. Isso me forçou a pensar no que queria e criar bons hábitos quando estava começando. Agora estou muito longe no campo SystemVerilog para me importar muito de qualquer maneira, honestamente.
stanri

Respostas:

14

O design esquemático só é útil quando você está unindo apenas alguns módulos prontos para uso (contadores, somadores, memória, etc.). Mas implementar um algoritmo real (por exemplo, um algoritmo de hash de criptografia) é quase impossível sem um HDL (como VHDL ou Verilog), já que não há como descrever um sistema em nível comportamental com símbolos esquemáticos.

A maioria dos projetos é feita em HDL de estilo comportamental, porque são muito complexos para serem sintetizados manualmente e desenhados usando esquemas primitivos de lógica.

Os CPLDs geralmente são usados ​​para lógica de colagem e menos usados ​​para processamento, e geralmente a lógica é fácil de implementar esquematicamente; portanto, acho que você está certo quando sugere que os projetos baseados em FPGA se beneficiam mais com o uso de um HDL.

Jay Carlson
fonte
Você pode fazer coisas muito complexas em um sistema esquemático simbólico. Eu chegaria ao ponto de dizer que tudo o que pode ser feito em um HDL pode ser implementado em um sistema esquemático, embora às custas da manutenção. Desde que o conjunto de ferramentas possa definir blocos de símbolos que atuam como um único símbolo, você pode fazer praticamente qualquer coisa.
Connor Lobo
1
Um bom exemplo aqui é o labview. É uma interface de programação simbólica em que as pessoas projetam sistemas massivamente complexos que automatizam fábricas inteiras. O resultado final é quase impossível de manter , mas é possível (nota: não estou falando se é uma boa ideia, apenas a viabilidade básica).
Connor Lobo
"A maioria dos projetos é feita em HDL de estilo comportamental ..." não é suportável e, de fato, NÃO é como os fluxos de design funcionam.
placeholder
@ConnorWolf Tenho que discordar que o código do Labview é tão impossível de manter - não que eu seja um grande fã. Existem algumas práticas recomendadas que realmente ajudam. Para mim, sua geralmente o abandono a qualquer esperança de compatibilidade para a frente ou para trás que causa problemas de manutenção, ao contrário de qualquer coisa inerente ao G-linguagem;)
Scott Seidman
4

Alguns aspectos práticos, além da excelente resposta de Jay:

  • Insetos. As ferramentas esquemáticas tendem a ser mais complicadas * do que o restante do conjunto de ferramentas. Possivelmente, isso se deve à preferência do Verilog / VHDL sobre os esquemas do setor e, portanto, a entrada esquemática recebe menos atenção pelos desenvolvedores de software.
  • Rapidez. O esquema precisa primeiro ser convertido em HDL antes de passá-lo para a ferramenta de síntese. Isso pode ter um impacto negativo nos tempos de construção. O HDL gerado também pode não ser muito legível se você precisar inspecioná-lo por algum motivo.
  • Portabilidade. Dependendo da quantidade de primitivas específicas do fornecedor usadas, o Verilog e o VHDL são mais ou menos portáteis entre os dispositivos. Esquemas de portabilidade, você precisa redesenhar tudo ou confiar nos recursos de importação / exportação fornecidos (se houver).

* Meu bug favorito no Xilinx ISE era a incapacidade de selecionar fios verticais.

wailashi
fonte
2

Existem muitas vantagens de um HDL (Linguagens de descrição de hardware) como padrão de entrada de projeto.

A descrição da funcionalidade pode estar em um nível mais alto; os projetos baseados em HDL podem ser sintetizados em uma descrição no nível de porta de uma tecnologia escolhida. reduza erros devido à forte verificação de tipo.

As linguagens de descrição de hardware VHDL e Verilog foram projetadas para modelar hardware com a intenção de modelar em um nível de abstração mais alto, que inclui recursos como simultaneidade, tempo, hierarquia, reutilização de componentes, comportamento de estado, comportamento síncrono, comportamento assíncrono, sincronização e paralelismo inerente .

Problemas surgem durante a síntese, mapeando a descrição do projeto para um processo específico e implementação de porta. Isso requer que você não possa usar os recursos de alto nível do HDL - você deve produzir "Verilog / VHDL sintetizável"

Portanto, você possui HDL para síntese e HDL para simulação e o subconjunto sintetizável é específico da ferramenta.

Você não pode passar de uma descrição de design comportamental para uma lista de rede / layout. Mas você pode estruturar seu design para ter componentes comportamentais que também tenham um aspecto sintetizável que possa ser comparado entre si. Você começa com o comportamental e, depois disso, reescreve para síntese (que é um subconjunto). Você vai do geral ao específico e constrói bancos de ensaio ao longo do caminho.

espaço reservado
fonte
1

Mais uma vantagem é que os HDL têm todas as mesmas vantagens que as linguagens de programação comuns, pois podem ser usados ​​em sistemas de controle de versão padrão, difíceis de examinar mudanças, etc.

mhz
fonte
0

Além do que já foi dito: a representação de texto é simplesmente muito mais gerenciável, especialmente em grandes projetos. Você pode (embora com grandes dificuldades) converter qualquer HDL sintetizável em esquemático, mas é fácil trabalhar com centenas de linhas de texto sem formatação do que centenas de elementos esquemáticos.

valplo
fonte