Skocz do zawartości

rafal2808

Użytkownicy
  • Zawartość

    28
  • Rejestracja

  • Ostatnio

Reputacja

40 Bardzo dobra

O rafal2808

  • Ranga
    3/10
  • Urodziny 28.08.1999

Informacje

Ostatnio na profilu byli

213 wyświetleń profilu
  1. Kolejna wersja procesora jest już gotowa. Tym razem dodana została obsługa rozkazu powrotu. Dzięki temu nie musimy znać dokładnego miejsca, w którym przerwany został program główny. Od teraz procesor przechowuje adres w odpowiednim rejestrze. Więcej na temat mojego projektu można przeczytać tutaj.
  2. Dostępna jest już kolejna wersja układu wyposażona w pełni funkcjonalny interfejs UART. Poza tym dodane zostały nowe rozkazy dla ALU oraz sam kod procesora został zaktualizowany. Na moim blogu można dowiedzieć się więcej na temat budowy układu oraz pobrać projekt.
  3. Jakiś czas temu na forum zaprezentowałem projekt procesora zrealizowanego na układzie FPGA. Był to układ zrealizowany na dwóch płytkach Elbert v2. Aby go uruchomić należało wykonać dość sporo pracy. Dzisiaj prezentuję pierwszą wersję układu DCE Q816, czyli bezpośredniej kontynuacji poprzedniego projektu. Można powiedzieć, że pierwsza wersja Q818 to tak naprawdę Q816 zrealizowany tylko na jednej płytce Elbert v2. Układ jest w pełni kompatybilny z poprzednim projektem oraz posiada identyczną listę rozkazów. Na ten moment nie będę skupiał się na budowie procesora, ponieważ jest ona praktycznie identyczna jak w układzie Q816. Jedyną różnicą jest to, że pamięć ROM oraz procesor zaimplementowane została na tym samym układzie FPGA. W związku z tym każdy, kto posiada płytkę Elbert v2 może pobrać projekt, który dostępny jest tutaj, a następnie uruchomić procesor Q818 w swoim domu. Po implementacji projektu na płytce FPGA powinniśmy zobaczyć następujący efekt świetlny. Należy również wspomnieć, że porty procesora skonfigurowane zostały w następujący sposób. przełączniki DIP Switch - wejście IN procesora (logika odwrotna) przycisk SW1 - RESET port P1 - wyjście OUT1 procesora diody LED - wyjście OUT2 procesora Programowanie procesora odbywa się poprzez zmianę zawartości pamięci ROM procesora. Aby tego dokonać musimy otworzyć plik ROM.vhd i następnie wpisać binarną zawartość kolejnych komórek pamięci. Najmłodsze 5-bitów to rozkaz dla procesora. Kolejne 8 to tzw. dana bezpośrednia, którą możemy przesłać do innych rejestrów. Poniżej umieszczam spis dostępnych rozkazów procesora oraz instrukcje dla ALU zapisywane w rejestrze C. Na ten moment jest to pierwsza wersja układu Q816 w przyszłości postaram się o uporządkowanie samego kodu, jak i dodanie kolejnych funkcji. O zmianach i kolejnych wersjach postaram się informować w komentarzach do tego posta.
  4. @aerograf7 Po krótkim researchu wydaje mi się że w edytorze online nie ma możliwości dodania płytek.
  5. Dzięki @FlyingDutch, sam też ostatnio szukałem trochę informacji na temat przejścia z Spartana3 na Spartana6. Podrzucam tutaj kilka linków związanych z tym tematem dla osób które, tak jak ja napotkały pewne problemy z przejściem na układ Spartan6. https://www.xilinx.com/support/answers/33210.html https://www.xilinx.com/support/documentation/sw_manuals/xilinx14_5/spartan6_hdl.pdf https://forums.xilinx.com/t5/Welcome-Join/Asynchronous-Set-or-Reset-for-Registers-of-Spartan-6-FPGA/td-p/478370 https://forums.xilinx.com/t5/Spartan-Family-FPGAs-Archived/migration-spartan-6-from-spartan-3/td-p/543651
  6. Podobnie jak @ethanak korzystam z pakietów płytek MCUdude. Ogólnie to na ten temat pisałem już nieco na moim blogu. https://rafal-bartoszak.blogspot.com/2019/05/programowanie-mikrokontrolerow-atmega.html
  7. Cześć, Jak może pamiętacie jakiś czas temu udostępniłem na forum projekt mojego własnego procesora na FPGA (Spartan 3E). Dzisiaj starałem się tak przerobić projekt, aby jego implementacja możliwa była na układzie Spartan 6. Jednak podczas syntezy otrzymuję takie oto ostrzeżenie. Poczytałem sobie nieco o tym i mniej więcej orientuję się już o co dokładnie chodzi. Chciałbym jednak zapytać bardziej doświadczonych kolegów czy może znacie lub posiadacie materiały odnośnie różnic w architekturze Spartan 3E a Spartan 6. Oraz czy są jeszcze jakieś można powiedzieć elementy które na Spartanie 3E syntezują się bez problemu a na Spartanie 6 odmawiają współpracy.
  8. Jeżeli chodzi o sygnalizowanie przepełnienia to istnieje już odpowiedni bit, u mnie nazwany Cout. Dodatkowo istnieją dwa rozkazy skoków warunkowych biorących go pod uwagę (skocz jeżeli 0 oraz skocz jeżeli 1). Natomiast flagi ZERO układ na razie nie posiada. Chociaż w przyszłości na pewno się pojawi. Jak na razie skupiłem się na programach, w których to zmienne nie przekraczają 8 bitów. Wiemy jednak, że taka sytuacja w rzeczywistości nie jest zbyt częsta, ale mając już podstawy prostsze będzie przystosowanie układu do wykonywania operacji na zmiennych większych niż podstawowe 8 bitów.
  9. Dzięki poczytam sobie trochę o Picoblaze. Na pewno w przyszłości pojawi się nieco więcej obsługiwanych rozkazów. Część z operacji które wymieniłeś są już obsługiwane poniżej umieszczam tabelkę z spisem rozkazów obsługiwanych przez jednostkę arytmetyczno-logiczną procesora.
  10. Chciałbym krótko opisać projekt który obecnie realizuję a jest to procesor zrealizowany na układzie FPGA. DCE Q816 (nazwa własna bez większego znaczenia) to 8 bitowa jednostka o architekturze mojego własnego pomysłu. Procesor może działać przy maksymalnej częstotliwości taktowania 12MHz. Dodatkowym układem pełniącym funkcję pamięci ROM oraz koprocesora jest DCE Q817 również zrealizowany na układzie FPGA. Pierwszy jak i drugi układ powstały na płytce Elbert v2 a jest to płytka z kursu FPGA na Forbot. Kolejnymi elementami wchodzącymi w skład projektu jest wyświetlacz 7 segmentowy oraz LCD dzięki którym mamy możliwość komunikowania się ze światem zewnętrznym. Jak widać na zdjęciu płytki z układami FPGA przeszły kilka modyfikacji. Odlutowane zostały wyświetlacze LED, część przycisków oraz diody LED. Dzięki temu do dyspozycji miałem więcej pinów. Procesor może obsłużyć prosty program zapisany w pamięci ROM pełna lista rozkazów dostępna jest poniżej. Proces budowy oraz projektowania układu opisuję na moim blogu oraz Fanpagu. Jeżeli kogoś zainteresował temat zapraszam do zapoznania się z większą liczbą informacji. Dodatkowo poniżej umieszczam filmy pokazujące możliwości procesora DCE Q186.
  11. Witam, chciałbym zapytać czy do płytki z kursu Forbot możliwe jest podpięcie układu CD4056 (BCD-7 segment). Dokładniej mam na myśli podpięcie czterech wyjść FPGA do wejść BCDA układu. Czy zasilając układ scalony napięciem 5V nie uszkodzę FPGA? Wydaje mi się że takie połączenie nie uszkodzi FPGA ponieważ jego wyjścia podpięte zostaną do wejść układu zasilanego napięciem 5V. Na tych końcówkach nigdy nie powinno pojawić się 5V ponieważ są to wejścia. Jednak chciałbym na wszelki wypadek zapytać czy na pewno dobrze myślę.
  12. Witam, czy ktoś wie jakie jest oznaczenie przetwornika AC na płytce Red Pitaya STEMLab 125-10. Przeglądałem dokumentację oraz schemat jednak nie znalazłem nic na ten temat. Podany jest model układu CA ale o AC nic nie ma.
  13. Też wybiorę chyba DLC9G bo jednak jest pewniejszy niż kombinowanie z przejściówkami. Posiadam już płytkę Elbert v2 z kursu FPGA i przyznaję komunikacja przez USB jest bardzo wygodna, ale chciałbym również popracować na innych układach.
  14. Witam, mam dość proste pytanie czy układy FPGA np. coś takiego można zaprogramować za pomocą konwertera USB-LPT. A następnie podłączonego do niego programatora. Zastanawiam się czy takie coś w ogóle zadziała. Czy może lepiej kupić po prostu programator na USB, którego cena jest jednak wyższa.
  15. Dokładnie układy za te 7,40zł mogą często nie działać jak należy.
×
×
  • Utwórz nowe...