Chciałem sobie postawić NAS na Raspberry Pi, żeby używać VM bez podpinania dysku bezpośrednio do laptopa. Chore? Może i tak, ale mam do tego prawo.
Ale i tak poległem, bo moja przejściówka nie działa z raspem :/ Mimo, że drivery teoretycznie są, więc stawiam w tym celu debiana na swoim starym laptopie.
inb4 że to będzie zamulać - przetestowałem to na windowsie i działa to dobrze.
>
kup hub usb 3.0 z wtyczką usb-c, żeby wetknąć do maka bez przejściówek>
50 zł>
tylko 4 porty>
jak poruszysz kablem to się zwiera odsłonięty ekran kabla z plusem jakiegoś kondensatora :---DDDD
Jednak chyba spróbuję obsłużyć ten RAM, który znalazłem, bo teoretycznie powinien działać na 3,3 V. Gorzej, że jest adresowany po jednym bicie xD Więc trochę cykli na sam odczyt zmarnuję. Na razie go rozkminię i pewnie napiszę ten procek od nowa, bo na razie to tak na brudno pisałem, nie dzieliłem na moduły (no bo jednak HDL a zwykłe programowanie to się troszkę różni i nie mam jeszcze wyczucia jak to dobrze podzielić). No i tego ramu jest 32 kB, więc to i tak mnie zmusi do zmiany architektury nieco, bo pisałem pod 256 B, więc pewnie zmniejszę liczbę rejestrów, a dodam stos i procedury poza zwykłymi jumpami.
https://i.imgur.com/Gti3rhk.jpg
Mój CPU wygląda już coraz sensowniej. Już obsługuje instrukcje MOV, MVI, ADD, SUB, INC, DEC, HLT (to wszystko bazuje troszkę na zestawie instrukcji Intela 8080). Zrezygnowałem z mnożenia, bo boję się, że mi miejsca nie wystarczy na Spartanie.
Na płytce z FPGA zielone ledziki wskazują na stan magistrali danych, dip switch pozwala wybrać rejestr, którego stan w danej chwili jest pokazywany na ledach pod ledami ze stanem program countera.
Po lewej różne ledy od statusu procka (LCK - taki gówno-debouncing przycisków, FTC - flaga fetch, że już pobrał instrukcję/dane, EXE - flaga, że wykonał już daną instrukcję, flaga HLT - że procesor się zatrzymał, INS - czy obecny bajt na magistrali to dane czy instrukcja, ZF - zero flag).
Obecnie pracuję nad jumpami, żeby w końcu był kompletny w sensie Turinga xD
Wgl to wkurwiają mnie trochę nuworysze, co tam srają wypierdami, że uu dynamiczne typowanie to zło, hurr durr tylko statyczne typowanie xD Jeszcze niektórzy wgl piszą takie bzdury, że w Pythonie np. powinni wprowadzić przymusowe statyczne typy i dynamicznie typowane języki to się nie nadają do większych projektów. Pizdy takie, co za nich wszystko kompilator musi sprawdzać, a jakby napisali hello worlda w C to i tak by najebali 5 segfaultów i mieliby wycieki pamięci.
Ech, robiłem swój 8-bitowy procesor w verilogu na 4 rejestry, bo nie stać mnie na FPGA większe niż 1400 LUT i nawet całkiem nieźle mi to szło, a tu już siódma i do roboty trzeba iść, eh. Pewnie dopiero w weekend do tego wrócę. Jeszcze, żeby te schujałe środowiska do programowania tego były na cokolwiek innego niż windows. Brak otwartej platformy do syntezy to jest ból. Coś tam niby jest, ale i tak każdy producent ma swoje gówniane toolchainy rodem z jakiegoś borlanda.
Jedno, co mnie wkurwia w macbookach to te zajebane porty usb-c. W sensie same w sobie nie są złe - są dwustronne, ładnie się wklikują, tylko kurde mało co ma taką wtyczkę, więc muszę używać przejściówek. A ponieważ nie widzi mi się płacić 160 zł za dobrą przejściówkę, to kupiłem sobie 4 za jakieś 15 zł. No i one się ruszają, wcale się ładnie nie wklikują, już jedna mi się wygięła, eh.
To były dwa ciężkie tygodnie. Był raport do napisania. W poniedziałek okazało się, że ASAP jest jeszcze jeden do piątku hehe. Raporty na kilkadziesiąt stron, zbieranie danych, robienie wykresów, kończenie bibliotek na ostatnią chwilę, siedzenie nad jakimiś gównianymi bugami z wypranym mózgiem o 2. w nocy, żeby zdążyć. Ale już tylko dwa wykresy do końca. Jeden raport już został pozytywnie przyjęty, drugi zaraz skończę :)