@echo off setlocal rem === Aller à la racine du projet === cd /d %~dp0\.. rem === Config de base === set DEVICE=GW2AR-LV18QN88C8/I7 set BOARD=tangnano20k set TOP=top_uart_loopback set CST_FILE=%TOP%.cst set JSON_FILE=runs/%TOP%.json set PNR_JSON=runs/pnr_%TOP%.json set BITSTREAM=runs/%TOP%.fs rem === Créer le dossier runs si nécessaire === if not exist runs ( mkdir runs ) echo === Étape 1 : Synthèse avec Yosys === yosys -p "read_verilog -sv src/verilog/%TOP%1.v IP/verilog/other_rx.v IP/verilog/rxuartlite.v IP/verilog/other_tx.v src/verilog/uart_rx.v src/verilog/uart_tx.v; synth_gowin -top %TOP% -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