Skocz do zawartości

DCE Q816 procesor w FPGA


Pomocna odpowiedź

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Cześć,

a tak z ciekawości, czy planujesz obsługę operacji arytmetycznych  i flag zero, carry (przeniesienie arytmetyczne) i operacji przesunięć bitowych, oraz operacji logicznych bitowych (na rejestrach)?

Dopiero wtedy będzie to "pełny" procesor, który będzie można wykorzystać do praktycznych celów. Mam nadzieję, że się nie obrazisz za to pytanie - naprawdę jestem pełen uznania w stosunku do twoich aktualnych dokonań.

Myślę, że dużo byś skorzystał z zapoznania się z architekturą i listą rozkazów 8-bitowego soft procesora firmy Xilinx  Picoblaze (śmiało można go zaimplementaować na Elbercie).

Tu masz dokumentację do Picoblaze:

https://www.xilinx.com/support/documentation/ip_documentation/ug129.pdf

https://www.xilinx.com/products/intellectual-property/picoblaze.html

Pewne próby z Picoblaze były też opisane na Forbocie.

Pozdrawiam

  • Lubię! 2
Link to post
Share on other sites

Cześć,

nie zauważyłem, że masz te rozkazy z nimi to jest pełnoprawny procesor 🙂 Jest jeszcze tylko jedno pytanie - przeważnie operacje arytmetyczne ustawiają dwie flagi procesora: ZERO (ostatnia operacja arytmetyczna spowodowała wyzerowanie akumulatora) i CURRY  (w operacji arytmetycznej wystąpiło przepełnienie arytmetyczne). Ułatwia to pisanie operacji arytmetycznych na długich liczbach. Przeważnie z tymi flagami są skojarzone dwie instrukcje skoków warunkowych: JumpIfZero i JumpIfCurry co ułatwia pisanie programów z użyciem operacji arytmetycznych na długich liczbach.

Być może masz to już obsłużone, jeśli nie to nie jest to krytyka tylko temat do przemyślenia, czy może warto to brać pod uwagę przy rozbudowie projektu.

Pozdrawiam

  • Lubię! 2
Link to post
Share on other sites

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. 

  • Lubię! 2
Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.