Syntéza sekvenčních obvodů

Syntéza – postup, kterým vytvoříme obvod na základě zadání (např. slovního).

Postup:

  1. Specifikace zadání
    • Nejčastěji slovní zadání
    • Jednoznačný popis funkce
    • Volba rozhraní – vstupy, výstupy, povolené stavy, podmínky přechodů, …
  2. Volba vnitřního provedení podle zvolené technologie
    • Volba typu automatu (Moore, Mealy, …)
    • Volba kódování stavu (jak bude stav reprezentován v paměti obvodu), např.:
      • Binární – v paměti uloženo číslo stavu ve dvojkové soustavě
      • Gray – v paměti uloženo číslo stavu v podobě grayova kódu
      • One-hot – v paměti má každý stav svůj bit a vždy je aktivní právě jeden z nich
      • Johnson – v paměti má každý stav svůj bit a vždy jsou aktivní bity aktuálního a všech numericky předchozích stavů (např. pro stav číslo 4, jsou aktivní první 4 bity)
  3. Popis logické funkce
    • Popis pomocí pravdivostní tabulky, stavového diagramu automatu nebo matematického zápisu výstupní a přechodové funkce.
  4. Minimalizace logické funkce
    • Dojde ke sloučení ekvivalentních stavů (mají stejné přechody a výstupní hodnoty)
    • Ideálně ve formě konjunktivní nebo disjunktivní normální formy (jeden typ členů, např. NAND/NOR)
    • Např. Karnaughova mapa nebo algebraické úpravy
  5. Kontrola správnosti
    • Ověříme, že se funkce chovají dle zadání.
    • Např. prstem po stavovém diagramu automatu nebo simulací v programu
  6. Volba stavové paměti a logických členů
    • Zvolíme technologii a vhodné komponenty (paměť, klopné obvody, logické členy, …) obvodu
      • Tento krok lze provézt v rámci popisu logické funkce – někdy je jednodušší o funkce uvažovat spíše v podobě podmínek pro aktivaci/deaktivaci konkrétního stavového signálu než jako o algebraické funkci.
    • Klademe důraz na požadované časování (rychlost), napěťové úrovně, …
  7. Realizace obvodu
    • Sestavíme minimalizovanou výstupní a přechodovou funkci z logických členů
    • Připojíme stavovou paměť
  8. Test obvodu
    • Ověříme funkci a chování obvodu v mezních situacích (zakázané stavy, mezní frekvence, …)
  9. Dokumentace
    • Zdokumentujeme návrh a zjištěné chování obvodu

Příklad – dopravník s lisem (viz. stavové automaty)

Specifikace zadání

Nákres dopravníkového pásu s lisem

Chceme realizovat sekvenční obvod pro automatický chod dopravníkového pásu s lisem. Pro jednoduchost zanedbáváme mezní stavy. Realizujeme tedy pouze cyklus „Doprava →Dolů → Nahoru → Doleva“. K přechodu dojde vždy při dojetí na koncový snímač.

Rozhraní:

  • 4 vstupy: IL, IR, IU, ID
  • 4 výstupy: QL, QR, QU, QD
  • 4 vnitřní stavy: SL, SR, SU, SD

Volba vnitřního provedení podle zvolené technologie

Výstup je přímo určen aktuálním stavem – stav odpovídá směru pohybu a výstupy přímo spínají motory ve správném směru.

Chceme aby byl aktivní právě jeden motor na základě aktivního stavu, proto je vhodné zvolit kódování one-hot. Výstupy tak budou shodné s vnitřním stavem.

Předpokládáme, že obvod bude asynchronní – ovládán přímo změnou úrovně snímačů.

Popis logické funkce

Stavový automat obvodu

Použijeme-li kódování one-hot, bude výstupní funkce triviální – hodnoty vnitřního stavu odpovídají hodnotám na výstupech.

Díky předpokladu, že je v kódování one-hot aktivní právě jeden stav je možné při vyhodnocování přechodů ignorovat neaktuální stavy. Abychom dodrželi kódování one-hot, je při přechodu nezbytné vypnout signál aktuálního stavu a zapnout signál stavu následujícího. Hodilo by se použít paměťový prvek, který lze řídit signály zapnout a vypnout. Naštěstí takový máme – klopný obvod RS. Přechodová funkce bude tedy reprezentovaná čtveřicí funkcí aktivujících následující stav:

\text{následující směr} = \text{aktuální směr} \land \text{aktuální senzor}

Minimalizace logické funkce

Funkce jsou již minimální, není potřeba cokoliv dále minimalizovat.

Realizace obvodu

Stačí zmíněnou logickou funkci připojit k paměťovým prvkům RS a jejich výstupy připojit na výstupy obvodu.

Realizace obvodu v prostředí Siemens Logo!Soft Comfort.