„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