Semestrální práce z předmětu 36POB
Generátor adres

ABSTRACT

This article covering how to make address generator for harmonic function (for example sinus) using 18CV8 programmable logic device. There are stored values only for first quarter of course of function in memory and we will make succession of repeating address with one bit indicating the meaning of memory's data (positive, negative).

1. ÚKOL

Pomocí D/A převodníku se má generovat průběh, jehož obě půlvlny i obě poloviny téže půlvlny jsou symetrické (např. sinus). V paměti jsou tedy obsaženy hodnoty jedné čtvrtiny průběhu, zbytek má stejné hodnoty až na znaménko (viz. Obrázek 1). Sestavte generátor adres pro tuto paměť, který bude hodnoty vyčítat ve správném pořadí a bude poskytovat informaci o velikosti hodnot vůči nule.

2. ROZBOR

2.1 ČINNOST ZAPOJENÍ

Jaký je náš úkol si nejlépe přiblížíme pomocí následujícího obrázku. Použité značení je vysvětleno v části 2.2.

.
Obrázek 1

V podstatě se jedná o generování řady čísel - adres - od nuly do nějakého maxima v rostoucí posloupnosti, následně generování v posloupnosti klesající opět až k nule, kde dojde k převrácení znaménka dat čtených z paměti a opět k vytváření rostoucí posloupnosti adres. V maximu dosažitelných adres se směr jejich vytváření opět změní a při průchodu nulou se obrátí dosavadní znaménko hodnot dat z paměti. Tím se celý cyklus uzavře a poté se opakuje až do nekonečna. Kolik budeme přesně adres v jednom cyklu generovat, závisí jednak na požadavcích zadavatele, jednak na technických možnostech obvodu; adresy generujeme jako signály na adresové sběrnici šířky n, máme tedy 2n možných adres.

Vlastní realizací se zabývá kapitola 2.3, zde je také obsažen rozbor rozsahu adres.

2.2 AUTOMAT

Popsaný princip činnosti převedeme ze slovního vyjádření na grafické pomocí obrázku stavového automatu.

K realizaci budeme potřebovat informaci určující nám směr čítání (nahoru nebo dolů) a dále informaci o znaménku hodnot dat čtených z paměti. Označíme si tu první jako DIR, tu druhou jako INV. Generované adresy shrneme pod jedním označením Q (rozumněj tak, že Q vyjadřuje binární číslo o 5 řádech).


Obrázek 2

Jednotlivé stavy reprezentují adresy generované obvodem, přechody nastanou při příchodu hodinového impulsu. Popisy u šipek přechodů naznačují, jaké proměnné zapojení se budou měnit a jak. Proč má automat 32 vnitřních stavů, rozebírá následující kapitola.

2.3 MOŽNOSTI REALIZACE

Obvod 18CV8 nám pro náš případ poskytuje osm vstupů (pro pouzdro DIP je pin 1 signál hodin, přímý vstup na pinu 11 nám nevyhovuje, nemá připojen kombinační obvod) a stejný počet výstupů. Pro realizaci výpočtu proměnných INV a DIR musíme nejméně dva ze vstupů obětovat, jejich hodnoty jsou totiž součástí výpočtu adresy v dalším cyklu.

Hodnota DIR (1 pro čítání nahoru, 0 pro dolů) se mění ve stavu 0 a 31, k realizaci nám stačí jedna logika před D klopným obvodem. Výraz totiž obsahuje šest termů (první je pro označení směru při adrese 0, další pro udržování směru nahoru až do adresy 31, kde se změní):

DIR.D = (!Q0 * !Q1 * !Q2 * !Q3 * !Q4) + (DIR * !Q4) + (DIR * !Q3) + (DIR * !Q2) + (DIR * !Q1) + (DIR * !Q0)

Proměnná INV má ale složitější rovnici pro svůj výpočet. Mění se sice jen ve stavu 0, ale vyjádření takového stavu je rozsáhlejší než v předchozím případě:

INV.D = !INV * AUX + INV * !AUX, kde AUX = !Q0 * !Q1 * ... * !Q4 * !DIR

K realizaci budeme potřebovat dvě logiky před D obvodem, tedy musíme obsadit dva vstupy obvodu, přičemž budeme využívat jen jeden klopný obvod. K použití nám zůstavá 5 pozic pro vlastní vyjádření adresy, náš generátor tedy bude vytvářet 32 různých adres. Proto také má automat třicet dva stavy.

Co se týče generování vlastní adresy, přesněji jejích bitů Q0 až Q4, dostaneme sice přímočaré, ale příliš dlouhé rovnice. Výsledek jejich úpravy podle zjednodušujících pravidel Booleovské logiky lze vidět v souboru projektu, který je k dispozici ke stažení.

3. REALIZACE

Význam pinů vyvedených z pouzdra ukazuje následující obrázek. Oproti již uvedenému jsme na vstup 2 připojili asynchronní reset. Celá úloha byla zpracována v systému WinPLACE, kde jsme popsali i logiku kombinačních obvodů před klopným obvodem, tak jsme projekt i odsimulovali. Zvolili jsme podle zadání 18CV8 s pouzdrem DIP.


Obrázek 3

Vlastní realizaci nejlépe popisují soubory pro program WinPLACE, pod kterým jsme zapojení obvodu navrhli a odsimulovali (soubor JEDEC). Ty jsou přiloženou součástí řešení:

4. ZÁVĚR

Podařilo se nám navrhnout generátor adres podle zadání s využitím systému WinPLACE. Měli jsme některé těžkosti s umístěním potřebné logiky do pouzdra obvodu, podařilo se nám je ale vyřešit snížením rozsahu generovaných adres. Součástí řešení jsou i soubory popisu návrhu a realizace pro návrhový program.

5. LITERATURA

[1] J. Bokr, V. Jáneš: Logické systémy, Vydavatelství ČVUT, 1999