forked from tanchou/Verilog
46 lines
1.3 KiB
Batchfile
46 lines
1.3 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_ultrason_command
|
||
|
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 IP/verilog/ultrasonic_fpga.v IP/verilog/uart_tx_fifo.v IP/verilog/uart_rx_fifo.v IP/verilog/rxuartlite.v IP/verilog/txuartlite.v IP/verilog/fifo.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
|