Hazard3-Doom

Pregled projekta

  • O projektu Hazard3-Doom
    • Što se može naučiti
    • Zašto Doom?
    • Izvan učionice
    • ULX4M i ekosustav Compute Module nosivih pločica
    • Vanjski ULX4M resursi

Početak rada

  • Početak rada
    • Pokretanje bez instalacije - ULX3S
      • Što je potrebno
      • 1. Preuzmite unaprijed izgrađene datoteke
        • Nedavni GitHub Actions buildovi
      • 2. Otvorite Device Tool
      • 3. Programirajte FPGA SRAM
      • 4. Spojite UART
      • 5. Prenesite Doom H3IMG sliku
      • 6. Prenesite svoj Doom IWAD
      • 7. Provjerite pokretanje Dooma
      • Što ovaj put ne instalira
      • ULX3S 12F
      • ULX4M-LD
      • Povezana dokumentacija
    • Brzi početak iz izvornog koda
      • Cilj
      • Zahtjevi sustava
      • Instalacija potrebnog softvera
      • 1. Klonirajte repozitorij
      • 2. Izgradite potpuni ULX3S cilj
      • 3. Programirajte FPGA za probno pokretanje
      • Neobavezno: učitajte trenutačni monitor ELF kroz OpenOCD
      • 4. Učitajte Doom putem UART-a
      • 5. Provjerite pokretanje
      • Brzi postupak za ULX4M-LD
      • Sljedeći koraci
      • Implementacijske reference
    • Preduvjeti
      • Okruženje računala domaćina
      • Provjera preduvjeta računala
      • Potrebni alati
      • FPGA alatni lanac
      • RISC-V GCC alatni lanac
      • Python ovisnost za alat za prijenos
      • Pristup serijskom portu na Linuxu
      • IWAD
      • Povezane poveznice
    • Savjeti za virtualne strojeve
      • VMware Tools
      • Dijeljene mape
      • USB passthrough za FPGA i UART uređaje
    • Izgradnja Hazard3-Dooma
      • Potpune izgradnje za pločice
      • Samo rezidentni monitor
      • Samo povezana Doom slika
      • Ispitivanje druge Hazard3 kopije
      • Priprema i provjera podmodula
      • Odabir seeda
      • Vlasništvo nad izgradnjom
    • Programiranje i trajno pokretanje
      • Privremeno učitavanje FPGA-a
      • Trajna FPGA konfiguracija
      • ULX4M-LD: privremeno učitavanje FPGA-a
      • ULX4M-LD: trajno DFU programiranje
      • ULX4M-LD kvalificirana kontrolna slika
      • Reference implementacije
    • Tiny Tapeout FPGA buildovi na ULX3S-u
      • Što rade dva repozitorija
      • Potrebna struktura Tiny Tapeout projekta
      • GitHub Actions workflow
        • Zašto se koristi recursive checkout
      • Ulazi actiona
      • Što action pokreće
      • Unutar tt_fpga.py
      • Ponašanje ULX3S wrappera
      • Pokretanje istog ULX3S toka lokalno
      • Programiranje generiranog bitstreama
      • Preuzimanje i provjera GitHub artifacta
      • Otklanjanje pogrešaka
      • Povezane poveznice

Hardver

  • Hardverski vodiči
    • ULX3S hardverski vodič
      • Pregled i varijante pločice
        • Što je ULX3S
        • FPGA gustoća nije PCB revizija
        • Disciplina revizija
      • FPGA, taktovi i I/O domene
        • ECP5 obitelj
        • 25 MHz oscilator
        • SDRAM i timing
        • Zatvaranje timinga ovisi o cilju
        • I/O standardi
      • Vanjska memorija: SDR SDRAM
        • Put kontrolera
        • Memorijski profili
        • EBR nije SDRAM
        • Kvalifikacija
      • FPGA konfiguracija, flash i boot putovi
        • Volatilna konfiguracija
        • Trajni SPI flash
        • Različite uloge US1 i US2
        • DFU tok korisničke slike
        • Runtime učitavanje firmwarea
      • Video, micro-SD i runtime pohrana
        • GPDI video
        • HDMI zasloni i primjer kućišta
        • micro-SD pohrana
        • Dijeljeni SD s ESP32
        • Proširenja za zvuk i zaslon
      • USB, JTAG, UART, GPIO i ESP32 sučelja
        • US1 FT231X put
        • Vanjski JTAG
        • Hazard3-Doom UART
        • J1/J2 GPIO
        • Dijeljenje s ESP32
        • Ostala sučelja pločice
      • Pin ograničenja, sheme i PCB revizije
        • Projektni izvori ograničenja
        • Upstream sheme po reviziji
        • Oprez s numeriranjem headera
        • Disciplina revizija
      • Izvorni dizajn i dodatna literatura
        • Glavni ULX3S izvori
        • PDF sheme
        • Hazard3-Doom izvori
        • Kako postupati s proturječnim izvorima
        • Povezana Hazard3-Doom dokumentacija
      • Koristan mentalni model
    • ULX4M hardverski vodič
      • Pregled i varijante pločice
        • Što je ULX4M?
        • Objavljene specifikacije ovise o reviziji
        • Sažetak Hazard3-Doom meta
        • Resursi pločice
        • Praćenje memorijske transakcije
      • FPGA, satovi i I/O domene
        • Referentni sat od 25 MHz
        • ULX4M-LS
        • Zašto su clock domene važne
        • I/O standardi
      • Vanjska memorija: SDRAM i DDR3
        • ULX4M-LS: nativni SDR SDRAM
        • ULX4M-LD: LiteDRAM DDR3
        • Podržane DDR3 obitelji profila
        • Trenutačno generirani profil
        • Regeneriranje za ugrađeni RAM
        • Geometrija i identifikacija
        • DDR3 kvalifikacija
        • Električko sučelje
        • Vanjske reference
      • Konfiguracija, SPI flash, USB DFU i JTAG
        • Tri odvojena sloja
        • Organizacija flasha
        • USB DFU
        • JTAG
        • Testiranje u SRAM-u ili flashu
      • Video i izmjenjiva pohrana
        • GPDI / HDMI-stil video
        • micro-SD
        • Uloge pohrane
      • Vanjska sučelja i proširenje
        • Ethernet
        • CSI/DSI i SerDes
        • GPIO, tipke, DIP i LED
        • UART i JTAG
        • Napajanje
        • Pretpostavke o napajanju i nosećoj pločici
      • Pin ograničenja, sheme i hardverske revizije
        • Od mreže na shemi do Verilog porta
        • Hazard3-Doom datoteke ograničenja
        • Razlike među izvorima također su podatak
        • Korištenje lokalne kopije sheme
        • Kontrolni popis prije promjene pina
        • Vanjski ULX4M izvori
      • Izvorni dizajn i dodatna literatura
        • Glavni ULX4M izvori
        • ULX4M sheme
        • Hazard3-Doom izvori
        • Kako postupati s proturječnim izvorima
        • Povezana Hazard3-Doom dokumentacija
      • Koristan mentalni model
    • Zašto hardverski vodič?

Korisnički vodič

  • Korisnički vodič
    • Osnovni rad
      • Vodič za izgradnju
        • Uobičajene izgradnje za pločice
        • Verzije alata i reproducibilnost
        • Skripte za izgradnju i napredni postupci
      • Rezidentni monitor
        • Glavne Doom naredbe
        • Mogućnost Web Serial snimke zaslona
        • SAO / I2C HDMI dijagnostika
        • Povratak iz Dooma
        • Izgradnja monitora
      • Pokretanje Dooma
        • Učitavanje putem UART-a
        • Kontrole
        • Video put
        • Web Serial snimka zaslona
        • Zvuk
        • Reference implementacije
      • Rad DFU bootloadera i oporavak
        • Nemojte miješati ove tri komponente
        • Kada je zamjena bootloadera stvarno opravdana
        • Normalan rad
        • Rijetka zamjena i oporavak bootloadera
        • Napomena o zaštiti bootloadera ULX3S od pisanja
        • Izvori
        • Reference implementacije
      • Hladno pokretanje s micro-SD kartice
        • Sadržaj kartice
        • Podrška datotečnom sustavu
        • Slijed hladnog pokretanja
        • Dijagnostika monitora
        • Referenca micro-SD priključka
        • Dijeljeni ESP32/FPGA SD pinovi
    • Alati u pregledniku
      • Web alat za uređaj
        • Pregled prijenosnih putova
        • Zahtjevi preglednika
        • Serijska veza
        • Učitavanje i programiranje
        • Vlasništvo UART-a tijekom binarnog prijenosa
        • UART terminal i kontrole
        • Preporučeni slijed za pokretanje
        • Granice podataka i trajnosti
        • Povezana dokumentacija
        • Vanjske reference
      • Web Serial konzola i HDMI snimka zaslona
        • Datoteke web-aplikacije
        • Zahtjevi za preglednik i posluživanje
        • Vlasništvo UART-a i dvostruke Device Tool stranice
        • Pregled snimke zaslona
        • Otkrivanje sposobnosti
        • Kada se sposobnost ponovno provjerava
        • UART usmjeravanje naredbi i tipka H
        • H3SNIP1 protokol na vezi
        • Binarni payload
        • Trenutačni načini izvora
        • Format RGB332 palete
        • Vrijeme Doom snimanja
        • Vrijeme i pakiranje I2CDriver snimke
        • Prijamni put u pregledniku
        • Rekonstrukcija HDMI rastera
        • Naziv i lokalnost preuzimanja
        • Trošak UART prijenosa
        • Timeouti i obrada pogrešaka
        • Kompatibilnost i verzioniranje
        • Lokacije implementacije
        • Sigurnost i privatnost
        • Upotreba
      • FPGA WebUSB flasher
        • Zahtjevi
        • USB postavljanje ovisno o hostu
        • Vlasništvo WebUSB-a i OpenOCD-a
        • Kompatibilnost Windows USB upravljačkih programa
        • Linux i Ubuntu USB pristup
        • macOS USB pristup
        • Programiranje .bit datoteke
        • Identifikacija cilja i sigurnosne provjere
        • Kako radi programiranje .bit datoteke
        • Unaprijed generirane SVF datoteke
        • JTAG transport
        • Kontrole zapisa flashera
        • Otklanjanje poteškoća
        • Trajna konfiguracija
    • Hardver i periferije
      • Pinovi pločica i ožičenje
        • ULX3S
        • ULX4M-LD na Waveshare CM4 carrieru
        • Generiranje prilagođenih pinout dijagrama
        • Prije spajanja vanjskog hardvera
        • Vanjske reference
      • Podrška za SAO / I2C
        • Signali priključka
        • Hazard3 APB baza
        • Naredbe monitora
        • HDMI I2CDriver sučelje
        • Dijeljenje s ESP32
        • Električna napomena
      • I2CDriver HDMI sučelje
        • Pokretanje sučelja
        • Kontrole
        • Heksadecimalni upiti
        • Toplinska karta adresa
        • Dnevnik transakcija
        • Logički trag
        • Stanje pasivnog snimanja
        • Oporavak sabirnice
        • HDMI prikaz
        • Web Serial snimka zaslona
        • Tijek izgradnje i ispitivanja
        • Odnos prema izvornom I2CDriveru
    • Otklanjanje pogrešaka
      • JTAG debugiranje
        • OpenOCD i GDB
        • Ugrađeni ULX3S FT231X
        • ULX3S s vanjskim Tigardom
        • Debugiranje ugrađenog ULX3S ESP32 s Tigardom
        • ULX4M-LD s Tigardom
        • VisualGDB
        • Rješavanje problema
        • Vanjske reference

Arhitektura

  • Arhitektura
    • Hazard3 RISC-V procesor
      • Veza s Raspberry Pi RP2350
      • Upstream Hazard3 dokumentacija
      • Snimak izvornog koda koji ovaj projekt koristi
      • Što je upstream Hazard3?
      • Što je prilagođeno za Hazard3-Doom?
      • Stvarna ULX3S konfiguracija procesora
      • Put učenja
        • Pregled procesora
        • Trostupanjski pipeline
        • ISA i konfiguracija
        • Memorija i sabirničko sučelje
        • Trapovi, prekidi i CSR registri
        • RISC-V arhitektura za debugiranje
        • Upstream Hazard3 i prilagodbe projekta
        • Vođeni obilazak izvornog koda
    • Arhitektura sustava
      • Glavne komponente
      • Granica CPU-a i SoC-a
      • Putovi pokretanja
        • Razvojno pokretanje
        • Samostalno pokretanje
      • APB periferije
    • Memorijska mapa
      • APB prostor perifernih uredjaja
      • Interni SRAM
      • SDRAM profil od 64 MiB
      • SDRAM profil od 32 MiB
    • Video pipeline
      • Pipeline
      • Geometrija izlaza
      • Zašto indeksirana boja?
      • Video registri
      • Web Serial put snimke zaslona
      • Video testni uzorak
      • Korisnici video puta koji nisu Doom
    • Raspored repozitorija i vlasništvo
      • Stablo repozitorija
      • Tri sloja vlasništva
      • Snimak izvornog koda Hazard3
      • Kako klasificirati promjenu
      • Podmoduli

Referenca

  • Referenca
    • Referenca naredbi monitora
      • Kvalifikacija vanjske memorije
      • Pokretanje i Doom
      • SAO / I2C
      • Interaktivne HDMI I2C kontrole
      • Rezervirani upravljački bajtovi Web Seriala
    • Referenca skripti
      • Potpuni buildovi pločica
      • Pomoćni alati za build monitora i bitstreama
      • Pomoćni alati za Doom i Supercon build
      • Placement i routed sweepovi seedova
      • Inicijalizacija submodula i provjere lokalnog stanja
      • Pregled forkova i grana
      • Programiranje i OpenOCD
      • UART upravljanje
      • GDB pomoćni alati
      • CoreMark i analiza ELF-a
      • Higijena repozitorija i generirani inventar
      • VisualGDB i provjera Windows toolchaina
      • Povezane poveznice
    • ECP5 timing i seed sweepovi
      • Zašto su seedovi važni
      • Što znači timing PASS
      • Kvalificirana ULX4M-LD kontrolna točka 40/60 MHz
      • Čuvanje ULX4M-LD bitstreama za hardverski test
      • Lokalni sweep
      • GitHub Actions sweep
        • Parametri workflowa
        • Zašto dva seeda po GitHub jobu
      • Arhitektura jobova
        • prepare: zamrzavanje eksperimenta
        • route: neovisni runneri
        • watch: live timing monitor
        • summarize: konačni rezultat
      • Timeouti i dugi seedovi
      • Strategija odabira parametara
      • Tumačenje i reproducibilnost
      • Kontrolni popis reproducibilnosti
      • Savjeti za razvoj i česte zamke
      • Povezane datoteke
      • Vanjske reference
    • Profili pločica
      • Zadane nextpnr postavke routanja
      • Trenutačna FPGA provjera
      • Glavne baze ULX3S periferije
    • APB adresni prostor periferija
      • APB prozori dekodera
      • Zajednički MMIO pristup
      • RISC-V timer - 0x40000000
      • UART - 0x40004000
      • GPIO - 0x40008000
      • SAO I2C/GPIO - 0x40009000
      • micro-SD SPI - 0x4000A000
      • HDMI/video - 0x4000C000
      • Samostalni APB primjeri
        • Izgradnja primjera
        • Pokretanje preko OpenOCD/GDB
      • Izvorne datoteke koje su izvor istine
    • Popis slika
      • Pločice i hardver
      • FPGA izgradnja
      • SD kartica
      • JTAG
      • WebUSB alati i USB upravljački programi
  • Č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 ttyUSB na 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 fujprog prijavljuje Cannot 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 gui je prijavljen kao nepoznata naredba
    • I2C GUI scan pronalazi uređaj, ali je logički trag prazan
    • I2C GUI ostaje na HDMI-u nakon izlaska
    • shellcheck nije 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 TIMEOUT vanjske memorije
    • Build se iznenada mijenja zbog submodula
    • Povezane poveznice
  • Doprinos dokumentaciji
    • Lokalni build dokumentacije
    • Pravila dokumentacije
    • Objavljivanje na Read the Docs
Hazard3-Doom
  • Referenca
  • Popis slika
  • Edit on GitHub

Popis slika

Ovaj indeks okuplja glavne slike dostupne u hrvatskoj dokumentaciji projekta Hazard3-Doom. Ponovljena uporaba iste slike navedena je samo jednom.

Pločice i hardver

  • Raspored pinova ULX3S

  • Hazard3-Doom UART pinout na ULX3S-u

  • Raspored pinova ULX4M-LD

FPGA izgradnja

  • Paralelni nextpnr-ecp5 procesi

SD kartica

  • Sadržaj HAZARD3-SD kartice

  • HAZARD3-SD volumen u Windowsima

JTAG

  • Vanjski J4 JTAG pinout na ULX3S-u

WebUSB alati i USB upravljački programi

  • Objavljene ULX3S unaprijed izgrađene datoteke

  • ULX3S GitHub Actions artifacti

  • ULX3S programiranje FPGA-a bez instalacije

  • ULX3S H3IMG prijenos bez instalacije

  • ULX3S IWAD prijenos bez instalacije

  • ULX3S pokretanje Dooma bez instalacije

  • Hazard3-Doom FPGA WebUSB programator

  • Dijagnostika odbijenog WebUSB pristupa

  • Zadig odabir FTDI prema WinUSB

  • Vraćanje FTDI upravljačkog programa u sustavu Windows

  • Chrome indikator nadogradnje na čekanju

Previous Next

© Copyright 2026, Hazard3-Doom contributors.

Built with Sphinx using a theme provided by Read the Docs.