SEKVENČNÍ SUBSYSTÉMY A JEJICH IMPLEMENTACE V PROGRAMOVATELNÝCH LOGICKÝCH OBVODECH

Podobné dokumenty
PROGRAMOVATELNÉ LOGICKÉ OBVODY

SEKVENČNÍ LOGICKÉ OBVODY

Prezentace do předmětu Architektury a použití programovatelných obvodů 2

ASYNCHRONNÍ ČÍTAČE Použité zdroje:

DIGITÁLN LNÍ OBVODY A MIKROPROCESORY 1. ZÁKLADNÍ POJMY DIGITÁLNÍ TECHNIKY

Cíle. Teoretický úvod

Struktura a architektura počítačů (BI-SAP) 4

Obsah DÍL 1. Předmluva 11

Logické funkce a obvody, zobrazení výstupů

KOMBINAČNÍ LOGICKÉ OBVODY

5. Sekvenční logické obvody

Způsoby realizace této funkce:

3. Sekvenční logické obvody

1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD

Technická kybernetika. Obsah. Klopné obvody: Použití klopných obvodů. Sekvenční funkční diagramy. Programovatelné logické automaty.

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Programovatelná logika

Kódováni dat. Kódy používané pro strojové operace

Sekvenční logické obvody

Y36SAP 2007 Y36SAP-4. Logické obvody kombinační a sekvenční používané v číslicovém počítači Sčítačka, půlsčítačka, registr, čítač

Logické řízení. Náplň výuky


Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Sekvenční logika - debouncer, čítače, měření doby stisknutí tlačítka Student

Pohled do nitra mikroprocesoru Josef Horálek

Návrh synchronního čítače

2.9 Čítače Úkol měření:

2-LC: ČÍSLICOVÉ OBVODY

Operace ALU. INP 2008 FIT VUT v Brně

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Zvyšování kvality výuky technických oborů

18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry

BISTABILNÍ KLOPNÉ OBVODY, ČÍTAČE

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Úloha 9. Stavové automaty: grafická a textová forma stavového diagramu, příklad: detektory posloupností bitů.

Title: IX 6 11:27 (1 of 6)

VY_32_INOVACE_CTE_2.MA_18_Čítače asynchronní, synchronní. Střední odborná škola a Střední odborné učiliště, Dubno Ing.

Logické obvody 10. Neúplné čítače Asynchronní čítače Hazardy v kombinačních obvodech Metastabilita Logické obvody - 10 hazardy 1

... sekvenční výstupy. Obr. 1: Obecné schéma stavového automatu

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

OVLÁDACÍ OBVODY ELEKTRICKÝCH ZAŘÍZENÍ

Analogově-číslicové převodníky ( A/D )

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL

Sekvenční logické obvody

3. REALIZACE KOMBINAČNÍCH LOGICKÝCH FUNKCÍ

Návrh asynchronního automatu

Architektura počítačů Logické obvody

BDIO - Digitální obvody

Architektura počítačů Logické obvody

Číslicové obvody základní pojmy

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

Dispositifs à semiconducteurs. Circuits intégrés. Deuxième partie: Circuits intégrés digitaux

Sylabus kurzu Elektronika

Rozšiřující desce s dalšími paralelními porty Rozšiřující desce s motorkem Elektrickém zapojení Principu činnosti Způsobu programování

Princip funkce počítače

Kombinační automaty (logické obvody)

Struktura a architektura počítačů

Projekt Pospolu. Sekvenční logické obvody Klopné obvody. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jiří Ulrych.

Integrovaná střední škola, Sokolnice 496

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Registry a čítače část 2

Integrovaná střední škola, Sokolnice 496

Y36SAP Y36SAP-2. Logické obvody kombinační Formy popisu Příklad návrhu Sčítačka Kubátová Y36SAP-Logické obvody 1.

Návrh čítače jako automatu

FPGA + mikroprocesorové jádro:

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

1 z :27

VY_32_INOVACE_CTE_2.MA_19_Registry posuvné a kruhové. Střední odborná škola a Střední odborné učiliště, Dubno Ing. Miroslav Krýdl

Typy a použití klopných obvodů

SIMULACE JEDNOFÁZOVÉHO MATICOVÉHO MĚNIČE

Příklady popisu základních obvodů ve VHDL

Struktura a architektura počítačů (BI-SAP) 3

Druhá generace palivoměru LUN 5275 pro letoun EV-55

Řízení IO přenosů DMA řadičem

MULTISIM VÝUKOVÝ ELEKTRONICKÝ MATERIÁL

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův

5. A/Č převodník s postupnou aproximací

2. ÚVOD DO OVLÁDACÍ TECHNIKY

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů

Tlačítka. Konektor programování

Praktické úlohy- 2.oblast zaměření

U Úvod do modelování a simulace systémů

Základy logického řízení

Klopný obvod typu D, dělička dvěma, Johnsonův kruhový čítač

Mikroprocesorová technika (BMPT)

Automatizace je proces při němž je řídicí funkce člověka nahrazována činností

Architektury počítačů a procesorů

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:

2.8 Kodéry a Rekodéry

Inovace a zkvalitnění výuky směřující k rozvoji odborných kompetencí žáků středních škol CZ.1.07/1.5.00/

PŘELAĎOVÁNÍ AKTIVNÍCH FILTRŮ POMOCÍ NAPĚŤOVĚ ŘÍZENÝCH ZESILOVAČŮ

Konečný automat. Studium chování dynam. Systémů s diskrétním parametrem číslic. Počítae, nervové sys, jazyky...

Přerušovací systém s prioritním řetězem

Návrh ovládání zdroje ATX

LOGICKÉ OBVODY X36LOB

Booleova algebra. ZákonyBooleovy algebry Vyjádření logických funkcí

ČÍSELNÉ SOUSTAVY PŘEVODY

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a informatiky Ústav radioelektroniky Ing. Jaromír Kolouch, CSc. SEKVENČNÍ SUBSYSTÉMY A JEJICH IMPLEMENTACE V PROGRAMOVATELNÝCH LOGICKÝCH OBVODECH TEZE HABILITAČNÍ PRÁCE BRNO 1999

ISBN 80 214 1310 7 2

OBSAH PŘEDSTAVENÍ AUTORA 4 1. ÚVOD 5 2. PROGRAMOVATELNÉ LOGICKÉ OBVODY A POPIS JEJICH APLIKACÍ V JAZYKU ABEL HDL 7 3. IMPLEMENTACE SEKVENČNÍCH SUBSYSTÉMŮ V OBVODECH PLD 8 3.1 Čítače a způsoby jejich popisu 8 3.2 Binární čítače 8 3.3 Dekadické čítače 10 3.4 Čítače pracující v Grayově kódu 11 3.5 Čítače pracující v kódu 1 z n 13 3.6 Další synchronní funkce čítačů 13 3.7 Vytváření rozsáhlých čítačů 13 4. ZÁVĚR 14 5. LITERATURA 15 ABSTRACT 16 3

Jaromír Kolouch se narodil v Brně v roce 1945. Vystudoval Vojenskou akademii v Brně, specializace Elektrická a speciální výstroj letadel, a v roce 1968 zde získal inženýrský titul. V roce 1984 obhájil kandidátskou disertační práci na Vysokém učení technickém v Brně, čímž získal titul CSc. V letech 1968 až 1975 pracoval jako asistent, později jako odborný asistent na Vojenské akademii v Brně, z toho jeden rok (1969 až 1970) byl vyslán na Vojenskou technickou akademii v Káhiře. Od roku 1975 pracuje jako odborný asistent na ústavu radioelektroniky FEI VUT v Brně. Jeho pracovní náplní je výuka v kursech zaměřených na průmyslovou elektroniku, impulsovou, číslicovou a mikroprocesorovou techniku. V posledních letech se zabývá technikou programovatelných logických obvodů. 4

1. ÚVOD Programovatelné logické obvody (PLD) představují moderní trend v číslicové technice. Efektivní práce při vývoji číslicových systémů založených na těchto obvodech dnes již není myslitelná bez použití počítačů. To jednak zahrnuje podporu samotného návrhu zapojení, kdy návrhové systémy dovolují specifikovat pomocí vstupních prostředků zapojení systému způsobem, který je pro člověka přehledný a poměrně snadno pochopitelný, a dokáží tuto specifikaci (s větší či menší interaktivní účastí konstruktéra) přetransformovat na obvodové zapojení, které je optimalizováno pro určitý zvolený typ cílových číslicových obvodů, jednak umožňuje simulací navrženého zapojení ověřit jeho funkční vlastnosti mnohem pohodlněji a důkladněji, než to bylo možné v době, kdy se toto ověření provádělo experimentálně na realizovaném vzorku. Mezi nejrozšířenější vstupní prostředky patří textový popis pomocí jazyků HDL (Hardware Description Language) a prostředky umožňujícími vstup údajů v grafické podobě (ve tvaru schématu). Pro návrh stavových automatů existují také prostředky podporující vstup ve tvaru grafického vyjádření stavových diagramů. Složitější návrhové systémy často umožňují kombinaci různých způsobů popisu. Ideálním stavem by bylo, kdyby návrhové systémy na základě kteréhokoliv takového popisu automaticky vytvořily optimální konfiguraci cílového obvodu, splňující požadavky konstruktéra. Pro nepříliš složité konstrukce s typickými požadavky se výsledky návrhu s použitím moderních návrhových systémů takovému stavu skutečně blíží. Existuje však řada důvodů, pro něž tyto systémy ve složitějších případech mohou vyžadovat interaktivní přístup konstruktéra. Mezi ně zejména patří téměř nevyčerpatelná variabilita různých zapojení, která je možno pomocí obvodů PLD realizovat, a stále probíhající rozvoj struktur používaných v těchto obvodech. Použití počítačů při návrhu aplikací obvodů PLD bezesporu představuje mnohem vyšší kvalitu práce než ruční návrh. Na druhé straně však práce s návrhovými systémy, které od uživatele nezbytně nevyžadují pochopení podstaty procesu, může přinést určité problémy související s podceněním důležitosti tohoto porozumění. Pokud se provádějí návrhy typických aplikací nepříliš velké složitosti, není detailní znalost problému podmínkou úspěšné práce. Objeví-li se však v návrhu některé zvláštnosti nestandardního charakteru, nebo překročí-li rozsah nebo složitost navrhované aplikace určitou mez, může se stát, že bez znalosti problému nebude výsledek práce zdaleka optimální, nebo dokonce že navržený obvod nebude spolehlivě fungovat. Hranice mezi tím, co je možno považovat za typickou aplikaci nepříliš velké složitosti a co již této charakteristice nevyhovuje, leží pro každý návrhový systém jinde. Je proto důležité správně odhadnout, co si s daným návrhovým systémem ještě můžeme dovolit bez hlubšího zamyšlení nad podrobnostmi realizace navrhované aplikace a kdy již je toto zamyšlení vhodné nebo dokonce nezbytné. Znalost principů a podstaty procesu návrhu nesporně takový odhad činí kvalifikovanějším a usnadní provedení případných korekcí v návrhu. Mezi tyto principy patří metody implementace číslicových systémů v obvodech PLD, jejichž pomocí se ze vstupní informace (zdrojový text v jazyku HDL, schéma apod.) vytváří struktura cílového obvodu, která má navrhovaný systém realizovat. Předložená práce obsahuje soustavný rozbor realizovatelnosti synchronních sekvenčních subsystémů, zejména čítačů, v těchto obvodech. Po úvodu je v druhé kapitole uveden přehled nejčastěji používaných obvodů PLD. Je zde stručně popsán i postup při návrhu aplikací obvodů PLD. Záměrem této části je jednak poskytnout stručný přehled 5

obvodů, jichž se týkají další kapitoly, jednak definovat terminologii v nich používanou. Dále jsou zde obsaženy některé úvahy o klopných obvodech obsažených v obvodech PLD a o jejich specifických vlastnostech. Jsou zde uvedeny způsoby popisu sekvenčních systémů v jazyku ABEL HDL používané v dalším textu a vysvětlena vzájemná emulace klopných obvodů různých typů a konverze vztahů pro ně, což bývá užitečné u obvodů PLD obsahujících logický člen EX-OR ve struktuře makrobuněk. Těžištěm práce je kapitola třetí, pojednávající o implementaci sekvenčních subsystémů v obvodech PLD. Je zde uveden systematický rozbor synchronních čítačů spočívající ve vyjádření výrazů pro jednotlivé bity ve tvaru SOP (součtu součinů), z něhož je možno přímo zjistit počet termů potřebných pro jejich implementaci. Potřebný počet termů je sledován pro zapojení, která umožňují typické obvody PLD druhé a třetí generace, u nichž je možno zvolit zařazení či nezařazení invertoru do cesty signálu a vybrat pro realizaci čítačů registr typu D nebo T, popřípadě emulovat klopné obvody registru jednoho z těchto typů klopnými obvody druhého typu pomocí předřazeného logického členu EX- OR. Vedle standardního zapojení čítačů jsou diskutovány i možnosti využití dalších prvků vyskytujících se ve strukturách některých obvodů PLD, jako je synchronní či asynchronní nastavení (nulování) klopných obvodů, a posouzeny další aspekty, jako počáteční stav čítače po připojení napájecího napětí, chování čítačů v nevyužitých stavech u čítačů s neúplným cyklem a podobně. Rozbor je proveden pro binární čítače s úplným a zkráceným cyklem, pro čítače pracující v kódu BCD a v Grayově kódu. Stručně jsou zde uvedeny i čítače pracující v kódu 1 z n. Dále jsou posouzeny přídavné funkce čítačů, jako je synchronní nulování, naplnění a podobně, vliv jejich implementace na potřebný počet termů a způsoby vytváření čítačů s vyšším počtem bitů, než jakého je možno dosáhnout v běžných obvodech PLD druhé generace. Závěr kapitoly tvoří několik úvah o stavových automatech. Vzhledem ke značné různorodosti stavových automatů však není pro počty termů při jejich implementaci možno stanovit podobná pravidla obecné platnosti jako u čítačů, takže jsou zde uvedeny jen všeobecné zásady pro dosažení výsledku blížícího se k optimu. Výsledky uvedené analýzy byly ověřeny na mnoha příkladech. V práci jsou uvedeny četné příklady zdrojových textů v jazyku ABEL HDL, které zároveň dokumentují možnosti popisu nejdůležitějších diskutovaných subsystémů v tomto jazyce. Funkce všech subsystémů popsaných těmito texty byla ověřena simulací v systému easyabel nebo ISP SYNARIO a většina i implementací ve vhodných obvodech PLD. Hlavním cílem habilitační práce je analýza synchronních sekvenčních systémů, zejména čítačů, s ohledem na možnosti jejich realizace v obvodech PLD druhé a třetí generace, tedy v současnosti používaných jednoduchých obvodech SPLD známých řad GAL, EP a podobně, a ve složitých obvodech CPLD (jako jsou obvody řady firmy AMD MACH, isplsi firmy Lattice atd.). Podobná analýza se ve stávající literatuře sice vyskytuje, viz např. [14], není však zdaleka provedena vyčerpávajícím způsobem. Značná část poznatků uvedených v této habilitační práci je využívána ve výuce, především v kursu Programovatelné logické obvody, jehož garantem je autor práce. 6

2. PROGRAMOVATELNÉ LOGICKÉ OBVODY A POPIS JEJICH APLIKACÍ V JAZYKU ABEL HDL Mezi programovatelné logické obvody se z hlediska obvodové struktury řadí především obvody realizující kombinační logické funkce na základě dvoustupňové struktury AND OR, buď s programovatelným polem AND a pevně zapojenými členy OR (struktura PAL), nebo programovatelným polem OR (struktura PLA), která je doplněna přídavnými prvky zpravidla umožňujícími jednoduchými prostředky, jako jsou programovatelné invertory, klopné obvody, třístavové výstupní zesilovače a podobně, výrazně rozšířit logickou funkci této struktury. Jednoduché programovatelné logické obvody (obvody PLD 1. generace) obsahují jedno pole AND a případně jedno pole OR. Tyto obvody dnes již většinou patří historii. Obvody PLD 2. generace, které spolu s obvody 3. generace jsou dnes nejpoužívanější, jsou dále vybaveny programovatelnými makrobuňkami, které mohou být pomocí přídavných prvků nakonfigurovány do různých funkcí, umožňují zejména zařadit či nezařadit do cesty signálu inverzi a zvolit kombinační nebo registrovou funkci každé makrobuňky. V angličtině se pro obvody 1. a 2. generace vžil název Simple PLD (SPLD). U složitějších obvodů PLD 3. generace, zvaných v angličtině Complex PLD (CPLD), je tato dvoustupňová struktura rozdělena na více bloků, obvykle s charakterem PAL, vzájemně propojených centrálním propojovacím polem, těžiště programování vlastní logické funkce však zůstává v programování jednotlivých bloků PAL (i když ani například optimální rozdělení implementovaného systému či subsystému do bloků PAL u obvodů CPLD není obecně zdaleka jednoduchou úlohou). Typy obvodů PLD, které se používají v současné době, nejsou určeny jen svou technickou výhodností, ale jsou do značné míry dány historickým vývojem těchto obvodů. Proto je ve 2. kapitole uveden stručný nástin vývoje obvodů PLD a struktur v nich používaných. Je zde též naznačen postup při návrhu aplikací těchto obvodů. Při popisu aplikací sekvenčních synchronních systémů se v jazyku ABEL HDL, v němž jsou psány příklady zdrojových textů, používá dvou typů popisu: detailního popisu odpovídajícího strukturálnímu popisu známému z jazyků HDL vyšší úrovně, jako je VHDL (viz např. [13]), a popisu typu pin-to-pin, který odpovídá behaviorálnímu popisu. Tyto způsoby popisu jsou ve druhé kapitole podrobněji vysvětleny. Pozornost je rovněž věnována způsobu, jak se projeví zařazení nebo nezařazení invertorů do cesty signálu (umožňují zvolit výhodnější z obou možných tvarů vyjádření realizovaných logických funkcí tvaru součtu součinů a součinu součtů), a místu zařazení těchto invertorů před klopné obvody nebo mezi výstupy klopných obvodů a vývody pouzdra. V závěru druhé kapitoly je uveden způsob transformace sekvenčních systémů vytvořených na bázi klopných obvodů typu D na systémy s klopnými obvody typu T a naopak, který se v dalších částech práce používá, a jsou zde naznačeny zásady pro volbu typu obvodu PLD pro danou aplikaci. 7

3. IMPLEMENTACE SEKVENČNÍCH SUBSYSTÉMŮ V OBVODECH PLD 3.1 Čítače a způsoby jejich popisu Blokové schéma synchronního čítače je na obr. 3.1. Čítač je složen z kombinační části, která je při realizaci čítače v obvodech PLD se strukturou typu PAL tvořena konfigurovatelným součinovým polem, součtovými logickými členy a případně dalšími kombinačními prvky (členy EX-OR, programovatelnými či pevnými invertory), a z registru složeného z klopných obvodů, který je rovněž součástí obvodu PLD. kombinační část registr synchronní vstupy výstupy [ q n -1,..., q 1, q] 0 clk Obr. 3.1. Blokové schéma synchronního čítače Při optimalizaci vztahů popisujících navrhovaný obvod vytváří optimalizační program výrazy jak pro přímé, tak i pro invertované vyjádření jednotlivých výstupních proměnných. Je-li v cílovém obvodu zařazen v cestě signálu určité výstupní proměnné invertor, použije se při vkládání konstrukce do obvodu PLD vyjádření této proměnné s inverzí, v opačném případě vyjádření bez inverze. Dnes používané obvody PLD vesměs obsahují programovatelné invertory. Návrhový systém pak automaticky vybírá tu variantu, která vyžaduje menší počet termů (není-li ve zdrojovém textu předepsáno jinak), a invertory se nakonfigurují ve shodě s tímto výběrem. Je tedy žádoucí posoudit při rozboru jednotlivých subsystémů co do potřebného počtu termů jak přímé, tak i invertované vyjádření příslušných logických funkcí. 3.2 Binární čítače V tomto odstavci jsou odvozeny vztahy popisující jednosměrné a vratné binární čítače s úplným cyklem s registrem typu D a typu T. Ukazuje se, že při použití registru typu D je pro jednosměrné čítače bit q k vyjádřen pomocí k+1 termy a nejvyšší bit n-bitového čítače je vyjádřen n termy. U vratného čítače je s výjimkou nejnižšího bitu tento počet termů o dva vyšší. U registru typu T je potřebný pouze jeden term u jednosměrného a dva termy u vratného čítače, takže šířka čítače je omezena jen počtem makrobuněk, popř. možnostmi propojení bloků u obvodů CPLD. 8

Dále jsou zde rozebírány binární čítače se zkráceným cyklem, které obsahují nepracovní (nevyužité) stavy. Při určitém zadaném chování čítače v pracovním cyklu je možno vytvořit různé varianty čítače, vzájemně se lišící chováním v nepracovních stavech a také počtem termů potřebných pro vyjádření jednotlivých bitů. Z praktického hlediska jsou důležité varianty s co nejmenšími požadavky na počty termů, případně ty, u nichž potřebný počet termů výrazně nepřesahuje požadavky na počet termů binárního čítače s úplným cyklem se stejným počtem bitů. V habilitační práci je odvozeno, že při použití registru typu D tento požadavek splňují jednosměrné čítače s rozsahem pracovního cyklu 0 až maxcnt, které se po posledním pracovním stavu vracejí do vynulovaného stavu a ve všech následujících, tedy nepracovních stavech pokračují dále v čítání až do nejvyššího nepracovního stavu, kdy jsou všechny bity čítače jedničkové, načež se čítač vrací do vynulovaného stavu (a tedy do pracovního cyklu). Tyto čítače je možno popsat vztahy q' 0 = q0 q~ n 1... q~ 1 q ~ 0, q' 1 = ( q1 q0 + q1 q0 ) q ~ n 1... q~ 1 q ~ 0,... q' k = ( qk qk 1... q1 q0 + qk qk 1... q1 q0 ) q ~ n 1... q~ 1 q~ 0 pro k= 2,..., n 1. Proměnné ~ q n 1 až ~ q 0 budou nahrazeny proměnnými q n-1 nebo q n 1 až q 0 nebo q 0 podle toho, zda jsou v odpovídajících bitech binárního vyjádření čísla maxcnt jedničky nebo nuly. Toto vyjádření jednotlivých bitů čítače je převedeno do tvaru součtu součinů, z něhož je stanoven počet termů. Ten je pro registr typu D a pro inverzi zařazenou v cestě signálu nejvýše o jedničku větší než počet termů potřebných pro inverzní vyjádření téhož bitu čítače s úplným cyklem, tedy pro bit q k je tento počet nejvýše k+2. Tento údaj představuje horní hranici počtu termů, která je většinou skutečně potřebným počtem termů, jen u některých hodnot čísla maxcnt je při daném počtu bitů čítače možné další zjednodušení a zmenšení počtu termů, které však není příliš významné. Počet termů potřebných pro vyjádření nejvyššího bitu čítače tak zpravidla o jedničku převyšuje nejvyšší počet termů potřebný pro čítač s úplným cyklem. Přímé vyjádření nejvyššího bitu q n-1, jak je zde dokázáno, však vystačí s počtem termů nejvýše n, stejným jako u čítače s úplným cyklem. To znamená, že je-li možno realizovat v obvodu PLD s registrem typu D a s programovatelnými invertory n-bitový binární čítač s úplným cyklem, je v tomto obvodu rovněž možno realizovat takový čítač s libovolně zkráceným cyklem. Totéž platí i pro čítač čítající vzad od stavu daného všemi bity jedničkovými do čísla mincnt, který představuje výše uvedený čítač s invertovanými bity. Při použití registru typu T bez invertorů před vstupy klopných obvodů je možno výrazy pro bity jednosměrného n-bitového binárního čítače čítajícího v rozsahu od 0 do čísla maxcnt zapsat pomocí jednoho nebo dvou termů s výjimkou bitu, který má stejnou řádovou pozici jako nejnižší nulový bit v binárním vyjádření čísla maxcnt. Je-li tato pozice dána indexem k, je počet termů potřebný pro vyjádření tohoto bitu n - k. Při zařazení invertoru před vstup klopného obvodu je pro tento bit třeba k+1 termů. Pro malé hodnoty čísla k je tedy výhodnější inverzní vyjádření tohoto bitu. To platí jak pro čítač čítající od nuly vpřed do čísla maxcnt, tak i pro čítač čítající od stavu se všemi bity jedničkovými vzad do čísla mincnt. Přehled realizovatelnosti binárních čítačů v nejběžnějších typech obvodů SPLD je uveden v tabulce 1, kde je uveden nejvyšší počet bitů binárního čítače, který těmito ob- 9

vody může být realizován. V závorce jsou uvedeny počty bitů při dvouprůchodové realizaci nejvyššího bitu. Nejpříznivěji se jeví obvod PALCE 610, v němž mohou být realizovány všechny typy čítačů z tabulky 1 až do 16bitového rozsahu. Současné ceny obvodů CPLD, jako je isplsi 2032 nebo XC 9536, jsou však srovnatelné s cenou tohoto obvodu a při využití registru typu T nebo jeho emulace v nich mohou být realizovány i čítače s dvojnásobným počtem bitů. Tabulka 1. Přehled realizovatelnosti binárních čítačů v nejběžnějších obvodech PLD typ binárního čítače GAL 16V8 nejvyšší počet bitů čítače pro typ obvodu PLD GAL 20V8 GAL 18V10 GAL 22V10 PALCE 610 jednosměrný 8 bitů 8 bitů 10 bitů 10 bitů 16 bitů vratný 6 (7) bitů 6 (7) bitů 8 (9) bitů 10 bitů 16 bitů jednosměrný se zkráceným cyklem 8 bitů 8 bitů 9 bitů 10 bitů 16 bitů V práci je dále věnována pozornost využití vstupů klopných obvodů pro synchronní nulování, popřípadě pro synchronní nastavení ke zkracování cyklu. Tímto způsobem je možno efektivně vytvořit v obvodech PLD vybavených takovými klopnými obvody, jako je obvod GAL 22V10 a jeho deriváty, i vratné čítače se zkráceným cyklem. 3.3 Dekadické čítače U těchto čítačů se nejčastěji používá kód BCD, který v každé dekádě využívá prvních desíti z možných 16 binárně kódovaných stavů příslušných čtyř bitů. U dekadických čítačů, podobně jako u binárních čítačů se zkráceným cyklem, existuje značné množství variant se shodným chováním v pracovním cyklu, avšak lišících se vzájemně chováním v nepracovních (nevyužitých) stavech. Z hlediska existence nepracovních stavů jsou tyto čítače ještě poněkud složitější, protože si je můžeme představit jako binární čítače, z jejichž plného počtu pracovních stavů je odebrán určitý počet bloků, který je dán počtem dekád čítače, a tyto bloky (na rozdíl od výše uvedených binárních čítačů se zkráceným cyklem) na sebe vzájemně nenavazují. Existují však podskupiny těchto čítačů, pro něž je možno uvést vcelku jednoduchý postup návrhu a stanovit potřebný počet termů. Jednou z nich je podskupina, která se vyznačuje shodným chováním jednotlivých dekád v pracovních i v nepracovních stavech. Čítač s registrem typu T z této podskupiny, který vyžaduje nejmenší počet termů, může být popsán vztahy dk0.t = Pk, dk1.t= dk0 dk3 Pk, dk2.t = dk0 dk1 Pk, d.t = ( d d + d d d ) P, k3 k0 k3 k0 k1 k2 k 10

platnými pro k-tou dekádu, kde k 1 Pk = di0 di3. i= 0 Zde d k0 je nejnižší bit k-té dekády, indexy 1, 2, 3 označují další bity této dekády. Je tedy počet termů pro bity jednotlivých dekád nezávislý na řádu dekády. Pro nejnižší tři bity každé dekády je to jeden term a pro nejvyšší bit dekády jsou potřebné dva termy. Toto vyjádření umožňuje implementaci dekadických čítačů např. v obvodech řady EP, které obsahují registr s volitelným typem D nebo T, přičemž omezení šířky čítače je dáno jen počtem makrobuněk obvodu. U obvodů CPLD je šířka takového čítače omezena jen možnostmi propojení jednotlivých bloků. Přejde-li uvedený čítač z jakýchkoliv důvodů do některého z nepracovních stavů, vrátí se pak vždy po určitém počtu taktů do pracovního cyklu. Největší možný počet taktů potřebný pro návrat do pracovního cyklu je značný, pro n-dekádový čítač to je 2.10 n-1. Nevelkou úpravou výrazů pro bity čítače lze dosáhnout zmenšení tohoto počtu na polovinu, přičemž u upraveného čítače je zapotřebí nejvýše dvou termů na bit. Modifikací výrazu pro nejvyšší bit každé dekády můžeme získat čítač, který z každého nepracovního stavu přechází vždy v následujícím taktu do pracovního cyklu. Upravený výraz pro tento bit je d.t = ( d d + d d d ) P + d ( d + d ). k3 k0 k3 k0 k1 k2 k k3 k1 k2 Je-li příslušná dekáda v nepracovním stavu, zajišťuje přídavný člen vynulování nejvyššího bitu dekády v následujícím taktu. Z uvedeného vyjádření je zřejmé, že pro bit d k3 jsou potřebné čtyři termy. Pro cílové obvody s registrem typu D je možno najít kompaktnější popis dekadického čítače, který je uveden v práci. U tohoto čítače roste počet termů potřebných pro vyjádření jeho bitů lineárně s počtem dekád čítače, pro bity v k-té dekádě je počet termů 2(k + 1) s výjimkou druhého nejvyššího bitu každé dekády, kde je tento počet o jeden větší. V obvodu GAL 16V8 je možno vytvořit osmibitový dekadický čítač tohoto typu. 3.4 Čítače pracující v Grayově kódu V habilitační práci jsou analyzovány dvě skupiny čítačů pracujících v Grayově kódu (dále stručně nazývaných Grayovy čítače): skupina představující základní typ Grayova čítače a skupina představující Grayovy čítače s pomocným bitem. Základním typem Grayova čítače se rozumí uspořádání běžně používané i u jiných čítačů. Zde se v čítači s úplným cyklem nevyskytují nepracovní stavy. U Grayova čítače s pomocným bitem je jeden zvláštní (pomocný) bit použit pro zjednodušení výrazů pro ostatní bity a tedy čítač s úplným cyklem tohoto druhu obsahuje stejný počet pracovních a nepracovních stavů. Při implementaci základního typu Grayova čítače je vyjádření jednotlivých bitů čítače složitější než u dříve uvedených čítačů. Toto vyjádření může být pro vratný čítač s registrem typu D zapsáno ve tvaru g' 0 = g1... gn-1 up, g' 1 = g0 ( g2... gn-1 up)+ g0 g1,... 11

g k' = g0... gk-2 gk-1 ( gk+ 1... gn-1 up)+ ( g0 +... + gk-2 + gk-1) gk... pro k = 2,..., n- 2, g ' = g... g ( g up) +( g +... + g ) g. n-1 0 n-3 n-2 0 n-3 n-1 Pro počet potřebných termů t k pro bit g k u n-bitového vratného čítače platí vztah n k 1 tk = 2 + k. Tento počet exponenciálně roste s počtem bitů čítače. Pro inverzní vyjádření je potřebný tentýž počet bitů. Exponenciální je růst počtu termů i v případě použití klopných obvodů typu T. Proto je tento typ Grayova čítače použitelný jen při nevelkém počtu bitů. Z hlediska potřebného počtu termů je výhodnější čítač s pomocným bitem, kde vztahy pro jednotlivé bity lze při použití registru typu D vyjádřit takto: po' = po, g 0' = g0 po, g 1' = g1 ( g0 po), g 2' = g2 ( g1 g0 po),... g k ' = gk ( gk-1 gk-2... g0 po) pro k = 3,..., n- 2,... g n-1 ' = gn-1 ( gn-3... g0 po). Zde symbol po značí pomocný bit, který v tomto případě má význam paritního bitu, doplňujícího čítač na lichou paritu. Je rovněž možno použít pomocného bitu pe s významem sudé parity, který je inverzí bitu po. Z tohoto vyjádření lze snadno zjistit, že počet termů potřebný pro bit čítače je roven jeho řádu zvětšenému o dvě, s výjimkou nejvyššího bitu, kde je počet zvětšen jen o jeden term. Růst počtu termů s počtem bitů čítače je tedy lineární. S registrem typu T je zde zapotřebí pro každý bit jen jeden term. Vlivem existence pomocného bitu pouze polovina z celkového možného počtu stavů tohoto čítače jsou stavy pracovní, které tvoří pracovní cyklus. Druhá polovina stavů, které se od pracovních stavů liší hodnotou pomocného bitu, jsou stavy nepracovní (nevyužité). Není obtížné zjistit, že dostane-li se čítač popsaný uvedenými vztahy jakýmkoliv způsobem do některého z těchto nepracovních stavů, pokračuje z tohoto stavu zpětným čítáním v Grayově kódu, dokud se nějakým vnějším zásahem nevrátí zpět do pracovního cyklu. Proto je důležitý počáteční stav čítače po připojení napájecího napětí, který určuje, ve kterém z těchto dvou cyklů bude čítač pracovat. Počáteční stav čítače je definován stavem registru po připojení napájecího napětí. Prakticky u všech obvodů PLD dnes jejich výrobci zaručují tzv. power-up reset, tedy vynulování registru. Pokud se zajímáme o stav na vývodech pouzdra, je tento stav určen přítomností nebo nepřítomností invertorů mezi odpovídajícími výstupy registru a vývody pouzdra. Vzhledem k tomu, že pomocný bit má význam liché nebo sudé parity a tyto významy se od sebe liší inverzí, je u obvodů PLD s pevně danou přítomností či nepřítomností invertorů v uvedeném místě určen typ paritního bitu, který musí být použit pro zvolený směr čítání. Využitím této skutečnosti je rovněž možno jednoduše vytvořit vratný čítač a ovládat směr jeho čítání. Často bývá na čítač kladen požadavek, aby v případě přechodu do nepracovního stavu například vlivem rušení přešel automaticky do pracovního cyklu přinejmenším po 12

konečném počtu taktů. V habilitační práci jsou uvedeny způsoby modifikace zdrojových textů popisujících Grayovy čítače s pomocným bitem, které tento požadavek zaručují. Dále je v práci věnována pozornost Grayovým čítačům se zkráceným cyklem. Při použití klopných obvodů typu T je možno cyklus čítače zkrátit tím, že se ve vhodných stavech blokuje, nebo naopak vyvolá změna určitých bitů čítače. Opět je posuzována otázka počtu termů potřebného pro vyjádření bitů čítače. Ukazuje se, že v obvodu PALCE 610 lze vytvořit Grayův čítač s libovolným počtem stavů v rozsahu do 256 stavů, a pro tyto čítače je uveden systematický postup jejich návrhu. Pro čítače se zkráceným cyklem s větším počtem stavů je možno vyzkoušet několik variant tohoto postupu se značnou pravděpodobností, že se podaří najít způsob zkrácení cyklu, u něhož požadovaný počet termů nepřevýší počet, který je v uvedeném obvodu k dispozici. Podobným způsobem je možno postupovat při použití obvodů CPLD vybavených klopnými obvody typu T, nebo členem EX-OR umožňujícím jejich emulaci klopnými obvody typu D. V případě cílových obvodů PLD s klopnými obvody typu D je možno použít pro zkrácení cyklu podobných principů, počet termů potřebný pro vyjádření bitů čítače však v práci nebyl stanoven. 3.5 Čítače pracující v kódu 1 z n Analýza těchto čítačů je poměrně snadná, a proto není v práci podrobně rozvedena. Je uveden příklad popisu osmibitového čítače tohoto druhu pravdivostní tabulkou v jazyku ABEL HDL, který lze snadno zobecnit na libovolný počet bitů. Rozsah takového čítače není omezen počtem termů. Rovněž návrat čítače z nepracovních stavů do pracovního cyklu nečiní vážné problémy. 3.6 Další synchronní funkce čítačů V této části jsou posouzeny možnosti modifikace zdrojových textů popisující čítače poskytující možnost synchronního nulování, nastavení, naplnění předem daným obsahem, nebo obsahem odpovídajícím signálům přivedeným na datové vstupy a možnost blokování (povolení) čítání. Úvahy jsou provedeny zvlášť pro čítače s registrem typu D, s případným členem EX-OR, a s registrem typu T. Požadavky na zvýšení počtu termů zde nejsou velké, většinou jde buď o násobení stávajících termů řídicí proměnnou nebo o zvýšení počtu termů o jeden, jen u naplnění obsahem přivedeným na datové vstupy při použití klopných obvodů typu T jsou potřebné další dva termy. 3.7 Vytváření rozsáhlých čítačů Zde jsou naznačeny možnosti vytváření čítačů s větším rozsahem v obvodech PLD třetí generace, kde dochází k omezení jejich velikosti vlivem omezené možnosti propojení signálů mezi bloky, v nichž jsou realizovány části čítače. Propojení je možno vytvořit pomocí přenosových signálů, které mohou být iterativně vytvářeny doplňováním přeno- 13

sových signálů z nižších bitů o příspěvky z dalších bitů. Jako příklad je uveden text popisující dvanáctibitový vratný čítač pracující v Grayově kódu bez nepracovních stavů, zaměřený na cílový obvod isplsi 2032. 14

4. ZÁVĚR V předložené práci jsou analyzovány typické synchronní sekvenční subsystémy, především čítače, z hlediska jejich realizovatelnosti v programovatelných logických obvodech (PLD) druhé a třetí generace. Jsou odvozeny počty termů potřebné pro realizaci nejpoužívanějších čítačů v obvodech PLD s registrem typu D a typu T. U čítačů s nevyužitými stavy byly nalezeny varianty čítačů, které jsou z hlediska potřebného počtu termů výhodné pro realizaci v obvodech PLD. Pozornost je věnována i otázce návratu čítačů do pracovního cyklu. Diskutována je rovněž možnost použití synchronních nulovacích a nastavovacích vstupů pro zkrácení cyklu čítačů a je poukázáno i na možnost využití asynchronních vstupů. Jsou uvedeny příklady mnoha různých typů čítačů vhodných pro implementaci v obvodech PLD. Uvedený rozbor je proveden nejprve pro binární čítače jednosměrné a vratné s úplným cyklem a jednosměrné se zkráceným cyklem. Pro nejpoužívanější typy obvodů PLD 2. generace udává tabulka 1, jaký je nejvyšší možný počet bitů pro čítače těchto typů v nich vytvořených. U obvodů PLD s programovatelným invertorem zaručují odvozené výsledky možnost realizace jednosměrných binárních čítačů s libovolně zkráceným cyklem ve stejném rozsahu počtu bitů, v němž jsou realizovatelné tytéž binární čítače s úplným cyklem. U čítačů pracujících v kódu BCD bylo uvažováno několik možností jejich realizace, lišících se vzájemně chováním v nevyužitých stavech. Nejprve je analyzována skupina čítačů charakterizovaných tím, že se všechny dekády chovají stejným způsobem (platí pro ně stejný stavový diagram), a to ve využitých i v nevyužitých stavech. Je dokázáno, že při použití registru typu T je počet termů potřebných pro vyjádření bitů v jednotlivých dekádách nezávislý na řádu uvažované dekády a že tedy počet termů není limitujícím faktorem pro realizaci takového čítače s jakýmkoliv počtem dekád. Dále je uveden příklad zdrojového textu pro dekadický čítač s registrem typu D vhodný pro běžné typy obvodů PLD druhé generace. Všechny tyto čítače se automaticky vrací ze všech nepracovních stavů do pracovního cyklu. V kapitole věnované čítačům pracujícím v Grayově kódu jsou nejprve analyzovány jednosměrné a vratné čítače klasického provedení s úplným cyklem, u nichž nejsou nepracovní stavy. Ze vztahů pro bity těchto čítačů vyplývá, že potřebný počet termů při použití obou uvažovaných typů registrů roste exponenciálně s počtem bitů čítače. Další část kapitoly je věnována čítačům s pomocným bitem, kde je růst počtu termů při použití registru typu D lineární a při použití registru typu T je tento počet nezávislý na počtu bitů čítače. Protože se u čítačů s pomocným bitem vyskytují nevyužité stavy i u čítačů s úplným cyklem, je značná pozornost věnována návratu těchto čítačů do pracovního cyklu. Rozebrány jsou i možnosti zkracování cyklu těchto čítačů. Stručně jsou dále uvedeny nejdůležitější poznatky o čítačích pracujících v kódu 1 z n. Problematika čítačů je zakončena přehledem možností realizace dalších synchronních funkcí čítačů (nulování, naplnění obsahem daným dalšími vstupy apod.) a rozvahou týkající se vytváření rozsáhlých čítačů, kde se k omezujícím faktorům přidávají i problémy s přenosem signálů mezi bloky obvodů CPLD. Funkce všech subsystémů popsaných uvedenými zdrojovými texty byla ověřena simulací a většiny z nich i implementací ve vhodných obvodech PLD. 15

5. LITERATURA [1] AUER, A. PLD Schaltungsdesign auf dem PC. Franzis Verlag, München 1993. [2] BITTERLE, D. Schaltungstechnik mit GALs. Franzis Verlag, München 1992. [3] EYSSELT, M. Logické systémy. [Skriptum VUT v Brně.] Ediční středisko VUT, Brno 1990. [4] JIŘINA, M., KOTTEK, E., KRÁTKÝ, V. Kurs navrhování číslicových obvodů. SNTL, Praha 1988. [5] KOLOUCH, J. Programovatelné logické obvody a návrhový systém easyabel. [Skriptum VUT v Brně.] Brno 1997. [6] KOLOUCH, J. Gray-Code: Viele Vorteile für PLDs. Elektronik 3, 1996, s. 96 102. [7] KOLOUCH, J. Programovatelné logické obvody. Vyžádaný příspěvek do sborníku konference EDS 94. In: Proceedings of Electronic Devices and Systems Conference 1994, Vol. I, pp. 33 45. ÚMEL FEI VUT v Brně, Brno 1994. [8] KOLOUCH, J. Čítače pracující v Grayově kódu a jejich realizace programovatelnými logickými obvody. In: Radioelektronika 95, sborník konference, s. 105 108. ÚREL FEI VUT v Brně, Brno 1995. [9] KOLOUCH, J. Reversible and shortened cycle Gray-code counters. In: Radioelektronika 96, Conference Proceedings, Vol. 2, pp. 287 290. ÚREL FEI VUT v Brně, Brno 1996. [10] KOLOUCH, J. On the implementability of synchronous counters in common PLD devices. In: Radioelektronika 98, Conference Proceedings, Vol. 2, pp. 77 80. ÚREL FEI VUT v Brně, Brno 1998. [11] KOLOUCH, J. Gray-code counters in the PLD devices. In: EDS 98, Conference Proceedings, Vol. 2, pp. 398 401, ÚMEL FEI VUT v Brně, Brno 1998. [12] MUSIL, V. a kol. Návrh integrovaných obvodů. [Skriptum FEI VUT v Brně.] PC- DIR, Brno 1994. [13] MUSIL, V., KOMANEC, R. a kol. Návrh digitálních integrovaných obvodů. [Skriptum VUT v Brně.] PC-DIR, Brno 1997 [14] PELLERIN, D., HOLLEY, M. Practical Design Using Programmable Logic. Prentice Hall, Englewood Cliffs, New Jersey 07632, 1991. [15] PETRŽELKA, B. Programovatelné struktury vývoj aplikací v systémech ABEL a PDS Lattice s příklady. [Skriptum VA Brno.] Brno, 1996. [16] VLČEK, K. Návrh obvodů pomocí VHDL. Sdělovací technika, 1998, č. 2, s. 20 21. [17] VLČEK, K. Modely konečných automatů ve VHDL. Tamtéž, 1998, č. 7, s. 24 25. [18] WAKERLY, J. F. Digital Design Principles and Practices. Prentice Hall, Englewood Cliffs, New Jersey 07632, 1990. 16

ABSTRACT In this thesis, the typical sequential subsystems, above all the counters, are analyzed. The purpose of the analysis is principally to find the possibilities of the feasibility of those subsystems in programmable logic devices (PLD) which are today commonly in use. The number of terms required by the most commonly used counters for their implementation in PLD's with a D- or T-type register is derived. For counters with illegal states, subtypes of these counters are proposed which can be implemented with advantage in PLDs. The possibility of using a synchronous clear or pre-set function to realize the shortened cycle is discussed, particularly for the up/down counters. For one-directional binary counters with full or shortened cycle and for full-cycle up/down binary counters, formulas have been derived which allow to estimate the feasibility of these counters. The results for the most frequently used simple PLD's are summarized in a table. They are for example sufficient to allow the implementation of one-directional binary counters with arbitrary cycle length with the same bit number as it is possible for the full cycle counters in the most common PLD's with a programmable inverter. Several possibilities of implementing the BCD counters are considered, with different behaviour of these counters in the illegal states and different requirements for the number of terms per bit. For the devices with T-type registers, counters where all decades have the same behaviour in all legal as well as illegal states are considered. The number of terms required for bits in individual decades of such counters is independent of the decimal order of a particular decade, and therefore this number is not a limiting factor for the feasibility of such counters with any number of bits. For the devices with D-type register, an example of the source text is given for the decade counter which is suitable for the most common PLD devices. All these counters automatically return to the legal cycle from any illegal state. In the chapter that deals with Gray-code counters, first the one-directional and up/down full cycle counter without illegal states is analyzed. For the D- as well as T-type register, the number of terms grows exponentially with the number of counter bits. Further, the auxiliary bit counters are discussed. Here, the number of terms for the D- type register grows linearly with the number of counter bits, and for the T-type register, this number is independent of the counter width. As the illegal states are present in the auxiliary bit counters, considerable attention is paid to the return of these counters to the legal cycle. The possibilities to design Gray-code counters with shortened cycles are discussed as well. The most important results concerning the one-hot counters are briefly introduced. The synchronous clear, pre-set, load and count enable functions of general counters are discussed as well, analyzing their impact on the number of terms. Finally, the possibilities to design large counters in PLD devices are considered. The function of all subsystems described by the given source texts has been verified by simulation and most of these subsystems were also implemented and tested in suitable PLD devices. 17