Como aprendo HDL

24

Eu tenho um curso de Design Digital neste semestre e adoro isso. Agora eu sei que a maior parte do trabalho em sistemas embarcados e design digital é feita primeiro em simuladores de computador e depois implementada usando hardwares. Então, eu queria saber como devo aprender sobre HDL. Eu tenho algumas perguntas

  1. O que? Não sei quais são os padrões, mas gostaria de aprender o que é simples de entender. Entendo que a maioria dos HDLs foi projetada para uso com FPGAs, não sei o que.
  2. Quão? Devo seguir um livro de texto com exemplos independentes ou devo iniciar um projeto como a implementação de um pequeno sistema (pode ser algo como controle de semáforos).
  3. Onde? Onde eu conseguiria os recursos?
Rick_2047
fonte
11
Você pode esclarecer o que deseja do seu HDL? A maioria dos HDLs é projetada para uso com FPGAs, porque é para isso que a maioria das pessoas precisa de um FPGA. Em geral, um simulador (trabalhando a partir de um esquema gráfico) é usado para projetos de circuito não-FPGA e não-ASIC. Deseja construir: (1) circuitos digitais discretos, ou seja, componentes 74XX, (2) circuitos analógicos, como reguladores de comutação, antenas / transceptores de RF, circuitos op-amp genéricos ou (3) circuitos analógicos de sinal misto, como interface entre sinais digitais e analógicos.
21710 Kevin Vermeer
Eu acho que quero aprender HDL para descrever o hardware. Ou seja, 1, 2 e 3. Também em um eu quero que não seja específico do FPGA, porque não tenho acesso ou finanças para obtê-los.
21710 Rick_2047
Eu acho que quero aprender HDL para descrever o hardware. Ou seja, 1, 2 e 3. Também em um eu quero que não seja específico do FPGA, porque não tenho acesso ou finanças para obtê-los. Acho que principalmente quero usar o HDL para simular o que penso. Um dos meus principais planos este ano é fabricar meu próprio computador. Eu acho que vou usar 74xx para isso. Por isso, para testar minhas teorias e circuitos, surgiu a idéia do HDL.
21710 Rick_2047

Respostas:

8

Você pode esclarecer qual HDL você deseja usar? As opções são basicamente Verilog ou VHDL, [EDIT] e seus parentes, Verilog-ASM e VHDL-ASM (sinal misto analógico). [/ EDIT] O Verilog possui uma sintaxe do tipo C, o que facilita a escolha se você já trabalhou com o C, mas isso também facilita o desenvolvimento de maus hábitos - Você não pode programar o hardware no C, porque é tudo paralelo! Também como C, assume que você sabe o que está fazendo e é fácil dar um tiro no próprio pé. O VHDL força você a pensar de uma maneira totalmente diferente, o que é útil, mas difícil. É mais detalhado e mais provável de avisá-lo se você fizer algo estranho. Veja esta discussão sobre o Slashdot ou este artigo .

EDIT: As "linguagens Netlist" não são algo que eu usei para o trabalho de design (em um editor de texto), mas suponho que você possa. SPICE, formato da Cadsoft Eagle e EDIF são exemplos (com propósitos muito diferentes) que vêm à mente. Usei apenas netlists para verificar se meu esquema está correto (cada conexão no esquema esquemático do Eagle faz sentido), para ajustar a abstração fornecida por um simulador (SPICE, semelhante à maneira como se usa instruções ASM em C) ou para exportar / importar entre diferentes programas (EDIF).
A linguagem de netlisting do Spectre está relacionada ao Verilog-A [nalog] e ao SPICE e foi projetada para o trabalho de design e verificação. MASTROé uma linguagem de modelagem de componentes compatível com Verilog-AMS e VHDL-AMS. A procura de tutoriais nessas linguagens mostra que as ferramentas que se parecem com utilitários esquemáticos de captura são frequentemente usadas, em vez de programar na própria linguagem de netlisting.

Também vou colocar em segundo o Xilinx Spartan FPGA e um quadro de desenvolvedores da Digilent . No entanto, eu usaria o Basys (US $ 60) ou o Nexys (US $ 100) se você não precisar da Ethernet na placa Starter (US $ 150) mencionada por O Engenheiro (Preços com desconto educacional). O Basys e o Nexys são mais baratos e, portanto, mais populares nas escolas, por isso há mais tutoriais e laboratórios on-line.

Kevin Vermeer
fonte
Fiquei me perguntando se aprender as linguagens "Netlist" seria benéfico ou mais fácil do que aprender Verilog ou VHDL?
21810 Rick_2047
Difícil de dizer. Depende do que você quer fazer com o seu idioma. Podemos ter uma idéia melhor do que você deseja fazer e que tipo de idioma você deseja usar antes de nos aprofundarmos em como e onde para cada permutação de meia dúzia de idiomas e muitos casos de uso?
21710 Kevin Vermeer
9

Estou quase na mesma situação que você.

O que eu estou fazendo:

Eu fiz um curso muito básico gratuito de VHDL na faculdade que havia estudado. Eu joguei com o Spartan 3E board .

Então, eu comprei o tabuleiro e vou começar a jogar.

Um amigo meu sugeriu estes livros:

  1. Prototipagem Rápida de Sistemas Digitais , James O. Hamblen, Michael D. Furman
  2. Publicações Doone - Design de Chip HDL , Douglas J Smith

E ele sugeriu este documento também:

Guia de design de síntese e simulação do Xilinx

Daniel Grillo
fonte
11
Eu seria o segundo livro de Hamblen e Furman. Projetei minha própria pequena placa Altera Flex 10K10 e pude usar a maior parte do código do livro. É um livro de receitas, mas não é pior para isso.
Leon Heller
4
  1. Existem duas linguagens HDL, VHDL e Verilog, pergunte ao professor qual idioma você aprenderá e tentará ver como funciona: a sintaxe e como você pode criar módulos sobre isso e fazer uma grande revisão sobre TODOS os circuitos digitais.

  2. Antes de fazer qualquer coisa 1, verifique se você realmente sabe tudo sobre os circuitos digitais, porque o HDL não cria nada de novo, você só usa essas coisas de uma maneira diferente. Portanto, você pode usar um dos dois livros acima, fazer alguns exercícios, pedir ao professor os livros que ele recomenda e usá-los ou um dos dois acima.

  3. Pergunte ao professor que FPGA eles usam nas aulas, se é Altera, Xilinx, Lattice ou outro, se a Altera faz o download do Quartus Web Edition, se o Xilinx, o ISE Webpack, faz o download gratuito de um desses e tente aprender sobre um dos softwares e faça alguns de seus exercícios, simulações em um deles.

Você está certo, cerca de 90% do trabalho no HDL são em simuladores; portanto, aprenda sobre o simulador Modelsim e / ou o simulador ISIM no xilinx, eles comandam e como executar bancos de teste.

Zork
fonte
Dois principais HDLs. Existem muitos menos populares, como CUPL, MyHDL e Lava. O curso de Design Digital da minha universidade mencionou VHDL, mas usou o CUPL em um laboratório. Mais sobre wikipedia: en.wikipedia.org/wiki/…
Yann Vernier
3

onde quer que você acabe trabalhando, terá que usar o mesmo HDL que eles já usam - para aumentar as chances de ser contratado, tente passar um pouco de tempo com o Verilog e o VHDL. Costumava ser bem simples: o Verilog era usado nos EUA e o VHDL na Europa - hoje em dia não é tão simples.

No começo, alguém mencionou aprender a 'pensar de forma diferente' para o VHDL - você também deve fazer isso para verilog, parece C, mas não é - um bom lugar para começar é olhar e ver onde os fios e flops são criados durante a síntese - quando você chegar o ponto em que você pode vê-los e apenas 'ver' os riscos de tempo na sua cabeça, você está na maior parte do caminho

Taniwha
fonte
2

icarus verilog ou verilator são o que eu recomendaria para aprender ou brincar com o verilog. ghdl é o que eu usaria para jogar com vhdl. Longe do mainstream, mas eu também recomendaria o cyclicity-cdl.sf.net, que possui seu próprio ambiente sim, etc, e produz verilog sintetizável. use e aprenda gtkwave para examinar os arquivos .vcd gerados pelos simuladores.

old_timer
fonte
1

Eu aprendi Verilog na faculdade em um curso. O ponto culminante desse curso foi a implementação de um processador MIPS Superscalar bidirecional (30% da classe o funcionou completamente; eu estava nos outros 70%). Eu acho que as coisas na indústria estão se afastando de Verilog e em direção a VHDL. Dito isto, há muitos tutoriais on-line para os dois idiomas. Aqui está um em VHDL e outro em Verilog .

Você provavelmente vai querer usar o ModelSim e provavelmente a edição do aluno (acho que é grátis; talvez com restrições). Aliás, eles recomendam o uso do Digital Systems Design Using VHDL 2nd Edition como um livro didático.

vicatcu
fonte
1

Aqui está um kit de desenvolvimento de FPGA barato que pode ser adequado para você. No entanto, não tenho certeza sobre o nível de ferramentas de código aberto que funcionam com ele. As cadeias de kits de ferramentas do fornecedor estão disponíveis para download gratuito. Ouvi dizer que, no preço que este kit está disponível, vale a pena comprá-lo.

Sushrut J Mair
fonte