Kom i gang med VHDL-programmering: Design din egen maskinvare

Formidling: Din støtte hjelper med å holde nettstedet i gang! Vi tjener et henvisningsgebyr for noen av tjenestene vi anbefaler på denne siden.


VHDL er et maskinvarebeskrivelsesspråk (HDL). En HDL ligner litt på et programmeringsspråk, men har et annet formål. I stedet for å bli brukt til å designe programvare, brukes en HDL til å definere en datamaskinbrikke. VHDL kan brukes til å beskrive alle typer kretsløp, og brukes ofte i prosjektering, simulering og testing av prosessorer, CPUer, hovedkort, FPGA-er, ASIC-er, og mange andre typer digitale kretsløp.

VHDL historie

Navnet VHDL er et nestet forkortelse. Det står for VHSIC maskinvarebeskrivelse språk. VHSIC står for Very High Speed ​​Integrated Circuit. I tillegg til å være en beskrivelse av en rask prosessor, var det navnet på et amerikansk regjeringsprogram på 1980-tallet hvis oppdrag var forskning og utvikling innen veldig høyhastighetsintegrerte kretsløp (raske datamaskinbrikker).

Sammen med store fremskritt innen materialvitenskap, algoritmer, chipdesign, litografi og et dusin andre relaterte felt, utviklet VHSIC VHDL.

Den første offisielle standarden for språket kom fra IEEE i 1987, og er kjent som IEEE 1076. Det har vært flere utgaver siden den gang, den siste kom i 2008. I tillegg til “kjernespråket” som er spesifisert i 1076, er det antall utvidelser som er kodifisert i andre spesifikasjoner:

  • IEEE 1076.1 VHDL analog og blandet signal (VHDL-AMS)
  • IEEE 1076.1.1 VHDL-AMS standardpakker (stdpkgs)
  • IEEE 1076.2 VHDL Matematikkpakke
  • IEEE 1076.3 VHDL syntesepakke (vhdlsynth)
  • IEEE 1076.3 VHDL Synthesis Package – Floating Point (fphdl)
  • IEEE 1076.4 Timing (VHDL Initiative To ASIC Libraries: vital)
  • IEEE 1076.6 VHDL Synthesis Interoperability
  • IEEE 1164 VHDL Multivalue Logic (std_logic_1164) -pakker

VHDL Design og Syntax

VHDL var basert på Ada, og lånte mye av det både i syntaks og konsepter. Dette ble deretter supplert med maskinvarespesifikke konsepter som flervurdert logikk, fysisk parallellitet og et utvidet sett med boolske operatører. VHDL kan også indeksere matriser i både stigende og synkende rekkefølge, mens Ada (og de fleste andre programmeringsspråk også) bare indekserer i stigende rekkefølge.

De fleste programmeringsspråk er innerst inne prosessuelle – datamaskinen utfører den ene kommandoen etter den andre i rekkefølge. VHDL er annerledes. Det er et maskinvarespråk som beskriver en (ekte eller simulert) fysisk struktur. Denne strukturen består av et stort antall moduler, og hver modul fungerer samtidig som alle andre moduler.

Så innenfor hver modul er det en prosedyreflyt av instruksjoner som ser ut som et lite, selvforsynt programvare – med variabler, kontrollstrømmer, betingelser, sløyfer. Hver modul har en eller flere innganger sammen med en eller flere utganger. Innspillene er spesifisert i en struktur som kalles en enhet, og den selvstendige logikken er definert i en arkitektur.

Tenk på ideen om en “OG gate” hvor vi har to innganger og en utgang. Hvis begge inngangene er “på” (sant, 1), er utgangen “på”; Ellers er utgangen “av.” Så ved å bruke VHDL, ville vi definere to innganger og en utgang. De aksepterte verdiene til disse inngangene og utgangene vil bli definert i en std_logic-modul, som importeres som et bibliotek på et vanlig programmeringsspråk. Arkitekturen vil da definere den interne virkningen av “OG-porten” slik at den fungerer som vi nettopp diskuterte.

Std_logic-modulen er en interessant maskinvarespesifikk type verdi. Det ligner på BOOLEAN-verdien som er til stede i programmeringsspråk (en bit: sann eller usann), men den kan ha et verdiområde, siden den representerer en faktisk elektrisk impuls i et fysisk system:

  • U: uinitialisert. Dette signalet er ikke satt ennå.
  • X: ukjent. Umulig å bestemme denne verdien / resultatet.
  • 0: logikk 0
  • 1: logikk 1
  • Z: Høy impedans
  • W: Svakt signal, kan ikke si om det skal være 0 eller 1.
  • L: Svakt signal som antagelig burde gå til 0
  • H: Svakt signal som antagelig burde gå til 1
  • -: Bryr meg ikke.

Dette er, i miniatyr, hvordan en full VHDL-design er bygget. Ganske enkle, logisk selvstendige moduler av I / O-aktivitet er bygd opp og koblet til hverandre for å danne datamaskiner som kan utføre forskjellige typer oppgaver. En VHDL-design kan beskrive en fullt fungerende datamaskin til generell bruk, eller den kan kode en enkelt algoritme som brute-force proof-of-work brukt til Bitcoin-gruvedrift.

Det er viktig å innse at en VHDL-design ikke er et program – det kjøres eller utføres ikke. Som en plan, definerer den en arkitektur. Når et design er fullført, blir det vanligvis simulert for testing i en testbenk for programvare og deretter syntetisert, noe som betyr at det blir oversatt til en fysisk design som kan implementeres på en faktisk chip eller kretskort.

Ressurser for å lære VHDL

Det er mange ressurser for å lære VHDL. Vi har satt sammen noe av det beste.

Online ressurser

  • VHDL Primer: en tutorial på VHDL fra University of Pennsylvania.
  • VHDL på Wikipedia: Wikipedia’s dekning av VHDL er overraskende dyptgående og klarsynt, og gir en flott introduksjon til språket som helhet.
  • VHDL kokebok: en gratis online bok, lengden og formatet på en lærebok for et college-kurs.
  • VHDL-opplæring: Lær av eksempel: denne ærverdige opplæringen er ikke noe hyggelig å se på, men informasjonen er flott og veldig godt organisert.
  • VHDL Language Guide: dette er en PDF som dekker språket i enorm detalj (400 sider) med koblinger i dokumentet for veldig enkel navigering. Dette er en flott referanse.
  • Designer Guide to VHDL: en samling ressurser, opplæringsprogrammer og lenker. Inkluderer videoer og et online sertifiseringskurs.
  • Programmerbar logikk / VHDL modulstruktur
  • VHDL Basics – Online Course
  • VHDL Håndbok
  • VHDL-startguide

bøker

Alle disse bøkene fokuserer på VHDL:

  • Designer Guide to VHDL, tredje utgave
  • Kretsdesign og simulering med VHDL
  • Vhdl etter eksempel
  • VHDL: Grunnleggende om programmering
  • VHDL for ingeniører
  • VHDL etter eksempel: Grunnleggende om digital design
  • Kretsdesign med VHDL
  • Digital design ved bruk av VHDL: A Systems Approach

VHDL & Verilog Books

VHDLs viktigste “konkurranse” er Verilog. Begge språk brukes til maskinvaredesign, så det er en rekke bøker som fokuserer på underliggende design- og ingeniørkonsepter og bruker både VHDL og Verilog.

  • Digital design med RTL Design, VHDL og Verilog
  • Hdl Chip Design: En praktisk guide for design, syntese & Simulere Asics & Fpgas Bruke Vhdl eller Verilog
  • Designoppskrifter for FPGA-er, andre utgave: Bruke Verilog og VHDL
  • Grunnleggende om HDL-programmering: VHDL og Verilog

Andre viktige VHDL-lenker

Implementeringer og simulatorer

  • Gratis / åpen kildekode
    • GHDL
    • NVC
    • Gratis HDL-prosjekt
  • Kommersiell / proprietær
    • VHDL Simili
    • Active-HDL
    • Incisive Enterprise Simulator
    • ModelSim

Verktøy

  • EDA Utils: en stor samling verktøy for å jobbe med VHDL, i tillegg til Verilog og andre HDL-er.
  • EDA Playground: en online sandkasse for testing av VHDL-design.
  • Editor Packages
    • Emacs VHDL-modus
    • VHDL-plugin for vim
    • VHDL-pakke for sublim tekst
    • VHDL for Atom
    • VHDL for Notisblokk++

Du bør også vite …

VHDL er et av to viktige språk for maskinvarebeskrivelse. Den andre er Verilog. De fleste maskinvaredesignere er kjent med begge, så vel som språket for operativsystemer på lavt nivå som Cand C++.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map