Come imparo HDL


24

Ho un corso di Digital Design in questo semestre e lo adoro. Ora so che la maggior parte del lavoro nei sistemi integrati e nella progettazione digitale viene prima eseguita su simulatori di computer e poi implementata utilizzando hardware. Quindi mi chiedevo come avrei dovuto imparare l'HDL. Ho qualche domanda

  1. Che cosa? Non so quali siano gli standard, ma vorrei imparare quale è semplice da imparare. Capisco che la maggior parte degli HDL sono progettati per l'uso con FPGA, ma non lo so.
  2. Come? Dovrei seguire un libro di testo con esempi indipendenti o dovrei intraprendere un progetto come l'implementazione di un piccolo sistema (potrebbe essere qualcosa come il controllo del semaforo).
  3. Dove? Dove troverei le risorse?

1
Puoi chiarire cosa vuoi dal tuo HDL? La maggior parte delle HDL sono progettate per l'uso con FPGA perché questo è ciò per cui la maggior parte delle persone ha bisogno di un FPGA. In generale, un simulatore (funzionante da uno schema grafico) viene utilizzato per la progettazione di circuiti non FPGA e non ASIC. Vuoi costruire: (1) circuiti digitali discreti, cioè componenti 74XX, (2) circuiti analogici, ovvero regolatori di commutazione, antenne / ricetrasmettitori RF, circuiti op-amp generici o (3) circuiti analogici a segnale misto, cioè interfaccia tra segnali sia digitali che analogici.
Kevin Vermeer,

Penso di voler imparare HDL per descrivere l'hardware. Sono 1, 2 e 3. Anche in uno voglio che non sia specifico FPGA perché non ho l'accesso o le finanze per ottenerli.
Rick_2047

Penso di voler imparare HDL per descrivere l'hardware. Sono 1, 2 e 3. Anche in uno voglio che non sia specifico FPGA perché non ho l'accesso o le finanze per ottenerli. Penso principalmente di voler usare l'HDL per simulare ciò che penso. Un mio grande piano quest'anno è quello di creare il mio computer. Penso che userò 74xx per questo. Ecco perché testare le mie teorie e circuiti mi è venuta in mente l'idea di HDL.
Rick_2047

Risposte:


8

Puoi chiarire quale HDL vuoi usare? Le scelte sono sostanzialmente Verilog o VHDL, [EDIT], e i loro parenti, Verilog-ASM e VHDL-ASM (segnale misto analogico). [/ EDIT] Verilog ha una sintassi simile a C, che semplifica la raccolta se hai già lavorato con C in precedenza, ma ciò semplifica anche lo sviluppo di cattive abitudini - Non puoi programmare l'hardware in C, perché è tutti paralleli! Anche come C, si presume che tu sappia cosa stai facendo ed è facile spararti nel piede. VHDL ti costringe a pensare in un modo completamente diverso, che è utile, ma difficile. È più prolisso e più probabile che ti avverta se fai qualcosa di strano. Vedi questa discussione su Slashdot o questo articolo .

EDIT: I "linguaggi Netlist" non sono qualcosa che ho usato per il lavoro di progettazione (in un editor di testo), ma suppongo che potresti. SPICE, il formato Cadsoft Eagle e EDIF sono tutti esempi (con scopi molto diversi) che mi vengono in mente. Ho usato solo le netlist per verificare che il mio schema sia corretto (ha senso ogni connessione nel mio schema Eagle), per modificare l'astrazione fornita da un simulatore (SPICE, simile al modo in cui si usano le istruzioni ASM in C), o per esportare / importare tra diversi programmi (EDIF).
Il linguaggio netlisting Spectre è correlato a Verilog-A [nalog] e SPICE ed è progettato per il lavoro di progettazione e verifica. ALBEROè un linguaggio di modellazione di componenti compatibile con Verilog-AMS e VHDL-AMS. La ricerca di esercitazioni su queste lingue mostra che vengono spesso utilizzati strumenti che sembrano utilità schematiche di acquisizione, anziché la programmazione nel linguaggio di netlisting stesso.

Sarò anche secondo l'FPGA Xilinx Spartan e una scheda di sviluppo Digilent . Tuttavia, andrei con Basys ($ 60) o Nexys ($ 100) se non hai bisogno della Ethernet sulla scheda di avviamento ($ 150) menzionata da O Engenheiro (Prezzi con sconto sull'istruzione). Basys e Nexys sono più economici e quindi più popolari nelle scuole, quindi ci sono più tutorial e laboratori online.


Mi chiedevo se l'apprendimento delle lingue cosiddette "Netlist" sarebbe utile o più semplice rispetto all'apprendimento di Verilog o VHDL?
Rick_2047,

Difficile da dire. Dipende da cosa vuoi fare con la tua lingua. Possiamo avere un'idea migliore di cosa vuoi fare e che tipo di lingua vuoi usare prima di approfondire come e dove per ogni permutazione di una mezza dozzina di lingue e un gran numero di casi d'uso?
Kevin Vermeer,

9

Sono quasi nella tua stessa situazione.

Cosa sto facendo:

Avevo seguito un corso gratuito di base di VHDL al college che avevo studiato. Avevo giocato con la tavola Spartan 3E .

Quindi, ho comprato il tabellone e inizierò a giocare.

Un mio amico mi ha suggerito questi libri:

  1. Prototipazione rapida dei sistemi digitali , James O. Hamblen, Michael D. Furman
  2. Doone Publications - HDL Chip Design , Douglas J Smith

E ha anche suggerito questo documento:

Xilinx Guida alla progettazione di sintesi e simulazione


1
Secondo il libro di Hamblen e Furman. Ho progettato la mia piccola scheda Altera Flex 10K10 e ho potuto utilizzare la maggior parte del codice nel libro. È un libro di cucina, ma niente di peggio per quello.
Leon Heller,

4
  1. Esistono due lingue HDL, sono VHDL e Verilog, chiedi al tuo professore quale lingua imparerai e proverai a vedere come funziona: la sintassi e come potresti creare moduli su questo e fare una grande recensione su TUTTI i circuiti digitali.

  2. Prima di fare qualsiasi cosa 1, assicurati di sapere davvero tutto sui circuiti digitali, perché HDL non crea nulla di nuovo, usi queste cose solo in un modo diverso. Quindi puoi usare uno dei due libri sopra, per fare alcuni esercizi, chiedere al tuo insegnante i libri che lui raccomanda e usarli o uno dei due sopra.

  3. Chiedi al tuo insegnante che FPGA usano nelle classi, se è Altera, Xilinx, Lattice o altro, se Altera effettua il download di Quartus Web Edition, se Xilinx, il pacchetto web ISE, effettua il download gratuito di uno di questi e prova a conoscere uno dei software e fai alcuni dei tuoi esercizi, simulazioni su uno di essi.

Hai ragione, circa il 90% del lavoro su HDL è sui simulatori, quindi scopri il simulatore Modelsim e / o il simulatore ISIM su xilinx, i loro comandi e come eseguire i testbench.


Due principali HDL. Ce ne sono molti meno popolari, come CUPL, MyHDL e Lava. Il corso di Digital Design presso la mia università menzionava VHDL ma usava CUPL in un laboratorio. Altro su Wikipedia: en.wikipedia.org/wiki/…
Yann Vernier

3

dovunque finirai per lavorare dovrai usare lo stesso HDL che già usano - quindi per aumentare le possibilità di essere assunto, prova e trascorri un po 'di tempo con Verilog e VHDL. Un tempo era piuttosto semplice: Verilog era usato negli Stati Uniti e VHDL in Europa - oggigiorno non è semplice.

Qualcuno ha detto di aver imparato a "pensare diversamente" per VHDL - devi farlo anche per Verilog sembra C ma non lo è - un buon punto di partenza è guardare e vedere dove vengono creati fili e flop durante la sintesi - una volta raggiunto il punto in cui puoi vederli e puoi semplicemente "vedere" i rischi temporali nella tua testa, sei quasi arrivato


2

Icarus Verilog o Verilator sono ciò che consiglierei per imparare o giocare con Verilog. ghdl è quello che userei per giocare con vhdl. Lontano dal mainstream ma consiglierei anche cyclicity-cdl.sf.net che ha il suo ambiente sim, ecc. E produce verilog sintetizzabili. usa e impara gtkwave per esaminare i file .vcd generati dai simulatori.


1

Ho imparato Verilog al college in un corso. Il culmine di quel corso è stato l'implementazione di un processore MIPS Superscalar a 2 vie (il 30% della classe lo ha reso completamente funzionante; io ero nell'altro 70%). Penso che le cose nell'industria si stiano allontanando da Verilog e verso VHDL. Detto questo, ci sono molti tutorial online per entrambe le lingue. Eccone uno su VHDL ed eccone uno su Verilog .

Probabilmente vorrai usare ModelSim e probabilmente puoi usare l'edizione per studenti (penso che sia gratuita; forse con restrizioni). Per inciso, raccomandano di usare Digital Systems Design usando VHDL 2nd Edition come un libro di testo.


1

Ecco un kit di sviluppo FPGA economico che potrebbe essere adatto a te. Tuttavia, non sono sicuro del livello di strumenti Open source che funzionano con esso. Le catene di strumenti del fornitore sono disponibili per il download gratuito. Ho sentito che a questo prezzo è disponibile questo kit, vale la pena andare e ottenerlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.