>
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.
>
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.
@sens: a następny level to zrobienie tego na samych chipach logicznych ( http://eater.net ) albo na samych tranzystorach ( http://www.megaprocessor.com/ )
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.
@ajdajzler: 1. z Arduino i ogólnie z mikrokontrolerami to już siedzę ze 2 lata i w domu i w pracy, więc nie wiem w sumie co jeszcze ciekawego mógłbym z nimi zrobić xd poza wykorzystywaniem ich już właściwie po prostu jako narzędzia do osiągnięcia celu (np. jak teraz, do ogarniania tego RAMu)
2. wbijam nowy skill
3. w zasadzie to całkiem ciekawe samo w sobie i poszerza horyzonty - wcześniej jak na studiach mówili o pipeline'ach w procesorach, to zaczęły się problemy, a dalej to już naprawdę nie miałem pojęcia o czym do cholery na tych lekcjach pierdolą, jakieś wzory iksy dupiksy. Albo czemu jedna instrukcja procesora zajmuje 2 cykle, a inna 10? Dlaczego można zaadresować tyle pamięci mimo że procesor jest tylko 8-bitowy? I inne takie kwestie, które niby wiedziałem i teoretycznie ogarniałem, ale jak klepię to w rzeczywistości, to przychodzi zrozumienie
Zresztą jak ~~podpierdoliłem z pracy~~ kupiłem swoje pierwsze Arduino i pierwszego Raspberry Paja, to wydawało mi się, że więcej zabawy będę miał z raspem, bo łał taki mocarny kilkurdzeniowy procesor, szacuken. A tu chuja, okazało się, że im bardziej niskopoziomowo i im więcej ograniczeń, tym więcej zabawy
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.
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.
@sens: ok, doprowadzenie tego RAMu do działania okazało się dużo prostsze niż myślałem. Poszło za pierwszym razem. Może zrobię jakiś pośredniczący kontroler tego RAMu, żeby nie czytać po jednym bicie.
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
@sens: Tak na razie wyglądają opkody https://i.imgur.com/gLks5Er.png
Ale chyba poprzenoszę je tak, żeby zmieścić się do 0x3f, wtedy instrukcje będą zajmowały max 6 bitów, co mam nadzieję uprości dekodowanie i zwolni mi troszkę miejsca na inne ficzery
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.
@ajdajzler: no co jak co, ale list comprehensions to jest złoto. Do pętli też nie wiem, co masz, przecież dużo wygodniej się iteruje po elementach kolekcji niż po indeksach. Co do dynamicznego typowania, to naprawdę nie jestem w stanie wskazać, kiedy mi ostatnio sprawiło jakiś problem, a piszę głównie w pytongu. Piszę też dużo w C i diametralnie różne są to języki i oba są zajebiste i nie widzę za bardzo sensu jebania po tym, że jeden jest dynamiczny i ma w kurwę dynamicznych feature'ów, a drugi jest małą nakładką na asemblera i wszystko trzeba w nim robić ręcznie. Oba się bardzo ładnie uzupełniają. Potrzebujesz ścisłej kontroli typów? Wybierz inny język 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.
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.