Navodila za SHDL (V.38)

SHDL | Sintaksa | Prevajanje in analiza

SHDL (Small Hardware Description Language) je poenostavljen jezik za modeliranje digitalnih vezij, po zgledu standardnega strojno-opisnega jezika VHDL. Model vezja opišemo z eno- ali večbitnimi signali, ki imajo celoštevilske vrednosti, prireditvenimi izrazi in pogojnimi stavki. Spletno orodje SHDL omogoča izdelavo, analizo in simulacijo modela vezja v SHDL ter avtomatsko pretvorbo v VHDL.

Modeliranje in simulacija v treh korakih

1. Nov model2. Opis in prevajanje3. Simulacija vezja

1. Nov model

Izdelavo novega vezja začnemo v zavihku  Model , kjer v okencu določimo ime vezja in v tabeli definiramo signale.
V tabeli signalov dodajamo nove vrstice z Add, Del pa izbriše zadnjo vrstico. Signalom določimo ime, vrsto in podatkovni tip.

Primer: u1 - enobitni, u4 - 4-bitni nepredznačen in s8 je 8-bitni predznačen signal.

Klik na New naredi opis entitete vezja in deklaracijo signalov.

Namig

Nov model vezja lahko naredimo tudi brez tega koraka, vendar izpolnjeno tabelo potrebujemo za simulacijo.
Ko vezje prevedemo, v tabeli Wave Ports & Signals določamo signale prikazane na simulacijskem grafu.
Pred izdelavo novega modela počistimo SHDL in vsebino tabele s klikom na Clear.

2. Opis in prevajanje

Vezje opišemo s prireditvenimi in pogojnimi stavki v poenostavljeni sintaksi SHDL. Model vezja sestavlja: ime entitete, deklaracija signalov in blok stavkov med begin in end. Stavki se izvajajo paralelno (sočasno), ker predstavljajo opis delov vezja.

Primer: model 4-bitnega števca z omogočanjem štetja (en)

entity stevec
 en: in u1
 st: out u4
begin
 if (en) then
   st <= st + 1
 end
end
Namig: Signal za uro (clk) NE deklariramo, ker je v jeziku SHDL privzet ob uporabi sekvenčnih prireditev. Podobno velja tudi za asinhroni reset (rst), če smo v nastavitvah izbrali asinhrono resetiranje.

Prevajanje modela izvedemo s klikom na gumb  Parse . Nastavitve prevajalnika odpremo na gumbu  Setup  in zapremo s ponovnim klikom na ta gumb.

Prevajalnik bo pod opisom vezja javil uspešen zaključek (Parse finished.) ali pa sporočil napako. Sporočilo o napaki vsebuje kratek opis in mesto. Primer: Napaka v 1:8: Pričakujem ')'! sporoča, da smo v prvi vrstici na 8 mestu verjetno pozabili zaklepaj.

Ko model prevedemo brez napak, dobimo v zavihku Analysis tabelo Resources s seznamom zaznanih gradnikov vezja. Zavihek  VHDL  prikaže opis modela vezja, ki je pretvorjen v jezik VHDL. Klik na copy uporabimo za enostaven prenos opisa v odložišče in nato v programsko opremo za prevajanje logike v jeziku VHDL.

3. Simulacija vezja

Simulacijo izvedemo tako, da v oknu s signali nastavimo vrednosti vhodnih signalov in izvedemo  Run .

Namig

Število simulacijskih ciklov določimo v okencu Cycles. Ob ponovnem kliku na Run, se simulacija sekvenčnega vezja nadaljuje od zadnjega stanja. Simulacijo od začetnega (reset) stanja izvedemo tako, da najprej ponovno prevedemo vezje.

Primer: simulacija pulzno-širinskega modulatorja. Vhod m nastavimo tako, da vpišemo vrednost v okence Value, nato pa spremenimo vrednosti grafa s klikom na ustrezne cikle.

entity pwm
 m: in u4
 c: u4
 pw: out u1
begin
  c <= c + 1
  pw = 0 when m < c else 1
end

Shranjevanje modelov vezja

 Save  shrani model vezja v obliki tekstovne datoteke s končnico .shdl. Spletni brskalnik bo shranil datoteko v privzeto mapo (downloads), od koder jo v operacijskem sistemu prenesemo v svojo mapo. Če imamo v nastavitvah obkljukan save waveform, se bodo poleg modela shranili tudi simulacijski vhodni signali.

 Load...  uporabimo za nalaganje modela vezja iz lokalnega računalnika v spletni brskalnik.

Orodje SHDL omogoča tudi shranjevanje na spletni strežnik, ki zahteva prijavo z geslom. Podatke za prijavo vam posreduje predavatelj predmeta, kjer uporabljamo SHDL. Po vnosu identitete (ID) in gesla (pass) se pojavi seznam v strežniku shranjenih datotek. Iz seznama izberemo model vezja in ga z gumbom  Read  prenesemo v spletno orodje, za shranjevanje na strežnik pa uporabimo  Write . Model se shrani pod imenom vezja (entitete), zato pazimo, da ima novo vezje drugačno ime, sicer se podatki prepišejo!