VHDL tulee sanoista very high-speed integrated circuit hardware description language. Se on ohjelmointikieli, jota käytetään digitaalisen järjestelmän mallintamiseen dataflow, behavioral and structural style of modeling. Tämä kieli otettiin käyttöön vuonna 1981 puolustusministeriön (DoD) vhsic-ohjelmassa.
kuvaa suunnittelua
VHDL: ssä kokonaisuutta käytetään kuvaamaan laitteistomoduulia. Yhteisö voidaan kuvata käyttämällä,
- Yhteisöilmoitus
- Arkkitehtuuri
- kokoonpano
- Pakettiilmoitus
- Pakettirunko
katsotaanpa mitä nämä ovat?
Yhteisöilmoitus
siinä määritellään laitteistomoduulin nimet, lähtösignaalit ja moodit.
syntaksi−
entity entity_name is Port declaration;end entity_name;
yhteisöilmoituksen olisi alettava sanoilla ”yhteisö” ja päätyttävä avainsanoilla ”loppu”. Suunta on input, output tai inout.
portin voi lukea | |
Out | portti voidaan kirjoittaa |
Inout | portti voidaan lukea ja kirjoittaa |
Puskuri | portti voidaan lukea ja kirjoittaa, sillä voi olla vain yksi lähde. |
Arkkitehtuuri –
arkkitehtuuria voidaan kuvata rakenteellisella, dataflow -, behavioral-tai sekatyylillä.
syntaksi−
architecture architecture_name of entity_name architecture_declarative_part;begin Statements;end architecture_name;
Tässä, Meidän pitäisi määrittää yksikön nimi, jolle kirjoitamme arkkitehtuurin elin. Arkkitehtuurilauseiden tulisi olla avainsanan ”begin” ja ” énd ” sisällä. Arkkitehtuurin deklaratiivinen osa voi sisältää muuttujia, vakioita tai komponenttiilmoituksia.
Datavirtamallinnus
tässä mallinnustyylissä datavirta olion läpi ilmaistaan käyttäen samanaikaista (rinnakkaista) signaalia. Samanaikaiset lausekkeet VHDL: ssä ovat milloin ja tuottaa.
niiden lisäksi ainoastaan operaattoreita käyttävät toimeksiannot (ja, ei, +,*, sll jne.) voidaan käyttää myös koodin muodostamiseen.
tämänkaltaisessa koodissa voidaan lopuksi käyttää myös erikoistehtävää, jota kutsutaan lohkoksi.
samanaikaisessa koodissa voidaan käyttää seuraavia−
- operaattorit
- The WHEN statement (WHEN/ELSE tai WITH/SELECT / WHEN);
- the GENERATE statement;
- the BLOCK statement
Behavioral Modeling
tässä mallinnustyylissä olion käyttäytyminen lausekkeiden joukkona suoritetaan peräkkäin määrätyssä järjestyksessä. Vain prosessin, funktion tai menettelyn sisään sijoitetut lauseet ovat peräkkäisiä.
prosessit, funktiot ja menettelyt ovat ainoat koodin osat, jotka suoritetaan peräkkäin.
kuitenkin kokonaisuutena jokin näistä lohkoista on edelleen yhtäaikainen sen ulkopuolelle sijoitettujen muiden lausekkeiden kanssa.
eräs käyttäytymiskoodin tärkeä näkökohta on se, että se ei rajoitu jaksottaiseen logiikkaan. Sen avulla voimme rakentaa peräkkäisiä piirejä sekä kombinaatiopiirejä.
käyttäytymislauseet ovat IF, WAIT, CASE ja LOOP. Muuttujia on myös rajoitettu, ja niitä on tarkoitus käyttää vain peräkkäisinä koodeina. Muuttuja ei voi koskaan olla globaali, joten sen arvoa ei voi jakaa suoraan.
Rakennemallinnus
tässä mallinnuksessa kokonaisuutta kuvataan yhteenliitettyjen komponenttien joukkona. Komponentti instantiaatiolauseke on samanaikainen lausuma. Siksi näiden lausumien järjestys ei ole tärkeä. Mallintamisen rakenteellinen tyyli kuvaa vain komponenttien yhteenliittämistä (joita pidetään mustina laatikkoina), vihjaamatta itse komponenttien tai niiden kollektiivisesti edustaman kokonaisuuden käyttäytymisestä.
rakennemallinnuksessa arkkitehtuurin runko koostuu kahdesta osasta: deklaratiivisesta osasta (ennen avainsanan alkua) ja statement-osasta (avainsanan jälkeen alkaa).
Logiikkaoperaatio – ja portti
X | Y | Z |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
aaltomuodot
Logiikkaoperaatio – tai portti
X | Y | Z |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
aaltomuodot
Logiikkaoperaatio – Ei portti
X | Y |
---|---|
0 | 1 |
1 | 0 |
aaltomuodot
Logiikkaoperaatio-NAND-portti
X | Y | z |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
aaltomuodot
Logiikkaoperaatio – nor Gate
X | Y | z |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
aaltomuodot
Logiikkaoperaatio-XOR-portti
X | Y | Z |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
aaltomuodot
Logiikkaoperaatio-X-NOR Gate