Pro vytváření programu je nejlepší použít program ispDesignExpert, který dodává firma Lattice. Tento program umožňuje napsání programu, simulaci a nahrání do obvodu.

Základní syntaxe jazyka ABEL-HDL

pravidla:

-každý řádek může být dlouhý maximálně 150 znaků

-klíčová slova, identifikátory a čísla musí být od sebe oddělena mezerou, vyjímkou jsou klíčová slova a identifikátory,              které  mají ve své syntaxi čárku

-klíčová slova, identifikátory a čísla nesmějí obsahovat mezery a tečky

-mezery se mohou používat v komentářích a řetězcích

-klíčová slova a identifikátory lze psát malými i velkými písmeny, ale jsou rozlišovány ( START nerovná se start)

 

Identifikátory:

-jsou jména, která identifikují obvody PLD a jejich vývody, skupiny signálů, vstupní a výstupní signály, konstanty, atd.

-dlouhé maximálně 31 znaků

-musejí začínat písmenem nebo podtržítkem, dále mohou obsahovat i čísla

-nesmějí obsahovat mezeru ani tečku, k oddělení slov se používá _

-identifikátor nesmí být klíčové slovo

 

Komentáře

- "Komentář" nebo "Komentář

 

Konstanty

-definují se v poli deklarations

-konstantou může být číslo nebo speciální znak

    .C.    hodinový signál (log 1-0-1)

    .K.    hodinový signál (log 0-1-0)

    .D.    sestupná hrana (z log 1 na log 0)

    .U.    náběžná hrana ( z log 0 na log 1)

    .X.    libovolný stav

    .Z.    třetí stav (stav vysoké impedance)

 

Řetězce

-posloupnost ASCII znaků uzavřená v apostrofech (ten může být také součástí řetězce, ale musí být před ním zpětné lomítko\)

 

Čísla

-implicitní je desítková soustava

-všechny výpočty probíhají s délkou 32b

    -binární soustava ^b 11100010

    -osmičková soustava ^o 102

    -dekadická soustava 12

    -šestnáctková soustava ^h 1A

    -ASCII hodnota znaku  "k"

 

Skupiny (Sety)

-set je skupina signálů s kterým pracujeme jako s celkem (velké zjednodušení).

-např.  Q=[Q1,Q2,Q3,Q4], potom můžeme definovat Q jako celek, Q nabývá hodnot 0 až F, Q1 je MSB a Q4 je LSB

 

Operátory

-logické:

 operátor      popis
     !  negace
     &  AND
     #  OR
     $  XOR
     !$  NXOR   

-aritmetické:

 operátor   popis   příklad
      -   dvojkový doplněk   -A
      -   rozdíl   A-B
     +   součet   A+B
     *   součin   A*B
     /   celočíselné dělení   A/B
     %   zbytek po dělení   A%B
    <<   rotace A vlevo o B bitů   A<<B 
    >>   rotace A vpravo o B bitů   A>>B

-relační:

  operátor   popis
     ==   je rovno
      !=   není rovno
      <   menší než
      <=   menší nebo rovno
      >   větší než
      >=   větší nebo rovno

-přiřazovací operátory:

  operátor   popis
     =   kombinační přiřazení
     :=   sekvenční přiřazení

 

Priorita operátorů

  operátor  -  !  &  <<  >>  *  /  %  +  -  #  $  !$  ==  !=  <  <=  >  >=
  priorita  1  1  2  2  2  2     2  2  3  3  3  3  3  4  4  4  4  4  4

-1 je nejvyšší priorita, 4 nejnižší, operátory se stejnou prioritou se vyčíslují zleva doprava, prioritu lze měnit kulatými závorkami

 

Struktura zdrojového textu

-hlavička:

    module - modul, určuje jméno modulu

    title - popis daného modulu, nepovinný

-deklarace:

    -obsahuje klíčové slovo deklarations

    -specifikace jmen a vlastností signálů (čísla pinů, uzlů)

    -zde se deklarují konstanty, stavy, stavový registr (v případě logického popisu pomocí stavového diagramu), makra,                 knihovny, obvodu (nepovinné)

-logický popis:

    -pravdivostní tabulkou - Truth_Table

    -rovnicemi - Equations

    -popis stavů - State_Diagram

-testovací vektor:

    -používá se pro časovou a funkční simulaci, specifikuje očekávanou činnost logického obvodu, definuje výstupy jako funkce vstupů

    -může být součástí modulu ( za klíčovým slovem Test_Vectors) nebo je jako samostatný soubor s příponou *.abv

-konec modulu:

    -klíčové slovo End, tvoří pár se slovem Module

-ostatní prvky modulu:

    -patří sem především direktivy, které začínají @

 

Klíčová slova

    Záhlaví

Klíčové slovo:    MODULE

Syntaxe:    MODULE JMÉNO_MODULU

Popis:    Slovo, kterým začíná každý program (povinné). Tvoří pár se slovem END. V programu může být použito několik modulů s různým jménem, ale toto se nedoporučuje kvůli přehlednosti. Jméno_modulu může obsahovat maximálně 31 znaků.

Příklad:    Module Scitacka

 

Klíčové slovo:    TITLE

Syntaxe:    TITLE 'ŘETĚZEC'

Popis:     V ŘETĚZEC mohou být libovolné znaky (např. charakteristika programu). Klíčové slovo TITLE není povinné. Maximální délka řetězce je 324 znaků.

Příklad:    Title 'Scitacka- Michal Vavra'

 

    Deklarace

Klíčové slovo:    DECLARATIONS

Syntaxe:    Deklarace    deklarace

Popis:    Není povinné. Tímto slovem začíná text, ve kterém deklarujeme vstupní a výstupní piny, konstanty, sety...

Příklad:    Declarations

                            Vstup, Reset    pin    1,2;

 

Klíčové slovo:    PIN

Syntaxe: