Inizia con la programmazione VHDL: progetta il tuo hardware

Divulgazione: il tuo supporto aiuta a mantenere il sito in esecuzione! Guadagniamo una commissione di riferimento per alcuni dei servizi che consigliamo in questa pagina. Per saperne di più

VHDL è un hardware Description Language(HDL). Un HDL sembra un po ‘ come un linguaggio di programmazione, ma ha uno scopo diverso. Piuttosto che essere utilizzato per progettare software, un HDL viene utilizzato per definire un chip di computer. VHDL può essere utilizzato per descrivere qualsiasi tipo di circuito ed è spesso utilizzato nella progettazione, simulazione e test di processori, CPU, schede madri, FPGA, ASIC e molti altri tipi di circuiti digitali.

Cronologia VHDL

Il nome VHDL è un acronimo nidificato. Sta per VHSIC Hardware Description Language. VHSIC sta per Circuito integrato ad altissima velocità. Oltre ad essere una descrizione di un processore veloce, era il nome di un programma governativo degli Stati Uniti negli 1980 la cui missione era la ricerca e lo sviluppo nel campo dei circuiti integrati ad altissima velocità (chip per computer veloci).

Insieme a importanti progressi nella scienza dei materiali, algoritmi, progettazione di chip, litografia e una dozzina di altri campi correlati, VHSIC ha sviluppato VHDL.

Il primo standard ufficiale per la lingua è venuto dalla IEEE nel 1987, ed è noto come IEEE 1076. Ci sono state diverse edizioni da allora, l’ultima venuta nel 2008. In addition to the “core” language specified in 1076, there are a number of extensions codified in other specs:

  • IEEE 1076.1 VHDL Analog and Mixed-Signal (VHDL-AMS)
  • IEEE 1076.1.1 VHDL-AMS Standard Packages (stdpkgs)
  • IEEE 1076.2 VHDL Math Package
  • IEEE 1076.3 VHDL Synthesis Package (vhdlsynth)
  • IEEE 1076.3 VHDL Synthesis Package – Floating Point (fphdl)
  • IEEE 1076.4 Timing (VHDL Initiative Towards ASIC Libraries: vital)
  • IEEE 1076.6 VHDL Synthesis Interoperability
  • IEEE 1164 VHDL Multivalue Logic (std_logic_1164) Packages

VHDL Design and Syntax

VHDL è stato basato su Ada, e preso in prestito da esso ampiamente sia nella sintassi e concetti. Questo è stato poi integrato con concetti specifici dell’hardware come la logica multivalore, il parallelismo fisico e un set esteso di operatori booleani. VHDL può anche indicizzare gli array sia in ordine crescente che decrescente, mentre Ada (e la maggior parte degli altri linguaggi di programmazione) indicizza solo in ordine crescente.

La maggior parte dei linguaggi di programmazione sono, in fondo, procedurali: il computer esegue un comando dopo l’altro in sequenza. VHDL è diverso. È un linguaggio hardware che descrive una struttura fisica (reale o simulata). Tale struttura è costituita da un gran numero di moduli e ogni modulo agisce contemporaneamente a ogni altro modulo.

Quindi, all’interno di ogni modulo c’è un flusso procedurale di istruzioni che assomiglia un po ‘ a un piccolo programma software autonomo-con variabili, flussi di controllo, condizionali, loop. Ogni modulo ha uno o più ingressi insieme a una o più uscite. Gli input sono specificati all’interno di una struttura chiamata entità e la logica autonoma è definita in un’architettura.

Considera l’idea di un “E gate” in cui abbiamo due ingressi e un’uscita. Se entrambi gli ingressi sono ” on “(true, 1), l’uscita è” on”; altrimenti, l’uscita è ” off.”Quindi usando VHDL, definiremmo due ingressi e un’uscita. I valori accettati di tali input e output sarebbero definiti in un modulo std_logic, che viene importato come una libreria in un normale linguaggio di programmazione. L’architettura definirebbe quindi il funzionamento interno del nostro “E gate” in modo che funzioni come abbiamo appena discusso.

Il modulo std_logic è un interessante tipo di valore specifico dell’hardware. È simile al valore BOOLEANO presente nei linguaggi di programmazione (un bit: vero o falso), ma può avere un intervallo di valori, poiché rappresenta un impulso elettrico effettivo in un sistema fisico:

  • U: non inizializzato. Questo segnale non è ancora stato impostato.
  • X: sconosciuto. Impossibile determinare questo valore / risultato.
  • 0: logica 0
  • 1: logica 1
  • Z: Alta impedenza
  • W: Segnale debole, non può dire se dovrebbe essere 0 o 1.
  • L: Segnale debole che probabilmente dovrebbe andare a 0
  • H: Segnale debole che probabilmente dovrebbe andare a 1
  • -: Non importa.

Questo è, in miniatura, il modo in cui viene costruito un design VHDL completo. Moduli di attività I/O abbastanza semplici e logicamente autonomi sono costruiti e collegati tra loro per formare macchine computazionali in grado di eseguire diversi tipi di attività. Un design VHDL potrebbe descrivere un computer general-purpose pienamente funzionante, o potrebbe codificare un singolo algoritmo come la prova di forza bruta utilizzata per l’estrazione di Bitcoin.

È importante rendersi conto che un progetto VHDL non è un programma — non viene eseguito o eseguito. Come un progetto, definisce un’architettura. Una volta completato un progetto, di solito viene simulato per il test in un banco di prova software e quindi sintetizzato, il che significa che viene tradotto in un progetto fisico che può essere implementato su un chip o un circuito reale.

Risorse per l’apprendimento VHDL

Ci sono molte risorse per l’apprendimento VHDL. Abbiamo messo insieme alcuni dei migliori.

Risorse online

  • VHDL Primer: un tutorial su VHDL dell’Università della Pennsylvania.
  • VHDL su Wikipedia: La copertura di Wikipedia del VHDL è sorprendente in profondità e lucida, fornendo una grande introduzione alla lingua nel suo complesso.
  • VHDL Cookbook: un libro online gratuito, la lunghezza e il formato di un libro di testo del corso universitario.
  • VHDL Tutorial: impara con l’esempio: questo tutorial venerabile è niente di bello da guardare, ma l’informazione è grande e molto ben organizzato.
  • VHDL Language Guide: questo è un PDF che copre la lingua in dettaglio immenso (400 pagine) con collegamenti in-documento per una navigazione molto facile. Questo è un grande riferimento.
  • Guida del progettista a VHDL: una raccolta di risorse, tutorial e link. Include video e un corso di certificazione online.
  • Programmable Logic/VHDL Module Structure
  • VHDL Basics — Online Course
  • VHDL Handbook
  • VHDL Starters Guide

Books

All these books focus on VHDL:

  • The Designer’s Guide to VHDL, Third Edition
  • Circuit Design and Simulation with VHDL
  • Vhdl By Example
  • VHDL: Basics to Programming
  • VHDL for Engineers
  • VHDL By Example: Fundamentals of Digital Design
  • Circuit Design with VHDL
  • Digital Design Using VHDL: A Systems Approach

VHDL & Verilog Books

La principale “competizione” di VHDL è Verilog. Entrambi i linguaggi sono utilizzati per la progettazione hardware, quindi ci sono un certo numero di libri che si concentrano su concetti di progettazione e ingegneria sottostanti e utilizzano sia VHDL che Verilog.

  • Progettazione Digitale con RTL Design, VHDL e Verilog
  • Hdl Progettazione di Chip: Una Guida Pratica per la Progettazione, la Sintesi & Simulazione Asics & Fpga Utilizzando il linguaggio Vhdl o Verilog
  • Progettazione Ricette per Fpga, Seconda Edizione: Utilizza Verilog e VHDL
  • HDL Fondamenti della Programmazione: VHDL e Verilog

Altri Importanti VHDL Link

Implementazioni e Simulatori

  • Libero / Open Source
    • GHDL
    • NVC
    • Free HDL Progetto
  • Commerciale / Proprietario
    • VHDL Simili
    • Active-HDL
    • Incisive Enterprise Simulator
    • ModelSim

Strumenti

  • EDA Utils: una vasta collezione di programmi di utilità per lavorare con VHDL, così come Verilog e altri Hdl.
  • Parco giochi EDA: una sandbox online per testare i progetti VHDL.
  • Pacchetti editor
    • Emacs VHDL Mode
    • Plugin VHDL per vim
    • Pacchetto VHDL per Sublime Text
    • VHDL per Atom
    • VHDL per Notepad++

Dovresti anche saperlo…

VHDL è uno dei due principali linguaggi di descrizione hardware. L’altro è Verilog. La maggior parte dei progettisti di hardware hanno familiarità con entrambi, così come i linguaggi del sistema operativo di basso livello come Cand C++.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.