„Zebranie informacji dotyczących tematyki projektu oraz

Transkrypt

„Zebranie informacji dotyczących tematyki projektu oraz
Mateusz Żyliński
Tadeusz Włodarkiewicz
‘WireWorld’
„Zebranie informacji dotyczących tematyki projektu oraz przedstawienie
koncepcji realizacji projektu”
1
I.
Informacje ogólne
A
utomat komórkowy to system składający się z pojedynczych komórek,
znajdujących się obok siebie. Ich układ przypomina szachownicę lub planszę
do gry. Każda z komórek może przyjąć jeden ze stanów, przy czym liczba
stanów jest skończona, ale dowolnie duża. Stan komórki zmieniany jest
synchronicznie zgodnie z regułami mówiącymi, w jaki sposób nowy stan komórki
zależy od jej obecnego stanu i stanu jej sąsiadów.
Przykłady zjawisk dające się opisać automatami komórkowymi:
Analiza ruchu ulicznego
Kolonie owadów
Neuroprzekaźniki
Gospodarka rynkowa
‘WireWorld’ jest dobrze znanym automatem komórkowym zaproponowanym prze
Briana Silvermana w roku 1987, jako cześci jego programu o nazwie Phantom Fisk
Tank. Stał on się popularny po publikacji poświęconego mu artykułu w dziale
"Computer Recreations" czasopisma Scientific American. Wireworld jest często
używany do symulacji elementów elektronicznych operujących na wartościach
bitowych. Pomimo prostoty reguł, jakie nim rządzą, za pomocą Wireworld można
stworzyć działający komputer.
II.
Reguły gry
G
ra toczy się na nieskończonej planszy (płaszczyźnie) podzielonej na
kwadratowe komórki. Każda komórka ma ośmiu sąsiadów, czyli „komórki
przylegające do niej bokami i wierzchołkami. Każda komórka może znajdować
się w jednym z czterech stanów:
pusta
głowa elektronu
ogon elektronu
przewodnik
0
1
2
3
czarna
niebieska
czerwona
żółta
Stany komórek zmieniają się w pewnych jednostkach czasu. Stan wszystkich komórek
w pewnej jednostce czasu jest używany do obliczenia stanu komórek w następnej
jednostce. Po obliczeniu komórek zmieniają swój stan dokładnie w tym samym
momencie. Stan komórek zależy od stanu jej sąsiadów:
komórka pusta na zawsze pozostaje w swoim stanie
głowa elektronu
ogon elektronu
ogon elektronu
przewodnik
przewodnik
głowa elektrony
(tylko wtedy gdy dokładnie 1 lub 2 komórki są głowami elektronu)
2
W ‘Wireworld’ niema graczy w dosłownym tego słowa znaczeniu. Udział człowieka
sprowadza się jedynie do ustalenia stanu początkowego komórek.
Skomplikowany opis reguł bardzo łatwo jest przyswoić za pomocą reprezentacji
graficznej:
Zasada 1: komórka pusta na zawsze pozostaje w swoim stanie
Rys. 1.1
Zasada 2: głowa elektronu przechodzi w ogon elektronu
ogon elektronu przechodzi w przewodnik
Rys. 1.2
Zasada 3: przewodnik przechodzi w głowę elektronu
(tylko wtedy gdy dokładnie 1 lub 2 komórki są głowami elektronu)
Rys. 1.3
Zasada 3 przedstawiona została dla przypadku sąsiedztwa jednej komórki na
Rys. 1.2 oraz sąsiedztwa 2 komórek na Rys. 1.3
3
III.
Główne założenia projektowe
IV.
Rozmiar planszy 64 x 64 komórek
Wyświetlanie wyników na ekranie VGA
Wprowadzanie warunków początkowych za pomocą komputera PC
połączonego z płytką za pomocą portu USB lub bezpośrednie wprowadzanie
na płytkę za pomocą pliku MIF
Regulowana liczba cyklów symulacji
Algorytm gry napisany w pseudokodzie
for x = 0 do 63
for y = 0 do 63
sprawdź wartość komórki w punkcie(x, y) na planszy
if wartość komórki = 0 (komórka pusta)
pozostaw pustą
if wartość komórki = 1 (głowa elektronu)
zamień na wartość komórki = 2 (ogon elektronu)
if wartość komórki = 2 (ogon elektronu)
zamień na wartość komórki = 3 (przewodnik)
if wartość komórki = 3 (przewodnik)
sprawdź ile komórek otaczających punkt (x, y) ma
wartość 1
if ilość komórek jest równa 1 lub 2
zamień na wartość komórki = 1
V.
Schemat układu
Monitor VGA
Płytka Laboratoryjna UP
moduł FDPI
Komputer z oprogramowaniem
4
VI.
Zgromadzone materiały
Sterownik monitora VGA – „Układy FPGA w przykładach” Majewski, Zbysiński
Opis płytki testowej http://www.ftdichip.com/
Informacje o kontrolerze USB http://www.ftdichip.com/
Strona dotycząca sterownika JD2XX https://jd2xx.dev.java.net/
„Synteza układów logicznych” prof. Tadeusz Łuba
„Język VHDL w praktyce” Józef Kalisz
„Projektowanie układów cyfrowych w języku VHDL” Mark Zwolinski
„Język VHDL” Kevin Skahill
Wikipedia – informacje o grze
5