Czytelne i edukacyjne implementacje procesora w HDL

37

Czy możesz polecić czytelną i edukacyjną implementację procesora w VHDL lub Verilog? Najlepiej coś dobrze udokumentowanego.

PS Wiem, że mogę na to patrzeć opencores, ale jestem szczególnie zainteresowany rzeczami, na które ludzie naprawdę patrzyli i byli interesujący.

PS2. Przepraszam za podstępne tagi, ale jako nowy użytkownik nie mogę tworzyć nowych

Eli Bendersky
źródło
1
Oto świetny blog od faceta próbującego stworzyć mały procesor dla CPLD stevechamberlin.com/cpu
Toby Jaffey
2
HDL fortunately Niestety, czytelny.
Connor Wolf,
@Joby Taffey: link jest zepsuty, czy to miałeś na myśli? bigmessowires.com/cpu-in-a-cpld
Brian Carlton
mor1kx , implementacja Verilog OpenRISC 1000. Ma kilka komentarzy. Zaletą OpenRISC jest to, że ma zestaw narzędzi, ale nadal jest stosunkowo prosty.
Janus Troelsen

Odpowiedzi:

18

Może Ci się spodobać seria artykułów, o której pisałem dawno temu dla magazynu Circuit Cellar, Budowanie systemu RISC w układzie FPGA .

Miłego hakowania!

Jan Gray
źródło
2
Zobacz także mój artykuł na temat Design Con, Projektowanie prostego procesora RISC zoptymalizowanego pod kątem FPGA i System-on-a-Chip [ fpgacpu.org/papers/soc-gr0040-paper.pdf] , który przedstawia opatrzony komentarzem kod źródłowy Verilog dla procesora FPGA i SoC.
Jan Gray,
to jest martwy link: /
Earlz
Usunąć końcowe]?
Jan Gray,
7

Zdobądź książkę, mam pierwsze wydanie. Kilka lat temu zaimplementowałem ich procesor w małej Flex 10K10 FPGA na zaprojektowanej przeze mnie płytce drukowanej, z kilkoma przyciskami i pojedynczym 7-segmentowym wyświetlaczem do wprowadzania danych i wyświetlania wyników.

Leon Heller
źródło
7

Wiele zależy od tego, jaki jest twój cel studiowania kodu? Innymi słowy, co oznacza dla ciebie interesujące ?

Jeśli robisz to, aby zobaczyć, ile złożoności może zajść procesor, możesz być bardziej zainteresowany badaniem źródła architektur OpenSPARC . To zajmie dużo czasu na nurkowanie w ale dostaniesz uznanie za ogólną duże zdjęcie widoku złożonego mikroprocesor.

Następnie, jeśli chcemy przestudiować określone funkcje mikroarchitektury komputerowej, warto przyjrzeć się prostym maszynom RISC, takim jak AEMB , niewielki i szybki wielowątkowy 32-bitowy procesor RISC (wtyczka bezwstydna).

Jeśli zatem chcesz nauczyć się dobrych stylów i konwencji kodowania, projekt LEON2 jest dobrym miejscem do nauki dobrego stylu kodowania VHDL.

Jeśli jednak Twoim celem w nauce procesora jest nauczenie się, jak samemu go zaprojektować, najlepszym rozwiązaniem byłoby rozpoczęcie od jednej z prostych 8-bitowych maszyn (w sieci jest wiele przykładów AVR, 8051, PIC).

sybreon
źródło
Bezwstydna wtyczka - AEMB - mój własny „najmniejszy procesor, który mógłby”.
sybreon
5

Możesz spróbować sprawdzić niektóre projekty procesorów Forth. Dalej jest prosty język programowania, którego specyfikacja i implementacja są zdefiniowane za pomocą dwóch stosów stosów (jeden dla danych i jeden dla adresów zwrotnych).

Kilka małych procesorów VHDL / Verilog jest dostępnych za darmo:

Więcej linków można znaleźć tutaj:

PS. Pomimo tego, że Forth jest dość starym i mało znanym językiem, wiele nowoczesnych maszyn wirtualnych opartych na stosie (Java, szybkie maszyny wirtualne JavaScript) ma podobny projekt niskiego poziomu, więc poznanie go może być owocne.

jpc
źródło
2

PicoBlaze jest fajny, jednak nie jest dostępny w niezależnym od dostawcy VHDL.

Niektóre inne opcje to:

  • Klon Picoblaze w Verilog (powinieneś być w stanie łatwo to znaleźć). Nie jestem pewien, czy jest utrzymywany
  • Gumnut to ładny mały rdzeń obsługiwany przez ostatnią książkę Ashenden.
  • Malutka maszyna rejestrująca / komputer firmy Thacker (około 200 linii Verilog)
  • Jan Gray Graya XSoC / XR16 (wspomniany już tutaj)

Ponadto, jeśli szukasz kompilatora dla swojego procesora, najbardziej prawdopodobne jest, że dostaniesz go dla 16-bitowego procesora. Kiedyś był kompilator Poderico z języka podobnego do C do Picoblaze, ale został zdjęty z sieci.

Nikolaos Kavvadias
źródło
Jeśli umieścisz pusty wiersz przed listą, twoja odpowiedź zostanie sformatowana znacznie lepiej.
Trygve Laugstøl
1

Możesz rzucić okiem na procesor Xilinx PicoBlaze . Jest to minimalny 8-bitowy wbudowany mikrokontroler, a kod źródłowy powinien być dostępny.

geschema
źródło
1
To wszystko strukturalne VHDL, więc nie jest świetne jako narzędzie dydaktyczne
Martin Thompson
0

Za późno jednak udzielam krótkiej odpowiedzi.

Jest kurs o nazwie od Nand2Tetris z University of Jerusalem, ten kurs jest również obecny na coursera, zbudowałem komputer, który stworzyli w tym kursie. Zaimplementowałem język zgodnie ze schematem, aby móc zobaczyć, jak komputer działa w najmniejszym stopniu. I udało mi się, symulator, który stworzyli w Javie, nie może zrobić wszystkiego, co chciałem zobaczyć.

https://github.com/alinsoar/little-computer

Alinsoar
źródło