Hazard3-Doom
Doom na Hazard3 RISC-V CPU-u u ECP5 FPGA-u - i praktično igralište za učenje kako procesor, FPGA logika, memorija, video, firmware i softver rade zajedno.
Hazard3-Doom je mnogo više od Dooma pokrenutog na još jednoj FPGA pločici. To je obrazovni hardversko-softverski ekosustav izgrađen oko open-source Hazard3 RISC-V procesora te ULX3S i ULX4M ECP5 FPGA obitelji.
Isti Hazard3 CPU koji se koristi u Raspberry Pi RP2350
Hazard3 nije jednokratni procesor napravljen samo za ovaj projekt. Raspberry Pi RP2350 mikrokontroler sadrži par open-hardware Hazard3 RISC-V jezgri koje se mogu odabrati umjesto para Arm Cortex-M33 jezgri, a RP2350 pokreće Raspberry Pi Pico 2 obitelj. Hazard3-Doom sintetizira istu open-source Hazard3 procesorsku arhitekturu u ECP5 FPGA-u.
Konfiguracija procesora nije identična: RP2350 i Hazard3-Doom uključuju različite opcionalne Hazard3 značajke i ISA ekstenzije za svoje SoC-ove. Zajedničko podrijetlo CPU-a i RTL čine Hazard3-Doom praktičnim načinom za proučavanje te arhitekture u sustavu koji možete ponovno izgraditi i mijenjati.
Projekt spaja C i Verilog primjere, FPGA dizajne, HDMI video i framebuffer podršku, kontrolere vanjske memorije, pristup SD kartici, UART i JTAG debug, resident boot monitor, host-side alate za prijenos i učitljivu DoomGeneric aplikaciju.
Uključen je i I2C dijagnostički alat temeljen na I2CDriveru tvrtke Excamera Labs. Isti kod pruža i dodatnu Hackaday Supercon SAO značajku.
Hazard3-Doom možete koristiti jednostavno za igranje Dooma na RISC-V soft CPU-u ili dublje istražiti kako se gradi kompletno FPGA računalo: integraciju CPU-a, memorijska sučelja, satove i timing, video, periferije, boot i upload mehanizme te alate za otklanjanje pogrešaka.
Bilo da eksperimentirate s RISC-V-om, učite Verilog ili želite razumjeti što je potrebno da Doom radi na hardveru koji možete pregledati i mijenjati od vrha do dna, Hazard3-Doom je napravljen za istraživanje.
Napomena
Ove stranice opisuju odabranu verziju dokumentacije. Značajke koje se još razvijaju izričito su označene. Detaljne stranice o arhitekturi procesora vezane uz točan snimak izvornog koda Hazard3 naveden u Hazard3 RISC-V procesor.
Važno
Windows buildovi iz izvornog koda koriste WSL
Na Windowsu upute za build i razvoj iz izvornog koda zahtijevaju WSL s
Ubuntuom i Bashom. PowerShell i cmd.exe nisu podržane build ljuske za
skripte repozitorija. Izvorni Windows koristi se samo kada stranica izričito
traži Device Tool u pregledniku, upravljanje USB upravljačkim programima,
prijenos preko COM porta ili priloženi Windows .exe. Put
Pokretanje bez instalacije - ULX3S u pregledniku ne zahtijeva WSL.
Počnite ovdje
O projektu Hazard3-Doom - saznajte što je projekt i što iz njega možete naučiti.
Pokretanje bez instalacije - ULX3S - pokrenite ULX3S iz unaprijed izgrađenih slika u Device Toolu bez FPGA build alata.
Brzi početak iz izvornog koda - instalirajte razvojne alate i iz izvornog koda izgradite FPGA, rezidentni monitor i Doom sliku.
Web alat za uređaj - koristite Device Tool u pregledniku za uobičajeno pokretanje pločice i interaktivne zadatke.
Istražite dalje
Hardverski vodiči - istražite ULX3S i ULX4M hardver koji koristi Hazard3-Doom.
Pinovi pločica i ožičenje - pronađite pinout dijagrame i praktično UART/JTAG ožičenje.
JTAG debugiranje - otklanjajte pogreške u Hazard3 putem OpenOCD/GDB-a ili VisualGDB-a.
I2CDriver HDMI sučelje - skenirajte i interaktivno koristite SAO I2C sabirnicu.
FPGA WebUSB flasher - programirajte ULX3S FPGA izravno putem WebUSB-a.
Hazard3 RISC-V procesor - upoznajte Hazard3 RISC-V procesor, cjevovod, ISA konfiguraciju, sabirnice i arhitekturu za otklanjanje pogrešaka.
Arhitektura sustava - razumijte kako su povezani FPGA, monitor, memorija, HDMI, SD, SAO i ESP32.
APB adresni prostor periferija - pregledajte APB adrese, registre, bitove i samostalne C primjere.
ECP5 timing i seed sweepovi - pokrenite ECP5 sweepove i protumačite timing rezultate.
Hladno pokretanje s micro-SD kartice - podesite samostalno hladno pokretanje s micro-SD kartice.
Tiny Tapeout FPGA buildovi na ULX3S-u - gradite Tiny Tapeout projekte za ULX3S ECP5.
Pregled projekta
Početak rada
Korisnički vodič
Arhitektura
Referenca
- Referenca
- Često postavljana pitanja
- ULX3S pločica nije prepoznata
- Prazan HDMI zaslon
- OpenOCD ne sluša na
localhost:3333 - Web Serial ne prikazuje kompatibilne uređaje, ali Windows vidi COM port. Što prvo pokušati?
- Chrome vidi
ttyUSBna Ubuntuu, ali Web Serial ga ne može otvoriti. Zašto? - Može li javna GitHub Pages stranica učitati console ELF?
- Zašto se drugi Device Tool tab ne može spojiti na UART?
- Može li OpenOCD koristiti WinUSB na ULX3S-u?
- Zašto FPGA WebUSB flasher treba WinUSB na Windowsu?
- Otklanjanje poteškoća
- Windows
fujprogprijavljujeCannot find JTAG cable - WebUSB flasher prijavljuje
USBDevice.open(): Access denied - Zadig prijavljuje
Driver Installation: FAILED (Could not allocate resource) - WebUSB flasher prijavljuje neprepoznat JTAG ID
- WebUSB flasher prijavljuje nepodudaranje cilja FPGA slike
- Web Serial izbornik kaže da nema kompatibilnih uređaja
- Web Serial izbornik se zatvori, ali se UART ipak ne poveže
- Web Serial odabere Linux TTY, ali ga ne može otvoriti
- UART izlaz je čitljiv, ali monitor ignorira naredbe
- WebUSB ne može otvoriti ili preuzeti ULX3S
- Doom upload istječe
- Nema micro-SD kartice, ali hladno pokretanje prijavljuje CMD0 pogrešku
- SD kartica se montira, ali datoteke nisu pronađene
- SD postaje nepouzdan kada radi ESP32 firmware
- SAO scan pronalazi neke uređaje, ali ne i druge
i2c guije prijavljen kao nepoznata naredba- I2C GUI scan pronalazi uređaj, ali je logički trag prazan
- I2C GUI ostaje na HDMI-u nakon izlaska
shellchecknije instaliran- RISC-V GCC lanac alata nije pronađen
c++: fatal error: Killed signal terminated program cc1plus- Workflow prijavljuje da je CMake prestar
ROR: Max frequency for clock '$glbnet$clk_sys': XX.YY MHz (FAIL at 50 MHz)- Uploader firmwarea konzole ostaje na
Loading... - OpenOCD prijavljuje USB timeout ili potpuno nulti JTAG scan u VM-u
- OpenOCD ne vidi ispravan Hazard3 debug modul
- ULX4M-LD prijavljuje
TIMEOUTvanjske memorije - Build se iznenada mijenja zbog submodula
- Povezane poveznice
- Windows
- Doprinos dokumentaciji