Aloita VHDL-ohjelmointi: Suunnittele oma laitteistosi

Disclosure: tukesi auttaa pitämään sivuston käynnissä! Ansaitsemme lähetemaksun joistakin tällä sivulla suosittelemistamme palveluista.

VHDL on laitteistokuvauskieli (HDL). HDL näyttää hieman ohjelmointikieleltä, mutta sillä on erilainen tarkoitus. HDL: ää ei käytetä ohjelmistojen suunnitteluun, vaan tietokoneen sirun määrittelyyn. VHDL: ää voidaan käyttää kuvaamaan minkä tahansa tyyppisiä piirejä, ja sitä käytetään usein prosessorien, suorittimien, emolevyjen, FPGAs -, ASICs-ja monien muiden digitaalisten piirien suunnittelussa, simuloinnissa ja testauksessa.

VHDL-historia

nimi VHDL on sisäkkäinen lyhenne. Se tulee sanoista Vhsic Hardware Description Language. VHSIC tulee sanoista Very High Speed Integrated Circuit. Sen lisäksi, että se on kuvaus nopeasta prosessorista, se oli 1980-luvulla Yhdysvaltain hallituksen ohjelman nimi, jonka tehtävänä oli tutkimus ja kehitys erittäin nopeiden integroitujen piirien (nopeiden tietokonesirujen) alalla.

materiaalitieteen, algoritmien, sirujen suunnittelun, litografian ja tusinan muun vastaavan alan merkittävien edistysaskelten ohella VHSIC kehitti VHDL: n.

ensimmäinen virallinen standardi kielelle tuli IEEE: ltä vuonna 1987, ja se tunnetaan nimellä IEEE 1076. Siitä on tehty useita painoksia sen jälkeen, Viimeisin tulossa vuonna 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 synteesi yhteentoimivuus
  • IEEE 1164 VHDL Multivalue Logic (std_logic_1164) paketit

VHDL suunnittelu ja syntaksi

VHDL perustui Ada: han ja lainattiin siitä laajasti sekä syntaksin että käsitteiden osalta. Tätä täydennettiin sitten laitteistokohtaisilla käsitteillä, kuten moniarvoisella logiikalla, fyysisellä parallelismilla ja laajennetulla Boolen operaattoreiden joukolla. VHDL voi myös indeksoida ryhmät sekä nousevassa että laskevassa järjestyksessä, kun taas Ada (ja useimmat muut ohjelmointikielet samoin) indeksoi vain nousevassa järjestyksessä.

useimmat ohjelmointikielet ovat pohjimmiltaan prosessuaalisia-tietokone suorittaa käskyn toisensa jälkeen peräkkäin. VHDL on erilainen. Se on laitteistokieli, joka kuvaa (todellista tai simuloitua) fyysistä rakennetta. Tämä rakenne koostuu suuresta määrästä moduuleja, ja jokainen moduuli toimii samaan aikaan kuin jokainen muu moduuli.

jokaisen moduulin sisällä on siis menettelytapaohjeiden virta, joka näyttää jonkin verran pieneltä, itsenäiseltä ohjelmalta-muuttujineen, säätövirtoineen, ehdollisuuksineen, silmukoineen. Jokaisessa moduulissa on yksi tai useampi tulo yhdessä yhden tai useamman lähdön kanssa. Syötteet on määritelty olioksi kutsutussa rakenteessa, ja itsenäinen logiikka on määritelty arkkitehtuurissa.

pohditaan ajatusta ”ja portista”, jossa meillä on kaksi tuloa ja yksi ulostulo. Jos molemmat panokset ovat ” päällä ”(totta, 1), niin tuotos on” päällä”; muussa tapauksessa tuotos on ” pois.”VHDL: n avulla määrittelisimme kaksi tuloa ja yhden tuotoksen. Näiden syötteiden ja lähtöjen hyväksytyt arvot määriteltäisiin std_logic – moduulissa, joka tuodaan kuin kirjasto tavallisella ohjelmointikielellä. Arkkitehtuuri sitten määritellä sisäisen toiminnan Meidän ”ja portti” niin, että se toimii kuten juuri keskustelimme.

std_logic moduuli on mielenkiintoinen laitteistokohtainen arvolaji. Se on samanlainen kuin ohjelmointikielissä esiintyvä Boolen arvo (yksi bitti: tosi tai epätosi), mutta sillä voi olla useita arvoja, koska se edustaa todellista sähköimpulssia fysikaalisessa järjestelmässä:

  • U: vihkiytymätön. Signaalia ei ole vielä asetettu.
  • X: tuntematon. Tätä arvoa/tulosta on mahdotonta määrittää.
  • 0: logiikka 0
  • 1: logiikka 1
  • Z: korkea impedanssi
  • W: heikko signaali, En osaa sanoa, pitäisikö sen olla 0 vai 1.
  • L: heikko signaali, joka pitäisi luultavasti mennä 0
  • H: heikko signaali, joka pitäisi luultavasti mennä 1
  • -: En välitä.

näin pienoiskoossa rakennetaan täysi VHDL-malli. Melko yksinkertaisia, loogisesti itsenäisiä I/O-toiminnan moduuleja rakennetaan ja kytketään toisiinsa muodostaen laskennallisia koneita, jotka kykenevät suorittamaan erityyppisiä tehtäviä. VHDL-malli voisi kuvata täysin toimivaa yleiskäyttöistä tietokonetta, tai se voisi koodata yhden algoritmin, kuten Bitcoin-louhinnassa käytetyn raa ’ an voiman proof-of-Workin.

on tärkeää ymmärtää, että VHDL-suunnittelu ei ole ohjelma — sitä ei suoriteta eikä suoriteta. Kuten pohjapiirros, se määrittelee arkkitehtuurin. Kun suunnittelu on valmis, se on yleensä simuloitu testausta varten ohjelmiston testbench, ja sitten syntetisoitu, mikä tarkoittaa, että se on käännetty fyysinen suunnittelu, joka voidaan toteuttaa todellinen siru tai piirilevy.

resurssit VHDL: n oppimiseen

VHDL: n oppimiseen on paljon resursseja. Kokosimme yhteen parhaita.

Online Resources

  • VHDL Primer: a tutorial on VHDL University of Pennsylvania.
  • VHDL Wikipediassa: Wikipedian kattavuus VHDL: stä on yllättävän syvällistä ja selkeää, tarjoten erinomaisen johdannon koko kieleen.
  • VHDL-keittokirja: ilmainen, verkkokirja, korkeakoulukurssin oppikirjan pituus ja muoto.
  • VHDL Tutorial: Opi esimerkin avulla: tämä kunnioitettava opetusohjelma ei ole mitään mukavaa katsoa, mutta tiedot ovat suuria ja hyvin järjestetty.
  • VHDL Language Guide: Tämä on PDF, joka kattaa kielen erittäin yksityiskohtaisesti (400 sivua) ja sisältää asiakirjasisäisiä linkkejä, joilla on helppo navigointi. Tämä on hyvä viittaus.
  • Designer ’ s Guide to VHDL: a collection of resources, tutorials, and links. Sisältää videoita ja online-sertifiointikurssin.
  • 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: Systemaattinen lähestymistapa

VHDL & Verilog Books

VHDL: n tärkein ”kilpailija” on Verilog. Molempia kieliä käytetään laitteistosuunnitteluun, joten on olemassa useita kirjoja, jotka keskittyvät taustalla oleviin suunnittelu-ja suunnittelukonsepteihin ja käyttävät sekä VHDL: ää että Verilogia.

  • Digital Design with RTL Design, VHDL, and Verilog
  • Hdl Chip Design: A Practical Guide for Designing, Synthesizing & simulating Asics & FPGAs Using Vhdl or Verilog
  • Design Recipes for FPGAs, Second Edition: Using Verilog and VHDL
  • HDL-ohjelmoinnin perusteet: VHDL ja Verilog

muut tärkeät VHDL-linkit

toteutukset ja simulaattorit

  • vapaa / avoin lähdekoodi
    • GHDL
    • NVC
    • Vapaa HDL-projekti
  • Kaupallinen / yksityinen
    • VHDL Simili
    • Active-HDL
    • Incisive Enterprise Simulator
    • ModelSim

Työkalut

  • EDA Utils: laaja kokoelma apuohjelmia VHDL: n sekä Verilogin ja muiden HDL: n kanssa työskentelyyn.
  • EDA Playground: online-hiekkalaatikko VHDL-mallien testaamiseen.
  • Editor-paketit
    • Emacs VHDL-tila
    • VHDL-liitännäinen vim: lle
    • VHDL-paketti Ylevälle tekstille
    • VHDL Atomille
    • VHDL Muistilehtiölle++

sinunkin pitäisi tietää…

VHDL on toinen kahdesta merkittävästä laitteistokuvauskielestä. Toinen on Verilog. Useimmat laitteistosuunnittelijat tuntevat molemmat, sekä matalan tason käyttöjärjestelmäkielet, kuten Cand C++.

Vastaa

Sähköpostiosoitettasi ei julkaista.