tranZPUter SW-700 — Guide du Developpeur

English

Guide du Developpeur du tranZPUter SW-700

Ce guide est une presentation detaillee du code source et de l'environnement de developpement du tranZPUter SW-700. Il introduit le VHDL pour les developpeurs non familiers avec le langage, parcourt chaque module source majeur, documente les conceptions CPLD et FPGA, explique l'architecture de cartographie memoire et de commutation CPU, et montre comment compiler le firmware, ajouter le support de nouvelles machines Sharp MZ et deboguer les problemes materiels.
Pour l'architecture materielle, voir la page tranZPUter SW-700. Pour les commandes TZFS, voir le Manuel Utilisateur TZFS.

Introduction au VHDL pour les Programmeurs Non-HDL

Toute la logique numerique du tranZPUter SW-700 est ecrite en VHDL. Contrairement au logiciel, le VHDL ne decrit pas une sequence d'etapes. Il decrit du materiel : des collections de portes logiques, de bascules et de machines d'etat qui fonctionnent toutes simultanement.

ENTITY et ARCHITECTURE
Chaque module VHDL comporte deux parties :
  • ENTITY declare l'interface du module — ses broches d'entree et de sortie.
  • ARCHITECTURE contient l'implementation — les signaux internes, les instanciations de composants et les processus.
entity coreMZ is
    port (
        CLOCK_50   : in  std_logic;
        VZ80_ADDR  : inout std_logic_vector(15 downto 0);
        VGA_R      : out std_logic_vector(3 downto 0)
    );
end entity;

architecture rtl of coreMZ is
    signal PLL_LOCKED : std_logic := '0';
begin
    -- concurrent statements and processes go here
end architecture;

SIGNAUx
Les signaux sont les fils internes d'un module VHDL. Les types les plus courants sont std_logic, std_logic_vector, unsigned et integer.

PROCESS
Un process est un bloc d'instructions VHDL sequentielles qui se reexecute chaque fois qu'un signal de sa liste de sensibilite change. Les processus sont le bloc de construction fondamental de la logique synchrone.
process(SYS_CLK, RESETn)
begin
    if RESETn = '0' then
        MY_REGISTER <= (others => '0');
    elsif rising_edge(SYS_CLK) then
        MY_REGISTER <= NEXT_VALUE;
    end if;
end process;

Arborescence des Sources

L'ensemble du code source est organise sous le depot tranZPUter.

Configuration et build automatises (recommande)

Pour mettre en place l'environnement de developpement sans installer les outils a la main, utilisez le script de configuration automatise pour votre plateforme. Il installe Java (assembleur GLASS) et construit les images Docker Intel Quartus (13.0.1 pour les CPLD MAX7000, 13.1 pour le FPGA Cyclone III v1.2, 17.1 pour le Cyclone IV v1.3 / Fusion), clone le depot avec ses sous-modules (TZFS, zSoft/zOS, zpu), puis construit tout via `./build.sh -t all`.
Script Plateforme Notes
setup_tranZPUter.sh Linux / macOS Java + Docker, construit les images Quartus, clone et construit.
setup_tranZPUter_windows.cmd Windows 10/11 Lanceur a double-clic (Docker Desktop, sans WSL).
setup_tranZPUter_windows_native.ps1 Windows 10/11 PowerShell (winget + Docker Desktop).
chmod +x setup_tranZPUter.sh
./setup_tranZPUter.sh
# reconstruire ensuite une cible : ./build.sh -t cpld|fpga|software|all
Variables d'environnement : `TZPU_REPO_URL`, `TZPU_DIR`, `TZPU_ASSUME_YES=1`, et les surcharges d'images `TZPU_QUARTUS_CPLD_IMAGE` / `_C3_IMAGE` / `_C4_IMAGE`. Les artefacts sont rassembles dans build/output/. La suite de cette section documente la construction manuelle pour ceux qui preferent piloter les outils eux-memes.


Sites de Reference

Resource Link
tranZPUter SW-700 project page /tranzputer-sw-700/
tranZPUter SW-700 User Manual /tranzputer-sw-700-usermanual/
tranZPUter SW-700 Technical Guide /tranzputer-sw-700-technicalguide/