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

Afsløring: Din support hjælper med at holde webstedet kørt! Vi tjener et henvisningsgebyr for nogle af de tjenester, vi anbefaler på denne side.


VHDL er et hardwarebeskrivelsessprog (HDL). En HDL ligner lidt et programmeringssprog, men har et andet formål. I stedet for at blive brugt til at designe software, bruges en HDL til at definere en computerchip. VHDL kan bruges til at beskrive alle typer kredsløb og bruges ofte til design, simulering og test af processorer, CPU’er, bundkort, FPGA’er, ASIC’er og mange andre typer digitale kredsløb.

VHDL historie

Navnet VHDL er et indlejret forkortelse. Det står for VHSIC Hardware Description Language. VHSIC står for Very High Speed ​​Integrated Circuit. Udover at være en beskrivelse af en hurtig processor, var det navnet på et amerikansk regeringsprogram i 1980’erne, hvis mission var forskning og udvikling inden for meget højhastighedsintegrerede kredsløb (hurtige computerchips).

Sammen med store fremskridt inden for materialevidenskab, algoritmer, chipdesign, litografi og et dusin andre relaterede områder udviklede VHSIC VHDL.

Den første officielle standard for sproget kom fra IEEE i 1987 og er kendt som IEEE 1076. Der har været flere udgaver siden da, den seneste kommer i 2008. Ud over det “kernesprog”, der er specificeret i 1076, er der en antal udvidelser, der er kodet i andre specifikationer:

  • IEEE 1076.1 VHDL-analog og blandet signal (VHDL-AMS)
  • IEEE 1076.1.1 VHDL-AMS standardpakker (stdpkgs)
  • IEEE 1076.2 VHDL Math-pakke
  • IEEE 1076.3 VHDL-syntese-pakke (vhdlsynth)
  • IEEE 1076.3 VHDL-syntese-pakke – Floating Point (fphdl)
  • IEEE 1076.4 Timing (VHDL-initiativ mod ASIC-biblioteker: vital)
  • IEEE 1076.6 VHDL-syntese-interoperabilitet
  • IEEE 1164 VHDL Multivalue Logic (std_logic_1164) -pakker

VHDL-design og syntaks

VHDL var baseret på Ada og lånte meget fra det både i syntaks og koncepter. Dette blev derefter suppleret med hardwarespecifikke koncepter som multivurderet logik, fysisk parallelisme og et udvidet sæt boolske operatører. VHDL kan også indeksere matriser i både stigende og faldende rækkefølge, mens Ada (og de fleste andre programmeringssprog også) kun indekserer i stigende rækkefølge.

De fleste programmeringssprog er hjertet proceduremæssige – computeren udfører den ene kommando efter den anden i rækkefølge. VHDL er anderledes. Det er et hardwaresprog, der beskriver en (reel eller simuleret) fysisk struktur. Denne struktur består af et stort antal moduler, og hvert modul fungerer på samme tid som hvert andet modul.

Så inden for hvert modul er der en proceduremæssig strøm af instruktioner, der ligner noget af et lille, selvstændigt softwareprogram – med variabler, kontrolstrømme, betingelser, sløjfer. Hvert modul har en eller flere input sammen med en eller flere output. Inputene er specificeret i en struktur kaldet en enhed, og den selvforsynende logik er defineret i en arkitektur.

Overvej ideen om en “OG gate”, hvor vi har to input og en output. Hvis begge input er “tændt” (sandt, 1), så er output “tændt”; Ellers er output “slukket.” Så ved hjælp af VHDL ville vi definere to input og en output. De accepterede værdier for disse input og output vil blive defineret i et std_logic-modul, der importeres som et bibliotek i et almindeligt programmeringssprog. Arkitekturen definerer derefter den interne funktion i vores “OG gate”, så den fungerer som vi netop har diskuteret.

Std_logic-modulet er en interessant hardware-specifik type værdi. Det ligner BOOLEAN-værdien, der findes i programmeringssprog (en bit: sand eller falsk), men den kan have et interval af værdier, da det repræsenterer en faktisk elektrisk impuls i et fysisk system:

  • U: uinitialiseret. Dette signal er ikke indstillet endnu.
  • X: ukendt. Umuligt at bestemme denne værdi / resultat.
  • 0: logik 0
  • 1: logik 1
  • Z: Høj impedans
  • W: Svagt signal, kan ikke se, om det skal være 0 eller 1.
  • L: Svagt signal, der sandsynligvis skulle gå til 0
  • H: Svagt signal, der sandsynligvis skulle gå til 1
  • -: Er ligeglad.

Dette er i miniature, hvordan et komplet VHDL-design er bygget. Temmelig enkle, logisk selvstændige moduler til I / O-aktivitet er opbygget og forbundet til hinanden for at danne computermaskiner der er i stand til at udføre forskellige typer opgaver. Et VHDL-design kunne beskrive en fuldt funktionsdygtig computer til generelle formål, eller det kan kode en enkelt algoritme såsom den brute-force proof-of-work, der bruges til Bitcoin-minedrift.

Det er vigtigt at indse, at et VHDL-design ikke er et program – det køres ikke eller udføres. Ligesom en plan, definerer den en arkitektur. Når et design er afsluttet, simuleres det normalt til test i en softwaretestbench og derefter syntetiseres, hvilket betyder, at det oversættes til et fysisk design, der kan implementeres på en faktisk chip eller et kredsløbskort.

Ressourcer til læring af VHDL

Der er mange ressourcer til at lære VHDL. Vi har sammensat nogle af de bedste.

Online ressourcer

  • VHDL Primer: en tutorial om VHDL fra University of Pennsylvania.
  • VHDL på Wikipedia: Wikipedia’s dækning af VHDL er overraskende dybtgående og klar, hvilket giver en god introduktion til sproget som helhed.
  • VHDL Kogebog: en gratis online bog, længden og formatet på en college kursus lærebog.
  • VHDL-tutorial: Lær ved eksempel: denne ærverdige tutorial er ikke noget dejligt at se på, men informationen er stor og meget velorganiseret.
  • VHDL Language Guide: dette er en PDF, der dækker sproget i enorme detaljer (400 sider) med links i dokumentet til meget nem navigation. Dette er en god henvisning.
  • Designervejledning til VHDL: en samling af ressourcer, tutorials og links. Inkluderer videoer og et online certificeringskursus.
  • Programmerbar logik / VHDL-modulstruktur
  • VHDL Basics – Online-kursus
  • VHDL-håndbog
  • VHDL-startguide

Bøger

Alle disse bøger fokuserer på VHDL:

  • Designervejledningen til VHDL, tredje udgave
  • Kredsløbsdesign og simulering med VHDL
  • Vhdl som eksempel
  • VHDL: Grundlæggende om programmering
  • VHDL til ingeniører
  • VHDL som eksempel: Fundamentals of Digital Design
  • Kredsløbsdesign med VHDL
  • Digital design ved hjælp af VHDL: En systemtilgang

VHDL & Verilog Books

VHDLs vigtigste “konkurrence” er Verilog. Begge sprog bruges til hardware-design, så der er en række bøger, der fokuserer på underliggende design- og ingeniørkoncepter og bruger både VHDL og Verilog.

  • Digital design med RTL Design, VHDL og Verilog
  • Hdl Chip Design: En praktisk vejledning til design, syntese & Simulere Asics & Fpgas Brug af Vhdl eller Verilog
  • Designopskrifter til FPGA’er, anden udgave: Brug af Verilog og VHDL
  • Grundlæggende om HDL-programmering: VHDL og Verilog

Andre vigtige VHDL-links

Implementeringer og simulatorer

  • Gratis / open source
    • GHDL
    • NVC
    • Gratis HDL-projekt
  • Kommerciel / ejendomsret
    • VHDL Simili
    • Aktiv-HDL
    • Incisive Enterprise Simulator
    • ModelSim

Værktøj

  • EDA Utils: en stor samling af værktøjer til at arbejde med VHDL samt Verilog og andre HDL’er.
  • EDA Playground: en online sandkasse til test af VHDL-design.
  • Editor-pakker
    • Emacs VHDL-tilstand
    • VHDL-plugin til vim
    • VHDL-pakke til sublim tekst
    • VHDL til Atom
    • VHDL til Notepad++

Du burde også vide …

VHDL er et af to større hardware-sprog til hardware. Den anden er Verilog. De fleste hardware-designere er fortrolige med begge såvel som operativsystemsprog på lavt niveau 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