2001 05 08

background image

Radioelektronik Audio-HiFi-Video 5/2001

Ten uk³ad ma walor

bezpoœredniej

u¿ytecznoœci: umo¿liwia

grê w koœci na jachcie,

sp³ywie kajakowym,

w czasie d³ugiej nu¿¹cej

podró¿y czy na

wakacjach z namiotem.

O

pisy takich uk³adów zrealizowa-

nych prostymi œrodkami nietrudno

znaleŸæ, ale zamieszczenie w Re-

AV akurat tego projektu ma wa¿-

niejsz¹ przyczynê _ mimo swej prostoty KOST-

KA-PLD umo¿liwia zetkniêcie siê z niektórymi

problemami projektowania uk³adów PLD. Bo-

wiem o ile nowsze generacje logicznych uk³a-

dów programowalnych (CPLD,

FPGA) s¹ i pozostan¹ domen¹ specjalistów,

najprostsze wersje PLD jak rodzina

GAL16V8/20V8/22V10 mog¹ staæ siê dla

uczniów, amatorów i hobbystów tworzywem

do realizacji ich pomys³ów. Niejeden z tych pro-

jektów mo¿e siê staæ podrêcznikowym przy-

k³adem aplikacji (podobnie jak tysi¹ce amatorów

_ krótkofalowców otworzy³y dla radiokomunika-

cji fale krótkie, zdaniem ówczesnych ”uczo-

nych w piœmie” do niczego powa¿niejszego

nieprzydatne).

Masowo produkowany (wiêc tani) uk³ad PLD po

wpisaniu doñ programu to taki ”niby ASIC” _

uk³ad scalony dostosowany do indywidualnych,

a nawet (poniewa¿ PLD mo¿na wielokrotnie

KOSTKA-PLD

ELEKTRONICZNA

GRA W KOŒCI

programowaæ) zmieniaj¹cych siê potrzeb u¿yt-

kownika _ ogniwo poœrednie miêdzy uk³adami

niskiego stopnia scalenia a mikroprocesorami.

Niestety, wobec ró¿norodnoœci i stopnia do-

stêpnoœci programowych i sprzêtowych narzê-

dzi do programowania PLD (kompilatorów, pro-

gramatorów, algorytmów minimalizacji iloœci

równañ logicznych itp.) systematyczny kurs

programowania nawet najprostszej rodziny

GAL16V8/20V8/22V10 oraz jej wersji programo-

walnej w systemie (typ isp) nie mieœci siê w ”pro-

jektach na weekend”. Istniej¹ jednak niez³e pu-

blikacje u³atwiaj¹ce pierwsze kroki (wykaz m.in.

w [1]), bezp³atne programy, a reszty dokona

dociekliwoϾ i praktyka.

Zasada dzia³ania

Specjaliœci okreœliliby ten rodzaj uk³adu jako

”synchroniczny automat wielostanowy” sterowa-

ny programem KOSTKA. Synchronizm dzia-

³ania zapewnia generator taktuj¹cy US1. Przy

w³¹czonym zasilaniu wciœniêcie przycisku P (rys.

1) jest jakby ”rzuceniem” kostki _ po ka¿dym im-

pulsie taktuj¹cym z US1 wyjœcia 19, 18, 17 i 16

uk³adu US2 kolejno przechodz¹ ze stanu ”0” do

”1”. W wewnêtrznych rejestrach GAL,a pod-

czas jednego cyklu roboczego s¹ pamiêtane ko-

lejne wyjœcia przyjmuj¹ce w³aœnie w danym

momencie stan aktywny.

Zwolnienie przycisku P to jakby zatrzymanie

siê kostki _ GAL16V8 przestaje reagowaæ na im-

pulsy z generatora taktuj¹cego US1, zostaje

odczytany stan ostatnio zapamiêtanego wyj-

œcia z US2 i zapala siê jemu przyporz¹dkowa-

na LED. Przy czêstotliwoœci impulsów taktuj¹-

cych powy¿ej 1 kHz jest ma³o prawdopodobne,

¿eby gracz ”wcelowa³ siê” w same szóstki _

przypadkowoœæ wyników jest raczej wystarcza-

j¹ca. Ponowne wciœniêcie P powoduje ”nowe

rzucenie koœci”.

r

Z PRAKTYKI

8

Program KOSTKA

Konstruktor uk³adów zawieraj¹cych PLD musi

na podstawie opisu projektu (np. za pomoc¹

schematu elektrycznego, tablicy prawdy, jêzy-

ka opisu sprzêtowego HDL _ Hardware De-

scription Lanquage, grafu automatowego) u³o-

¿yæ uk³ad równañ logicznych (algebra Boole,a)

np. w postaci przedstawionej na Wydruku 1.

Uk³ady PLD s¹ pewnego rodzaju ”procesorami

logicznymi” i zale¿nie od swej architektury

(GAL16V8/20V8/22V10, CPLD czy FPGA)

umo¿liwiaj¹ przetwarzanie mniej czy bardziej

z³o¿onych uk³adów równañ. Jest oczywiste, ¿e

projektant d¹¿y do ”zmieszczenia” projektu

w najmniejszym uk³adzie PLD i pod tym k¹tem

analizuje uk³ad równañ opisuj¹cy zadanie. Pa-

miêtajmy, ¿e cz³ony w równaniach logicznych to

”modele matematyczne” obwodów elektrycz-

nych we wnêtrzu PLD (bramek, inwerterów, re-

jestrów, przerzutników itp.) realizuj¹cych opera-

cje AND, OR, EXOR, NAND, NOR oraz powi¹-

zania miêdzy stanami na wejœciach i wyjœciach.

Rys. 1.

Schemat uk³adu

do gry w koœci

Rys. 2. Tablica stanów chwilowych i wynikowych

uk³adu do gry w koœci (skala 1:2)

Wersja

modelowa

kostki;

p³ytka

z dodatkowym

polem

lutowniczym

mocowana

do pojemnika

z bateriami

WYDRUK 1

P R O J E K T NA W E E K E N D

P

P

R

R

O

O

J

J

E

E

K

K

T

T

N

NA

A W

W

E

E

E

E

K

K

E

E

N

N

D

D

background image

9

W pierwszym etapie projektowania przyjêto na-

stêpuj¹ce za³o¿enia:

q

projekt KOSTKA musi rozró¿niaæ 6 stanów

(od 1 do 6 oczek), jest wiêc potrzebny licznik do

6 (zajmie to 6 z 8 wyjœæ uk³adu US2);

q

wyjœcia GAL,a musz¹ byæ typu rejestrowe-

go, poniewa¿ chwilowy stan licznika bêdzie pa-

miêtany w rejestrze 3-bitowym _ potrzebne do-

datkowo 2

÷

3 wyjœcia;

q

3 bity umo¿liwiaj¹ zapis liczb 0

÷

8 (8 = 2

3)

a to

oznacza, ¿e obok 6 stanów potrzebnych do

dzia³ania kostki pojawi¹ siê 2

3

_ 6 = 2 stany nie-

dozwolone).

Widaæ, ¿e bez optymalizacji zasoby

GAL16V8/20V8 (jedynie 8 wyjœæ) nie wystarcz¹,

ponadto stany niedozwolone mog¹ zak³óciæ

dzia³ania uk³adu.

Z doœwiadczenia wiadomo, ¿e pocz¹tkowe we-

rsje uk³adu równañ z regu³y nie s¹ optymalne je-

œli idzie o wykorzystanie zasobów uk³adu PLD

_ sugeruj¹ potrzebê stosowania znacznie wiêk-

szych uk³adów ni¿ to naprawdê konieczne, bo

ka¿dy cz³on równania to jakaœ bramka, rejestr itp.

Potrzebna jest minimalizacja uk³adu równañ al-

bo graficzn¹ metod¹ tablic Karnaugh (prostsze

projekty) lub przez wykorzystanie procedur mi-

nimalizacji uk³adu równañ Boole

,

a i weryfikacji

wyników (symulacja), które to funkcje udostêp-

niaj¹ rozbudowane kompilatory PLD jak ABEL,

CUPL, PALASM i inne dostêpne tak¿e w bez-

p³atnej wersji zubo¿onej. Niektóre ”sharewa-

re,owe” kompilatory z Internetu np. Fgal, Galasm,

czy podobne nie umo¿liwiaj¹ ani optymalizacji ani

te¿ weryfikacji programu Ÿród³owego, nadaj¹

siê raczej do prostych projektów (np. CHOINKA

z [1]), natomiast równie prosty w realizacji pro-

jekt KOSTKA zmieœci³ siê w GAL16V8 dopiero

po optymalizacji uk³adu równañ Boole,a, któr¹

wykonali za nas autorzy ksi¹¿ki [2].

Na rys. 2 przedstawiono tablicê stanów uk³adu

Radioelektronik Audio-HiFi-Video 5/2001

KOSTKA uzupe³nion¹ (z prawej stro-

ny) o ”wyniki rzutu” czyli u³o¿enie zapa-

lonych LEDów. Œrodkowa tablica opisu-

je chwilowe stany na wyjœciach Q1, Q2,

Q3 i Q4 (US2), prawa _ stany wyniko-

we w zale¿noœci od liczby oczek (zapa-

lonych LED,ów) jak¹ wyœwietla ”zatrzy-

mana kostka”. Zauwa¿my, ¿e po mini-

malizacji projektu wystarczy odró¿niaæ

i pamiêtaæ jedynie 4 stany, a LED,y mo¿-

na po³¹czyæ z wyjœciami US2 jak na

rys. 1. Skutecznoœæ minimalizacji iloœci

cz³onów logicznych wg [2] ilustruje pra-

wa strona rys. 2. Widaæ, ¿e ”w³asn¹”

reprezentacjê maj¹ jedynie liczby ”1”, ”2”,

”4” i ”6” (okreœlmy to jako stany S(1),

S(2), S(4) i S(6). Stany S(3) oraz S(5)

wystêpuj¹ przy jednoczesnym pojawieniu siê ze-

ra na wyjœciach (Q4 i Q2) oraz (Q1, Q2 i Q4).

Potrzebne s¹ jedynie 3 wyjœcia z US2, a po do-

daniu obs³ugi stanu S4 dochodzi czwarte; po-

zosta³e 4 mog¹ Czytelnicy wykorzystaæ do w³a-

snych prób i rozbudowy urz¹dzenia.

Do u³o¿enia, weryfikacji i kompilacji programu KO-

STKAna podstawie zoptymalizowanego uk³adu

równañ pos³u¿yliœmy siê bezp³atn¹ ”okrojon¹” we-

rsj¹ pakietu ABEL. Jak widaæ (Wydruk 1), pro-

gram Ÿród³owy KOSTKA.ABL to uk³ad równañ

uzupe³niony o nag³ówek oraz dane pomocni-

cze i informacyjne. Format, sk³adnia i symbole

operacji logicznych odpowiadaj¹ wymogom kom-

pilatora ABEL.

Wynikiem kompilacji programu Ÿród³owego jest

plik wynikowy o nazwie KOSTKA.JED (Wy-

druk 2) w formacie JEDEC, akceptowanym

przez wiêkszoœæ programatorów GAL,i oraz ra-

portów z wynikami operacji pomocniczych. Za

pomoc¹ programatora ALL03a program wyni-

kowy zosta³ przeniesiony do uk³adu GAL16V8

jako ”mapa przepaleñ”.

Budowa uk³adu

Jako generator taktuj¹cy wykorzy-

stano popularny uk³ad 555 (lub

C555). Czêstotliwoœæ impulsów nie

jest krytyczna, mo¿na j¹ zmieniaæ

dobieraj¹c rezystor Rx. Wy³¹cznik

W³ w³¹cza/wy³¹cza zasilanie, prze-

³¹cznik przyciskowy P uruchamia

(w stanie wciœniêtym) lub zatrzy-

muje (po zwolnieniu) cykl roboczy.

Aby zmniejszyæ liczb¹ potrzebnych

czêœci, sterujemy LEDy bezpo-

œrednio z wyjœæ US2. Maksymalne

natê¿enie pr¹du pobieranego

przez GAL16V8 wynosi 24 mA [3],

ka¿de z wyjœæ mo¿na obci¹¿yæ

pr¹dem do 2,4 mA, potrzebny jest

wiêc rezystor ograniczaj¹cy o war-

toœci równej w przybli¿eniu:

(U

CC

_

U)/I

x

U _ suma spadków napiêcia na

GAL16V8 (przy U

CC

= 5 V mo¿na

przyj¹æ 0,5 V) i diody, I

x

_ ¿¹dana

wartoœæ pr¹du p³yn¹cego przez

diodê.

Spadek napiêcia na LED,ach zale-

¿y od koloru emitowanego œwiat³a:

(1,6 V _ czerwony, 2,4 V_ ¿ó³ty, 2,7 V _ zielo-

ny) oraz od I

x

. To oznacza, ¿e przy konfiguracji

jak na rys. 1 (2 diody ³¹czone w szereg) mo¿-

na u¿ywaæ jedynie diod o czerwonym œwietle.

Jako D1

÷

D6 nale¿y wybraæ diody typu energo-

oszczêdnego (zasilanie z baterii).

Na rys. 3 przedstawiono p³ytkê drukowan¹. Jak

widaæ, u³o¿enie diod D1

÷

D6 przypomina obraz

oczek prawdziwej kostki. Ca³oœæ (fot.) wraz z

bateriami umieszczono w dostêpnym na rynku

pude³ku plastykowym o wymiarach 80x35 mm.

Uwagi

W literaturze [3] zalecane jest po³¹czenie niewy-

korzystanych wyjœæ z GAL16V8 z mas¹ (wypro-

wadzenie 10) lub U

CC

(wyprowadzenie 20), ma

to eliminowaæ nieprzewidywalne zachowanie

GAL,a.

Uk³ady PLD mo¿na do 100 razy kasowaæ i zapi-

sywaæ od nowa, warto o tym pamiêtaæ. W na-

szym modelu zasoby US2 nie zosta³y w pe³ni wy-

korzystane; wolne s¹ 4 wejœcia i 4 wyjœcia _ to

bardzo du¿o _ mo¿na wbudowaæ nowe funkcje.

Warto wiedzieæ, ¿e GAL16V8/20V8/22V10 ma-

j¹ funkcjê power-up reset _ w³¹czeniu zasilania

towarzyszy samoczynne zerowanie wewnêtrz-

nych rejestrów wyjœciowych i to niezale¿nie od

ich polaryzacji. Proponujemy Czytelnikom samo-

dzielne eksperymenty, np. wzbogacenie KOST-

KI o prze³¹cznik przyciskowy, który jednoczeœnie

w³¹cza zasilanie i uruchamia cykl roboczy (ozna-

cza oszczêdnoœæ energii), u¿ycie do zasilania

KOSTKI akumulatorka 2,4

÷

3,5 V i przetworni-

cy dc/dc jak¹ opisano w [4] itp.

Nie wykluczone, ¿e w przysz³oœci opiszemy

w ”projektach na weekend” prosty programator

GAL,i oraz uk³ady do uruchamiania i diagnosty-

ki projektów z GAL,ami nadaj¹ce siê do samo-

dzielnej budowy. Aalgebra Boole,a? Podstawo-

we wiadomoœci s¹ w programach szkolnych _

wystarczy uwa¿aæ na lekcjach i trochê poczy-

taæ (nie ma lekko). Powodzenia!

n

Jerzy Frydrychowicz

<jerzy.frydrychowicz@pro.onet.pl>

L I T E R A T U R A

[1] J. Frydrychowicz: Œwiat³a choinkowe, ale jakie! ”Re-

AV” nr 12/2000

[2] D. Bitterle GALs Programmierbare Bausteine in The-

orie und Praxis. Wyd. III Franzis

,

Verlag Müenchen

1997

[3] Materia³y firmowe Lattice Data Book 1996

[4] M. Foltyniewicz: Modu³ zasilacza bateryjnego z uk³a-

dem MAX856. ”ReAV” nr 10/1999

[5] J. Frydrychowicz: Programowanie ukladów PLD _

wykresy Karnaugh.

a)

b)

WYDRUK 2

Rys. 3. P³ytka drukowana (skala 1:1)

a _ strona druku, b _ rozmieszczenie elementów


Wyszukiwarka

Podobne podstrony:
2011 03 05 21;05;08
2001 05 10
05 08
2001 05 24
2001 05 a6 c5 25tdi
2001 05 Ośla łączka
2001 05 34
2001 03 08
2001 11 08 2162
Narz dzie nr 2 Wykre lanka dzieci 13 05 08
2001 05 42
SERWIS 2010.05.08
R 7 scalony 05 08
19.05.08, Mówca: etos i autorytet
Lekcje, slowka 05- 08, Słówka do lekcji 1-4
METRON PCm 05 08 1k
2001 05 Szkoła konstruktorów klasa II

więcej podobnych podstron