Cosa mi farebbe scegliere Verilog o VHDL rispetto alla progettazione schematica su CPLD o FPGA?


13

Non ho assolutamente alcun background nella logica programmabile, uso principalmente microcontrollori nei miei progetti, ma recentemente ho dovuto lavorare con i video e il microcontrollore è troppo lento per quello di cui avevo bisogno, quindi ho iniziato a giocare con i CPLD.

Sono stato in grado di ottenere buoni risultati con il CPLD solo usando la progettazione schematica ma durante la ricerca di informazioni sui CPLD ho trovato molti esempi usando VHDL e Verilog. Sono curioso di sapere cosa potrebbe farmi desiderare di definire il mio dispositivo in una di queste lingue. Cosa possono fare quel disegno schematico non può? Sono utilizzati principalmente per le funzioni?

Fino ad ora ho usato solo CPLD, i progetti FPGA traggono maggiore beneficio dai CPLD dall'uso di questi linguaggi?


1
Probabilmente troverai strumenti di sintesi forniti dal fornitore sia per Verilog che per VHDL per parti tradizionali. Pertanto la scelta è puramente opinione. Ti incoraggio a guardare entrambi e decidere quale preferisci. Xilinx fornisce buoni esempi in entrambe le lingue, sospetto che lo facciano anche altri venditori.
David,

3
Dovresti assolutamente allontanarti dalla cattura schematica per la progettazione logica. Si sente più facile all'inizio, ma questo è illusorio. I miei $ 0,02 sulle lingue: VHDL è un abominio, usa Verilog.
markt

@markt, perché pensi che VHDL sia così male?
Stanni,

2
Si potrebbe anche dire che Verilog è un abominio, usare VHDL. VHDL si aspetta che tu dica esattamente quello che vuoi, mentre Verilog indovina. Ma questo è solo il mio £ 0,02.
Brian Drummond,

1
@markt, ho iniziato con VHDL, quindi ad un certo punto ho apprezzato la sua tipicità fortemente tipizzata. Mi ha costretto a pensare a ciò che volevo e a creare buone abitudini all'inizio. Ora sono troppo lontano nel campo SystemVerilog per curare troppo in entrambi i modi, onestamente.
stanri,

Risposte:


14

La progettazione schematica è utile solo quando si collegano solo alcuni moduli standard (contatori, additivi, memoria, ecc.). Ma implementare un algoritmo reale (diciamo, un algoritmo di hash crittografico) è quasi impossibile fare a meno di un HDL (come VHDL o Verilog), poiché non c'è modo di descrivere un sistema a livello comportamentale con simboli schematici.

La maggior parte dei progetti sono realizzati in HDL in stile comportamentale perché sono troppo complessi per essere sintetizzati a mano e disegnati usando schematicamente primitive logiche.

I CPLD sono generalmente usati per la logica della colla e meno usati per l'elaborazione, e in generale la logica è facile da implementare schematicamente, quindi penso che tu abbia ragione quando suggerisci che i progetti basati su FPGA traggono maggiori benefici dall'uso di un HDL.


Puoi fare cose molto complesse in un sistema schematico simbolico. Vorrei arrivare al punto di dire che tutto ciò che può essere fatto in un HDL potrebbe essere implementato in un sistema basato su schemi, sebbene a costo di manutenibilità. Fintanto che il set di strumenti può definire blocchi di simboli che fungono da singolo simbolo, puoi fare praticamente qualsiasi cosa.
Connor Wolf,

1
Un buon esempio qui è labview. È un'interfaccia di programmazione simbolica in cui le persone hanno progettato sistemi estremamente complessi che automatizzano intere fabbriche. Il risultato finale è pressoché irraggiungibile, ma è possibile (nota: non sto parlando se è una buona idea, solo la fattibilità di base).
Connor Wolf,

"La maggior parte dei progetti sono realizzati in HDL in stile comportamentale ..." non è sostenibile e in realtà NON funziona come i flussi di progettazione.
segnaposto

@ConnorWolf Non sono d'accordo sul fatto che il codice Labview sia così irraggiungibile, non che io sia un grande fan. Ci sono alcune buone pratiche che aiutano davvero. Per me, di solito è l'abbandono a qualsiasi speranza di compatibilità con il passato o all'indietro che causa problemi di manutenzione, al contrario di qualsiasi cosa inerente al linguaggio G;)
Scott Seidman,

4

Un paio di aspetti pratici oltre all'ottima risposta di Jay:

  • Bugs. Gli strumenti schematici tendono ad essere più robusti * rispetto al resto del set di strumenti. Ciò è probabilmente dovuto alla preferenza di Verilog / VHDL rispetto agli schemi nel settore, e quindi la voce schematica viene data meno attenzione agli sviluppatori di software.
  • Velocità. Lo schema deve essere prima convertito in HDL prima di passarlo allo strumento di sintesi. Ciò può avere un impatto negativo sui tempi di costruzione. L'HDL generato potrebbe anche non essere molto leggibile nel caso in cui sia necessario ispezionarlo per qualche motivo.
  • Portabilità. A seconda della quantità di primitive specifiche del fornitore utilizzate, Verilog e VHDL sono più o meno portatili tra i dispositivi. Gli schemi di porting devono o ridisegnare tutto o fare affidamento sulle capacità di importazione / esportazione fornite (se presenti).

* Il mio bug preferito in Xilinx ISE era l' incapacità di selezionare i fili verticali.


2

 Ci sono molti vantaggi di un HDL (Hardware Description Languages) come standard di Design Entry.

La descrizione della funzionalità può essere ad un livello superiore, i progetti basati su HDL possono essere sintetizzati in una descrizione a livello di gate di una tecnologia scelta, un design HDL è più facilmente comprensibile di un elenco a livello di gate o una descrizione schematica e HDL ridurre gli errori a causa del controllo del tipo forte.

I linguaggi di descrizione dell'hardware VHDL e Verilog sono stati progettati per modellare l'hardware con l'intenzione di modellare a un livello di astrazione più elevato che includa funzionalità come, concorrenza, tempistica, gerarchia, riutilizzo dei componenti, comportamento dello stato, comportamento sincrono, comportamento asincrono, sincronizzazione e parallelismo intrinseco .

Durante la sintesi sorgono problemi che associano la descrizione del progetto a un processo specifico e all'implementazione del gate. Ciò richiede che non sia possibile utilizzare le funzionalità di alto livello di HDL: è necessario produrre "Verilog / VHDL sintetizzabile"

Quindi hai HDL per sintesi e HDL per simulazione e il sottoinsieme che è sintetizzabile è specifico dello strumento.

Non è possibile passare da una descrizione del design comportamentale a un elenco / layout di rete. Ma puoi strutturare il tuo progetto in modo da avere componenti comportamentali che abbiano anche un aspetto sintetizzabile che possano essere confrontati tra loro. Inizi con il comportamentale e poi, una volta che funziona, riscrivi per la sintesi (che è un sottoinsieme). Passa dal generale allo specifico e costruisci banchi di prova lungo la strada.


1

Un altro vantaggio è che gli HDL ottengono tutti gli stessi vantaggi dei normali linguaggi di programmazione in quanto possono essere utilizzati nei sistemi di controllo della versione standard, diffusi per esaminare le modifiche, ecc.


0

Oltre a quanto già detto: la rappresentazione del testo è semplicemente molto più gestibile, soprattutto in progetti di grandi dimensioni. Puoi (anche se con enormi difficoltà) convertire qualsiasi HDL sintetizzabile in schematico, ma centinaia di righe di testo semplice sono più facili da lavorare rispetto a centinaia di elementi schematici.

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.