forked from tanchou/Verilog
46 lines
1.2 KiB
Batchfile
46 lines
1.2 KiB
Batchfile
@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%.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
|