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 remiss avgift för några av de tjänster som vi rekommenderar på denna sida. Läs mer

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 i design, simulering och testning av processorer, processorer, 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 Hardware Description Language. VHSIC står för mycket hög hastighet integrerad krets. Förutom att vara en beskrivning av en snabb processor var det namnet på ett amerikanskt regeringsprogram på 1980-talet vars uppdrag var forskning och utveckling inom området mycket höghastighetsintegrerade kretsar (snabba 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. 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 syntes interoperabilitet
  • IEEE 1164 VHDL Multivalue Logic (std_logic_1164) paket

VHDL Design och Syntax

VHDL baserades på Ada, och lånat från det i stor utsträckning i både syntax och begrepp. Detta kompletterades sedan med hårdvaruspecifika begrepp som multi-värderad 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å) bara indexerar i stigande ordning.

de flesta programmeringsspråk är i hjärtat procedurella-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 ett procedurflöde av instruktioner som ser ut som ett litet, fristående program-med variabler, kontrollflöden, villkor, slingor. Varje modul har en eller flera ingångar tillsammans med en eller flera utgångar. Ingångarna specificeras inom en struktur som kallas en enhet, och den fristående logiken definieras i en arkitektur.

Tänk på tanken på en ”OCH grind” 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 ingångar och utgångar skulle definieras i en std_logic – modul, som importeras som ett bibliotek i ett vanligt programmeringsspråk. Arkitekturen skulle då definiera det interna arbetet i vår ”och grind” så att den fungerar som vi just diskuterade.

modulen std_logic är en intressant hårdvaruspecifik typ av värde. Det liknar det booleska värdet som finns i programmeringsspråk( en bit: sant eller falskt), men det kan ha ett värdeområde, eftersom det representerar en verklig elektrisk impuls i ett fysiskt system:

  • U: oinitierad. Den här signalen har inte ställts in än.
  • 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 säga om det ska vara 0 eller 1.
  • L: svag signal som förmodligen borde gå till 0
  • H: svag signal som förmodligen borde gå till 1
  • -: strunta i det.

detta är, i miniatyr, hur en full VHDL-design byggs. Ganska enkla, logiskt fristående moduler av I / O-aktivitet byggs upp och kopplas till varandra för att bilda beräkningsmaskiner som kan utföra olika typer av uppgifter. En VHDL-design kan beskriva en fullt fungerande generell dator, eller den kan koda en enda algoritm som 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-det 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 syntetiseras sedan, 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 VHDL

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

online-resurser

  • VHDL Primer: en handledning om VHDL från University of Pennsylvania.
  • VHDL på Wikipedia: Wikipedias täckning av VHDL är överraskande djupgående 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-handledning: lär dig genom exempel: denna ärevördiga handledning är inget trevligt att titta på, men informationen är stor och mycket välorganiserad.
  • VHDL språkguide: detta är en PDF som täcker språket i enorm detalj (400 sidor) med dokumentlänkar för mycket enkel navigering. Detta är en bra referens.
  • Designer ’ s Guide to VHDL: en samling resurser, handledning och länkar. Inkluderar videor och en online certifieringskurs.
  • 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: En systeminriktning

VHDL & Verilog Books

VHDLS huvudsakliga ”tä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-chipdesign: en praktisk Guide för att designa, syntetisera & simulera ASIC & FPGA: er med Vhdl eller Verilog
  • Designrecept för FPGA: er, andra upplagan: använda Verilog och VHDL
  • grundläggande HDL-programmering: VHDL och Verilog

andra viktiga VHDL-länkar

implementeringar och simulatorer

  • gratis / öppen källkod
    • GHDL
    • NVC
    • gratis HDL-projekt
  • kommersiell / proprietär
    • VHDL Simili
    • aktiv-HDL
    • Incisive Enterprise Simulator
    • ModelSim

verktyg

  • EDA Utils: en stor samling verktyg för att arbeta med VHDL, liksom Verilog och andra HDL.
  • Eda lekplats: en online sandlåda för att testa VHDL-mönster.
  • redigeringspaket
    • 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årdvarudesigners är bekanta med båda, liksom operativsystemspråk på låg nivå som Cand C++.

Lämna ett svar

Din e-postadress kommer inte publiceras.