| 
									
										
										
										
											2025-05-09 11:39:40 +02:00
										 |  |  | @echo off | 
					
						
							|  |  |  | setlocal | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | rem === Aller à la racine du projet === | 
					
						
							|  |  |  | cd /d %~dp0\.. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | rem === Config de base === | 
					
						
							|  |  |  | set DEVICE=GW2AR-LV18QN88C8/I7 | 
					
						
							|  |  |  | set BOARD=tangnano20k | 
					
						
							| 
									
										
										
										
											2025-05-12 12:15:52 +02:00
										 |  |  | set TOP=top_uart_ultrason_command | 
					
						
							| 
									
										
										
										
											2025-05-09 11:39:40 +02:00
										 |  |  | 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 === | 
					
						
							| 
									
										
										
										
											2025-05-12 12:15:52 +02:00
										 |  |  | 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/fifo.v IP/verilog/uart_tx.v; synth_gowin -top %TOP% -json %JSON_FILE%" | 
					
						
							| 
									
										
										
										
											2025-05-09 11:39:40 +02:00
										 |  |  | 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 |