You are on page 1of 4

S yPs tRe m

p
O -Jo n
E -KC hT i Y

Zbuduj wasny
System-on-Chip

8051 w VHDL, cz 1
Popularno mikrokontrolerw
51 nie podlega dyskusji. Od lat
wzmacniaj j take dostpne w
bardzo wielu firmach tworzcych
IP corey - wirtualne wersje
tych mikrokontrolerw. Niestety,
korzystanie z IP corew nie jest
moliwe bez poniesienia do
wysokich kosztw zwizanych z
ich zakupem, std rozwizania
tego typu s stosowane gwnie
przez firmy przygotowujce
projekty wysokonakadowe.
Przynajmniej tak byo do dzi
Rekomendacje:
projekt polecamy wszystkim
Czytelnikom, ktrzy interesuj
si nowoczesnymi sposobami
konstruowania sprztu, a take
tym, ktrzy chc pozna w
praktyce nowoczesn technologi
System-on-Chip.

Czytelnicy wystraszeni wizj


pacenia kilu tysicy dolarw za
opisany w jzyku HDL rdze mikrokontrolera 51 mog zapyta:
jaki ma to sens, jeeli doskonale
zweryfikowany, kompletny mikrokontroler z wbudowan du pamici Flash mona kupi za kilka
zotych w niemal kadym sklepie
z podzespoami elektronicznymi?
Po co pokonywa trudnoci zwizane z implementacj takiego procesora w ukad FPGA (ktry jest
do tego droszy od gotowego mikrokontrolera!), traci zalety programowanej w systemie pamici
Flash, uatwia kopiowanie swojego projektu Wad takiego rozwizania jest wicej ni wymieniono,
ale ma ono take niewtpliwe zwaszcza w projektach przemysowych - istotne zalety: projektowane urzdzenie mona w wielu
przypadkach zmieci w jednym
ukadzie scalonym, moliwa jest
atwa (take zdalne!) przebudowa
sprztu pozwalajca dostosowa
jego funkcjonowanie do zmieniajcych si wymaga aplikacji, mona
take zbudowa uniwersaln platform, ktrej funkcjonalno okrela
uytkownik poprzez zmian plikw
konfiguracyjnych. Niebagateln za-

let implementowania kompletnych


rozwiza sprztowych w ukadach
FPGA jest take atwo i niski
koszt ich uruchamiania - pamici
konfiguracji w ukadach FPGA s
typu SRAM, mona wic modyfikowa ich zawarto nieskoczon
liczb razy.
Dostpno duych IP corew dla niewielkich firm jest mocno ograniczona ze wzgldu na ich
(wzgldnie) wysok cen. Wynika
ona midzy innymi z nastpujcych czynnikw:
- relatywnie niewielkiej konkurencji pomidzy producentami rdzeni o wysokiej jakoci - takich
firm jest na rynku nadal niewiele (w Polsce dziaaj trzy),
- praco- i czasochonnoci opracowania i - przede wszystkim
- przetestowania poprawnoci
dziaania rdzenia, co jest zadaniem pod wieloma wzgldami
niebagatelnym.
Firmy tworzce IP corey zazwyczaj bardzo niechtnie udostpniaj swoje opracowania bezpatnie, wic zazwyczaj jedyn szans
ich poznania jest korzystanie z ich
zabezpieczonych (przeznaczonych
wycznie do celw ewaluacyjnych,
przez ograniczony czas) wersji lub

Rys. 1. Schemat blokowy mikrokontrolera Oregano MC8051

Elektronika Praktyczna 2/2005

35

System-on-Chip
Czemu IP corey?
Wbrew pozorom IP corey nie maj za
zadanie uatwia ycia leniwym konstruktorom, lecz przyspieszy wdraanie projektw
do produkcji. Jak powiedzia Jim Sansbury
- jeden z zaoycieli firmy Altera - Kupujc
IP corey kupujesz czas, wic ich cena jest
usprawiedliwiona.

Rys. 2. Schemat blokowy portu I/O w mikrokontrolerze Oregano MC051

korzystanie z wersji bezpatnych,


dostpnych midzy innymi w portalu http://www.opencores.org.
Alternatywnym - do korzystania z rozwiza komercyjnych lub
udostpnionych przez wolontariuszy - wyjciem jest samodzielne opisanie w ktrym z jzykw
HDL wasnych blokw funkcjonalnych. O ile stworzenie prostych
interfejsw lub blokw funkcjonalnych (jak choby te, ktre dotychczas opisywalimy w EP: generator
PWM, sterowniki wywietlacz LED
i LCD, obsuga nastawnika-impulsatora) jest proste, to samodzielne
opisanie rdzenia mikrokontrolera
wraz z peryferiami jest zadaniem
dla jednej osoby karkoomnym.
Nie oznacza to, e nie da si tego
zrobi! Jak pokazaa praktyka, najwikszym problemem nie jest napisanie rdzenia, lecz weryfikacja jego
dziaania, o czym zreszt wiadcz
trudno na jakie napotykaj uytkownicy popularnych, bezpatnych
wersji rnych rdzeni. Szukajc
sensownej propozycji dla Czytelnikw EP dotarem do precedensowej
oferty austriackiej firmy Oregano
Systems, ktra bezpatnie udostpnia i cigle rozwija (czytaj: poprawia) szybki rdze mikrokontrolera 8051, ktry nie tylko mona
parametryzowa dostosowujc jego
niektre elementy do wymaga
aplikacji, lecz take zwikszy jego
moliwoci wykorzystujc opcjonalne rozkazy wychodzce poza list
standardow.

oryginau architekturze jest znacznie wiksza (zgodnie z danymi


producenta, program jest wykonywany przez mikrokontroler Oregon MC8051 przecitnie 10-krotnie
szybciej ni robi to mikrokontroler ze standardowym rdzeniem).
W tab. 1 znajduje si zestawienie
liczby cykli zegarowych koniecznych do wykonania kadego rozkazu z listy obsugiwanych przez
mikrokontrolery: MC8051 i standardowy rdze 51.
W mikrokontrolerze MC8051
uytkownik moe sam zdecydowa
ile timerw-licznikw i interfejsw
szeregowych UART ma mie wbudowanych implementowany mikrokontroler (dostp do nich umoliwiaj dwa dodatkowe rejestry),
moe take uaktywni lub zablokowa rozpoznawanie przez jednostk
sterujc trzech rozkazw:
- MUL - sprztowego mnoenia
dwch liczb 8-bitowych (kod
rozkazu: 10100100 binarnie),

- DIV - sprztowego dzielenia


dwch liczb 8-bitowych (kod
rozkazu: 10000100 binarnie),
- DA - korekcji dziesitnej zawartoci akumulatora (kod rozkazu:
11010100 binarnie).
Zabieg ten pozwala zoptymalizowa wykorzystanie zasobw ukadu FPGA, w ktrym mikrokontroler
bdzie implementowany.
Prezentowany IP core wyposaono w cztery 8-bitowe porty I/O,
przy czym w opisie rozdzielono
linie wejciowe od wyjciowych
(rys. 2). Takie rozwizanie uatwia
implementacj projektu w dowolnych ukadach FPGA, take z rodzin, w ktrych komrki wsppracujce z liniami I/O nie s przystosowane do pracy dwukierunkowej. W takich przypadkach linie
wejciowe i wyjciowe s wyprowadzone na osobne wyprowadzenia
ukadw, ktre naley zewrze ze
sob (styki fizyczne) na zewntrz
ukadu. W zalenoci od moliwoci docelowego ukadu FPGA moe
okaza si konieczne zastosowanie
zewntrznych rezystorw pull-up
doczonych do napicia zasilajcego porty I/O. Nie jest to konieczne
w przypadku wspczesnych rodzin
ukadw FPGA, jak choby Spartan
3 (Xilinx) i Cyclone (Altera), ktre

Moliwoci mikrokontrolera
Oregano MC8051

Schemat blokowy mikrokontrolera MC8051 pokazano na rys. 1.


Jest to konstrukcja w peni synchroniczna, ktrej wydajno dziki zmodyfikowanej w stosunku do

36

Fot. 3. Widok zestawu startowego z ukadem Spartan 3 firmy Xilinx

Elektronika Praktyczna 2/2005

System-on-Chip
Tab. 1. Porwnanie liczby cykli zegarowych niezbdnych do wykonania standardowych rozkazw z listy 8051
Instrukcja
ACALL
ADD_A_RR
ADD_A_D
ADD_A_ATRI
ADD_A_DATA
ADDC_A_RR
ADDC_A_D
ADDC_A_ATRI
ADDC_A_DATA
AJMP
ANL_A_RR
ANL_A_D
ANL_A_ATRI
ANL_A_DATA
ANL_D_A
ANL_D_DATA
ANL_C_BIT
ANL_C_NBIT
CJNE_A_D
CJNE_A_DATA
CJNE_RR_DATA
CJNE_ATRI_DATA
CLR_A
CLR_C
CLR_BIT
CPL_A
CPL_C
CPL_BIT
DA_A
DEC_A
DEC_RR
DEC_D
DEC_ATRI
DIV_AB
DJNZ_RR
DJNZ_D
INC_A
INC_RR
INC_D
INC_ATRI
INC_DPTR
JB
JBC
JC
JMP_A_DPTR
JNB
JNC
JNZ
JZ
LCALL
LJMP
MOV_A_RR
MOV_A_D
MOV_A_ATRI
MOV_A_DATA
MOV_RR_A
MOV_RR_D
MOV_RR_DATA
MOV_D_A
MOV_D_RR
MOV_D_D
MOV_D_ATRI
MOV_D_DATA
MOV_ATRI_A
MOV_ATRI_D
MOV_ATRI_DATA
MOVC_A_ATDPTR
MOVC_A_ATPC
MOVX_A_ATRI
MOVX_A_ATDPTR
MOVX_ATRI_A
MOVX_ATDPTR_A
MOV_C_BIT
MOV_BIT_C
MOV_DPTR_DATA
MUL_AB
NOP
ORL_A_RR
ORL_A_D
ORL_A_ATRI
ORL_A_DATA
ORL_D_A
ORL_D_DATA
ORL_C_BIT
ORL_C_NBIT
POP
PUSH
RET
RETI
RL_A
RLC_A
RR_A
RRC_A
SETB_C
SETB_BIT
SJMP
SUBB_A_RR
SUBB_A_D
SUBB_A_ATRI
SUBB_A_DATA
SWAP_A
XCH_A_RR
XCH_A_D
XCH_A_ATRI
XCHD_A_ATRI
XRL_A_RR
XRL_A_D
XRL_A_ATRI
XRL_A_DATA
XRL_D_A
XRL_D_DATA

Liczba bajtw rozkazu


2
1
2
1
2
1
2
1
2
2
1
2
1
2
2
3
2
2
3
3
3
3
1
1
2
1
1
2
1
1
1
2
1
1
2
3
1
1
2
1
1
3
3
2
1
3
2
2
2
3
3
1
2
1
2
1
2
2
2
2
3
2
3
1
2
2
1
1
1
1
1
1
2
2
3
1
1
1
2
1
2
2
3
2
2
2
2
1
1
1
1
1
1
1
2
2
1
2
1
2
1
1
2
1
1
1
2
1
2
2
3

Elektronika Praktyczna 2/2005

MC8051
2
2
3
2
2
2
3
2
2
2
2
3
2
2
3
3
3
3
3
3
3
3
1
1
2
1
1
3
1
1
2
3
2
3
2
3
1
2
3
2
4
3
3
2
1
3
2
2
2
3
3
2
3
2
2
1
3
2
2
2
3
2
3
1
3
2
2
2
2
2
1
1
3
2
3
3
1
2
3
2
2
3
3
3
3
2
3
3
3
1
1
1
1
1
2
2
2
3
2
2
1
3
4
3
3
2
3
2
2
3
3

Liczba cykli zegarowych


Standardowy 51
24
12
12
12
12
12
12
12
12
24
12
12
12
12
12
24
24
24
24
24
24
24
12
12
12
12
12
12
12
12
12
12
12
48
24
24
12
12
12
12
24
24
24
24
24
24
24
24
24
24
24
12
12
12
12
12
24
12
12
24
24
24
24
12
24
12
24
24
24
24
12
24
12
24
24
48
12
12
12
12
12
12
24
24
24
24
24
24
24
12
12
12
12
12
12
24
12
12
12
12
12
12
12
12
12
12
12
12
12
12
24

Wzrost szybkoci wykonywania programu


12
6
4
6
6
6
4
6
6
12
6
4
6
6
4
8
8
8
8
8
8
8
12
12
6
12
12
4
12
12
6
4
6
16
12
8
12
6
4
6
6
8
8
12
24
8
12
12
12
8
8
6
4
6
6
12
8
6
6
12
8
12
8
12
8
6
12
12
12
12
12
24
4
12
8
16
12
6
4
6
6
4
8
8
8
12
8
8
8
12
12
12
12
12
6
12
6
4
6
6
12
4
3
4
4
6
4
6
6
4
8

37

System-on-Chip
nia samodzielne skompilowanie projektu. Z tego
powodu na CD-EP3/2005B
umiecimy kompletny proumie
jekt przygotowany dla Quartusa II i uk
ukadw Cyclone firmy Altera.

Platformy
uruchomieniowe

Fot. 4. Widok zestawu startowego z ukadem Cyclone firmy Altera

wyposaono w programowo wczane rezystory oraz przerzutniki bus-hold, ktre zapewniaj utrzymanie
poprawnych stanw logicznych na
wszystkich wejciach.
M i k r o ko n t r o l e r M C 8 0 5 1 j e s t
przystosowany do wsppracy z zewntrzn pamici programu lub
pamici ROM zaimplementowan w ukadzie FPGA. Maksymalna
przestrze adresowa pamici programu wynosi 64 kB, a c cakowita
pojemno pamici SRAM (cznie
z SFR) - 256 bajtw. W przypadku takiej koniecznoci, mona take
wyposay mikrokontroler z blok
dodatkowej pamici SRAM do przechowywania danych, ktrej maksymalna pojemno wynosi 64 kB.
W przypadku implementacji tej
pamici wewntrz ukadu FPGA
konieczne jest wykorzystanie specyficznych (dla danej architektury)
mechanizmw i narzdzi programowych, ktre zapewniaj opty-

38

malnie wpasowanie blokw pamici w zasoby ukadu.

Dystrybucja

Jak wspomniano na pocztku,


projekt Oregano MC8051 jest dystrybuowany bezpatnie na bazie licencji GNU/LGPL (jest tekst zamiecimy za miesic na pycie CD-EP). Wraz z pliami rdowymi (w
VHDL) jest dystrybuowana take
podstawowa dokumentacja projektu, przykadowe programy testowe
oraz pliki testowe dla symulatora
ModelSim. Obecnie dostpna wersja 1.4 z listopada 2004 zawiera
sporo udoskonale w stosunku do
wersji poprzednich, midzy innymi
poprawnie dziaaj przerwania od
timerw, ktre w poprzedniej wersji 1.2 sprawiay sporo kopotw.
Niestety, wraz z udoskonalaniem
opisw HDL, nie bya przez twrcw rdzenia rozwijana dokumentacja projektu, ktrej skpo utrud-

Prezentowany rdze testowano na dwch


dw
platformach uruchomieniowych:
- Spartan 3 Starter Kit firmy
Xilinx (fot.
(
3) - zestaw zawiera m.in. ukad XC3S200,
projekt przygotowano za pomoc bezpatnego pakietu
WebPack ISE 6.3i,
- ZL2PLD (fot.
(
4) z ukadem EP1C3 z rodziny
Cyclone firmy Altera, projekt realizowano z wykorzystaniem bezpatnej wersji pakietu Quartus II 4.1 SP2.
Jakkolwiek opisy HDL przygotowane przez firm Oregano s
uniwersalne, wyniki uzyskane w
przypadku implementacji na ukady Spartan 3 nie s w chwili powstawania tego artykuu najlepsze
(oczywicie z winy autora, a nie
ukadw czy narzdzi). Dlatego w
kolejnych czciach artykuu zostanie przedstawiona implementacja
na ukadach Cyclone.
Piotr Zbysiski, EP
Piotr.zbysinski@ep.com.pl
Co dla bascomowcw
Pomimo implementowania mikrokontrolera
Oregano MC8051 w zaawansowanych ukadach FPGA, programy dla niego mona pisa
take w Bascomie. Za pomoc tego wanie
kompilatora napisano programy testowe,
zastosowane do weryfikacji poprawnoci
dziaania mikrokontrolera.

Elektronika Praktyczna 2/2005

You might also like