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?
vhdl
verilog
programmable-logic
Bruno Ferreira
fonte
fonte
Respostas:
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.
fonte
Alguns aspectos práticos, além da excelente resposta de Jay:
* Meu bug favorito no Xilinx ISE era a incapacidade de selecionar fios verticais.
fonte
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.
fonte
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.
fonte
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.
fonte