VHDL (VHSIC Hardware Kuvaus Kieli) on tehokas kieli, jota käytetään mallintamaan sähköisiä järjestelmiä. Yksi sen tärkeimmistä ominaisuuksista on kirjastojen käyttö ja käyttölausekkeet, jotka auttavat organisoimaan ja hallitsemaan monimutkaisia laitteistokuvauksia tehokkaasti. Näiden ominaisuuksien asianmukainen hyödyntäminen on tärkeää selkeässä ja ylläpidettävissä VHDL-koodissa.

Mitä ovat VHDL-kirjastot?

VHDL:ssä kirjasto on kokoelma siihen liittyviä suunnitteluyksiköitä, kuten yksikköjä, arkkitehtuuria, paketteja ja konfiguraatioita. Kirjastot toimivat kontteina, jotka auttavat koodauksen järjestämisessä ja helpottavat uudelleenkäyttöä useissa projekteissa. Oletuksena on, että -kirjastoa käytetään tilapäisissä, hankekohtaisissa suunnitteluyksiköissä.

Käyttölausekkeiden ymmärtäminen

use[] -lauseketta käytetään tuomaan tiettyjä suunnitteluyksiköitä tai pakettien osia nykyiseen soveltamisalaan. Tämä yksinkertaistaa koodia sallimalla suoran pääsyn toimintoihin, tyyppiin ja vakioihin ilman, että joka kerta tarvitsisi määrittää koko kirjaston ja paketin nimeä.

Käyttämislausekkeiden syntaksi

Käyttölausekkeen perussyntaksi on:

use library name.package name.element name;

Esimerkiksi [numeric std -paketin käyttäminen eli [-kirjastosta, kirjoitat:

use iee.numeric std.all;

Kirjastojen ja käyttölausekkeiden käyttöä koskevat parhaat käytännöt

  • Ilmoita aina tarvitsemasi kirjastot VHDL-tiedoston alussa.
  • Käytä aall - avainsanaa tuodaksesi kaikki elementit paketista tarvittaessa.
  • Ole tarkka käyttölausekkeiden kanssa, jotta vältät nimiavaruusristiriidat.
  • Järjestä koodi ryhmittelemällä siihen liittyvät käyttölausekkeet yhteen.

Esimerkki organisoidusta VHDL-koodista

Tässä on yksinkertainen esimerkki kirjastojen käytöstä ja käyttölausekkeista:

kirjastossa,

use ieee.std logic 1164.all;

use iee.numeric std.all;

yhteisöesimerkki on

portti (a, b: std logic vektorissa(3 alaspäin 0);

summa: out std logic vektor(4 alas 0)

loppuesimerkki;

arkkitehtuuri Esimerkin käyttäytyminen on

signaali a int, b int: signature unsignated(3 alas 0);

aloita

a intplus unanted(a);

b intplus unanted(b);

numberplus std logic vektor(a int + b int;

lopettaa käytös;