Kom igång med VHDL-programmering: Designa din egen hårdvara

Avslöjande: Ditt stöd hjälper till att hålla webbplatsen igång! Vi tjänar en remissavgift för några av de tjänster vi rekommenderar på denna sida.


VHDL är ett hårdvarubeskrivningsspråk (HDL). En HDL ser lite ut som ett programmeringsspråk, men har ett annat syfte. I stället för att användas för att designa programvara används en HDL för att definiera ett datorchip. VHDL kan användas för att beskriva alla typer av kretsar och används ofta vid konstruktion, simulering och testning av processorer, CPU: er, moderkort, FPGA, ASIC och många andra typer av digitala kretsar.

VHDL-historia

Namnet VHDL är en kapslad akronym. Det står för VHSIC hårdvarubeskrivningsspråk. VHSIC står för Very High Speed ​​Integrated Circuit. Förutom att det var en beskrivning av en snabb processor, var det namnet på ett amerikanskt regeringsprogram på 1980-talet vars uppgift var forskning och utveckling inom området för höghastighetsintegrerade kretsar (snabb datorchips).

Tillsammans med stora framsteg inom materialvetenskap, algoritmer, chipdesign, litografi och ett dussin andra relaterade områden, utvecklade VHSIC VHDL.

Den första officiella standarden för språket kom från IEEE 1987 och är känd som IEEE 1076. Det har funnits flera utgåvor sedan dess, den senaste kommer 2008. Utöver det “kärnspråk” som anges i 1076 finns det en antal tillägg kodifierade i andra specifikationer:

  • IEEE 1076.1 VHDL-analog och blandad signal (VHDL-AMS)
  • IEEE 1076.1.1 VHDL-AMS Standardpaket (stdpkgs)
  • IEEE 1076.2 VHDL Math-paket
  • IEEE 1076.3 VHDL-syntespaket (vhdlsynth)
  • IEEE 1076.3 VHDL-syntespaket – Flytande punkt (fphdl)
  • IEEE 1076.4 Tidtagning (VHDL-initiativ mot ASIC-bibliotek: viktigt)
  • IEEE 1076.6 VHDL Syntes Interoperabilitet
  • IEEE 1164 VHDL Multivalue Logic (std_logic_1164) -paket

VHDL-design och syntax

VHDL baserade sig på Ada och lånade i stor utsträckning från både syntax och koncept. Detta kompletterades sedan med hårdvaruspecifika koncept som flervaluerad logik, fysisk parallellism och en utökad uppsättning booleska operatörer. VHDL kan också indexera matriser i både stigande och fallande ordning, medan Ada (och de flesta andra programmeringsspråk också) endast indexerar i stigande ordning.

De flesta programmeringsspråk är i själva verket processuella – datorn kör ett kommando efter det andra i följd. VHDL är annorlunda. Det är ett hårdvaruspråk som beskriver en (verklig eller simulerad) fysisk struktur. Den strukturen består av ett stort antal moduler och varje modul fungerar samtidigt som alla andra moduler.

Så inom varje modul finns det ett procedurflöde av instruktioner som ser ut som ett litet, fristående programvara – med variabler, kontrollflöden, villkor, slingor. Varje modul har en eller flera ingångar tillsammans med en eller flera utgångar. Ingångarna specificeras i en struktur som kallas en enhet, och den fristående logiken definieras i en arkitektur.

Tänk på idén om en ”AND gate” där vi har två ingångar och en utgång. Om båda ingångarna är “på” (sant, 1), är utgången “på”; annars är utgången “av.” Så med VHDL skulle vi definiera två ingångar och en utgång. De accepterade värdena för dessa in- och utgångar skulle definieras i en std_logic-modul, som importeras som ett bibliotek på ett vanligt programmeringsspråk. Arkitekturen skulle då definiera de interna funktionerna i vår ”OCH-grind” så att den fungerar som vi just diskuterade.

Std_logic-modulen är en intressant hårdspecifik typ av värde. Det liknar BOOLEAN-värdet som finns i programmeringsspråk (en bit: sant eller falskt), men det kan ha ett intervall värden, eftersom det representerar en verklig elektrisk impuls i ett fysiskt system:

  • U: oinitialiserad. Denna signal har ännu inte ställts in.
  • X: okänd. Omöjligt att bestämma detta värde / resultat.
  • 0: logik 0
  • 1: logik 1
  • Z: Hög impedans
  • W: Svag signal, kan inte se om det ska vara 0 eller 1.
  • L: Svag signal som antagligen bör gå till 0
  • H: Svag signal som antagligen bör gå till 1
  • -: Bryr sig inte.

Detta är, i miniatyr, hur en fullständig VHDL-design byggs. Ganska enkla, logiskt självständiga moduler av I / O-aktivitet är byggda upp och anslutna till varandra för att bilda beräkningsmaskiner som kan utföra olika typer av uppgifter. En VHDL-konstruktion skulle kunna beskriva en fullt fungerande dator för allmänt bruk, eller den kan koda en enda algoritm såsom det brute-force proof-of-work som används för Bitcoin-gruvdrift.

Det är viktigt att inse att en VHDL-design inte är ett program – den körs inte eller körs. Som en ritning definierar den en arkitektur. När en design är klar simuleras den vanligtvis för testning i en mjukvarutestbänk och sedan syntetiseras, vilket innebär att den översätts till en fysisk design som kan implementeras på ett faktiskt chip eller kretskort.

Resurser för att lära sig VHDL

Det finns många resurser för att lära sig VHDL. Vi har satt samman några av de bästa.

Online-resurser

  • VHDL Primer: en handledning om VHDL från University of Pennsylvania.
  • VHDL på Wikipedia: Wikipedia’s täckning av VHDL är överraskande djup och klar, vilket ger en bra introduktion till språket som helhet.
  • VHDL Cookbook: en gratis onlinebok, längden och formatet på en lärobok för högskolekurser.
  • VHDL Tutorial: Lär dig med exempel: denna värdefulla handledning är inget trevligt att titta på, men informationen är bra och mycket välorganiserad.
  • VHDL Language Guide: detta är en PDF som täcker språket i enorm detalj (400 sidor) med länkar i dokumentet för mycket enkel navigering. Det här är en bra referens.
  • Designerhandbok för VHDL: en samling resurser, handledning och länkar. Inkluderar videor och en online-certifieringskurs.
  • Programmerbar logik / VHDL-modulstruktur
  • VHDL Basics – Onlinekurs
  • VHDL-handbok
  • VHDL-startguide

Böcker

Alla dessa böcker fokuserar på VHDL:

  • Designerhandboken till VHDL, tredje upplagan
  • Kretsdesign och simulering med VHDL
  • Vhdl enligt exempel
  • VHDL: Grunder till programmering
  • VHDL för ingenjörer
  • VHDL genom exempel: Fundamentals of Digital Design
  • Kretsdesign med VHDL
  • Digital design med VHDL: en systemansats

VHDL & Verilog Books

VHDL: s huvudtävling är Verilog. Båda språken används för hårdvarudesign, så det finns ett antal böcker som fokuserar på underliggande design- och ingenjörskoncept och använder både VHDL och Verilog.

  • Digital design med RTL Design, VHDL och Verilog
  • Hdl Chip Design: En praktisk guide för att designa, syntetisera & Simulera Asics & Fpgas med Vhdl eller Verilog
  • Designrecept för FPGA, andra upplagan: Användning av Verilog och VHDL
  • Grundläggande för HDL-programmering: VHDL och Verilog

Andra viktiga VHDL-länkar

Implementeringar och simulatorer

  • Gratis / öppen källkod
    • ghdl
    • NVC
    • Gratis HDL-projekt
  • Kommersiellt / äganderätt
    • VHDL Simili
    • Active-HDL
    • Incisive Enterprise Simulator
    • ModelSim

Verktyg

  • EDA Utils: en stor samling verktyg för att arbeta med VHDL, samt Verilog och andra HDL: er.
  • EDA Playground: en online sandlåda för att testa VHDL-mönster.
  • Editor-paket
    • Emacs VHDL-läge
    • VHDL-plugin för vim
    • VHDL-paket för sublim text
    • VHDL för Atom
    • VHDL för anteckningsblock++

Du borde också veta …

VHDL är ett av två stora hårdvarubeskrivningsspråk. Den andra är Verilog. De flesta hårdvarukonstruktörer är bekanta med båda såväl som språk på operativsystem som låg 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