@echo off setlocal rem === Config de base === set DEVICE=GW2AR-LV18QN88C8/I7 set BOARD=tangnano20k set TOP=top_uart_loopback set CST_FILE=%TOP%.cst set SRC_FILE=../src/verilog/%TOP%.v set JSON_FILE=%TOP%.json set PNR_JSON=pnr_%TOP%.json set BITSTREAM=%TOP%.fs rem === Créer le dossier runs si nécessaire === if not exist ../runs ( mkdir ../runs ) cd ../runs echo === Étape 1 : Synthèse avec Yosys === yosys -p "read_verilog %SRC_FILE%; synth_gowin -json %JSON_FILE%" if errorlevel 1 goto error echo === Étape 2 : Placement & Routage avec nextpnr-himbaechel === nextpnr-himbaechel --json %JSON_FILE% --write %PNR_JSON% --device %DEVICE% --vopt cst=../constraints/%CST_FILE% --vopt family=GW2A-18C if errorlevel 1 goto error echo === Étape 3 : Packing avec gowin_pack === gowin_pack -d %DEVICE% -o %BITSTREAM% %PNR_JSON% if errorlevel 1 goto error echo === Étape 4 : Flash avec openFPGALoader === openFPGALoader -b %BOARD% %BITSTREAM% if errorlevel 1 goto error echo === ✅ Compilation et flash réussis === goto end :error echo === ❌ Une erreur est survenue === :end endlocal pause