
Tak wyglądało budowanie prototypu pierwszej Amigi, to było dopiero trudne, a ile czasu takie projekty pochłaniały. Przypuszczam że z naszej młodej gwardii inżynierów poległby nie jeden mając do dyspozycji płytki uniwersalne, kabelki i worek bramek rejestrów buforów bez jakiś wyrafinowanych narzędzi projektowych.
Dziś prototyp takiego komputera wyglądałby w ten sposób:

Taką płytkę właśnie dostałem od Mikołaja

Docelowo mam zamiar uruchomić na niej komputer Amiga 1200 , później C64. Twórcy Amigi niestety nie mieli internetu żeby można było poszukać informacji w wyszukiwarce. Natomiast ja nie mam książki co byłaby jakąś podstawą wiedzy o FPGA ale postęp cywilizacyjny mamy taki że nawet stolarz będzie w stanie pomigać ledem na FPGA. Oczywiście jasnowidzem nie jestem i trzeba było zajrzeć do internetu tu i tam i jeszcze tam żeby w ogóle zacząć programować FPGA. Fascynujące jest w FPGA to jak wykonuje zadane mu zadania

Mikrokontrolery, procesory mają zawsze jakiś rejestr w którym jest zawarty adres pamięci, pod którym znajduje się instrukcja zwana kodem maszynowym do wykonania, są dostępne różne kody zmieniające np zawartość jego wewnętrznych rejestrów czy adres następnego kodu do wykonania. A kolejne kroki kody wykonywane przez uC są tyknięciem zegara , zegara licznika który posiada każdy procesor i uC , w zależności od częstotliwości tego zegara mamy szybkość wykonywania kolejnych kodów maszynowych. To tak w maksymalnym skrócie, ale pytanie należało by zadać teraz co właściwie jest odpowiedzialne za to że uC rozpoznaje kody maszynowe, gdzie są rejestry? Tutaj już się zaczyna FPGA a dokładniej zestawy bramek tak połączonych że jeden cykl zegara wcześniej wspomnianego wykona jakąś operacje logiczną zaprojektowaną wcześniej. Podczas zbierania informacji szybko idzie się dowiedzieć że w FPGA to nie tylko są bramki które łączymy w jakąś konfiguracje, są też węzły zegarowe które właśnie dają "życie" FPGA

Pierwsze co będziemy potrzebować to coś czym można będzie wgrać naszą bezsensowną konfiguracje bramek. W zestawie był już taki programator:

Oczywiście jakiś program wspomagający projektowanie konfiguracji bramek by się przydał, z tego co wyczytałem w internetach to najlepiej nadającym się programem będzie QUARTUS PRIME LITE EDITION. ściągnąć można go ze strony Intela i jak dobrze przeczytałem to jest to darmowa wersja okrojona o coś ... zapewne przydatnego w profesjonalnych projektach, my będziemy bez sensownie migać ledem, i nam wystarczy ta "chuda" wersja. Tutaj można ściągnąć te cudo: https://fpgasoftware.intel.com/20.1.1/? ... rm=windows, zanim się pobierze będzie trzeba się zarejestrować.

Instalujemy jak każdy inny program, finalnie zajmuje u mnie coś koło 10GB na dysku.
kolejnym krokiem po instalacji , jeszcze go nie uruchamiamy a należałoby zainstalować definicja FPGA którego mamy na płytce, jest to na pewno rodzinka CYCLONE IV o symbolu

niżej na stronie jest pobrania

Następnie trzeba zainstalować te definicje i do tego służy

Należy wskazać katalog w którym znajduje się ściągnięty plik device support i postępować według instrukcji instalatora.
Zanim uruchomimy jeszcze główny program jeszcze została instalacja sterowników do USB Blaster. Windows sam ich nie znajdzie więc zanim podłączymy przez USB nasz programator trzeba ręcznie zainstalować odpowiednie sterowniki. Na nasze szczęście w pakiecie oprogramowania które zainstalowaliśmy są już, a znajdują się tu: D:\intelFPGA_lite\20.1\quartus\drivers\usb-blaster\ ( ja sobie instalowałem wszystko na dysku D: )
klikamy na usbblstr.inf prawym klawiszem myszki i z menu wybrałem 'zainstaluj' . Po zainstalowaniu można podłączyć programator do komputera i powinien zostać zauważony tak:

Teraz możemy przejść to tego fajnego programu w którym zajmiemy się konfiguracją bramek w FPGA. Uruchamiamy

powinniśmy zobaczyć takie okno:

Wybieramy "New Project Wizard" , wskazujemy katalog gdzie tworzony projekt ma zawierać wszystkie pliki, ja mam tak:

klikamy "next" , zaznaczamy "empty project", następnie "next" i "next" aż powinno się wyświetlić okno wyboru modelu naszego FPGA, tak to w tym przypadku u mnie wygląda:

następnie klikamy "next" i "next" aż pojawi się podsumowanie parametrów i "finish"

teraz dodajmy plik "file->new"

wklejamy taki oto "kod"
Kod: Zaznacz cały
module ledblink(
input clk,
output LED
);
reg [23:0] cnt;
always @(posedge clk) cnt <= cnt +24'd1;
assign LED = cnt[23];
endmodule
aby przeanalizować nasz "kod" klikamy na ikonkę "Start Analisys & Synthesis"

Powinno się się skompilować , i bez błędów.
Ale to nie wszystko, bo patrząc na ten bezsensowny "kod", kompilator może nie wiedzieć do którego pinu mamy podłączonego leda, a to że podczas tworzenia projektu wskazaliśmy tylko rodzaj procesora to teraz jeszcze musimy skonfigurować co gdzie jest. Do tego służy nam opcja z menu "Assignments->Pin Planner" wyświetli się nam się nasz procesrorek a przynajmniej powinien się wyświetlić.


Na samym dole mamy tabelkę i trzeba ją uzupełnić odpowiednio , wskazać pin do którego jest podłączony generator częstotliwości inaczej zegar clk, oraz do którego pinu mamy podłączonego naszego LEDa. Tak to powinno wyglądać w przypadku prezentowanej płytki:

Zamykamy okno pin planera i wracamy do głównego programu. Następnie uruchamiamy kompilacje ikonką "Start Compilation", program pomyśli chwilkę i powinno być bez błędu i z 11 warningami , narazie nie powinny nas interesować te uwagi, a już ostatnim etapem będzie zaprogramowanie naszego FPGA.
Klikamy w ikonkę "programmer" i powinno się wyświetlić takie okno:

Jak widzicie jest tam już skonfigurowany programator ponieważ wcześniej niechcący to zrobiłem


i się miga
Jeśli ktoś w ogóle doczytał do tego miejsca to gratuluje, może informacji zawarłem 0.1% możliwości tego programu oraz samego FPGA, ale myślę że moje proste podejście do tego zagadnienia nie jednemu (bez wykształcenia) otworzy-przesunie klapkę w mózgu i zacznie myśleć jak FPGA....znaczy w tej notacji

link do zestawu który tu prezentowałem: https://www.banggood.com/pl/ALTERA-Cycl ... rehouse=CN
Pozdrawiam
XBary