From abdc824c6db89099277b8c240fbb0b639b0b5ca4 Mon Sep 17 00:00:00 2001 From: tanchou Date: Thu, 15 May 2025 09:23:21 +0200 Subject: [PATCH] Script pour linux structure --- Semaine_5/UART_ULTRASON_COMMANDS/project.bat | 8 ++-- Semaine_5/UART_ULTRASON_COMMANDS/project.sh | 22 +++++++++ .../scripts/linux/build.sh | 46 +++++++++++++++++++ .../scripts/linux/clean.sh | 4 ++ .../scripts/linux/gtkwave.sh | 5 ++ .../scripts/linux/simulate.sh | 17 +++++++ .../scripts/{ => windows}/build.bat | 0 .../scripts/{ => windows}/clean.bat | 0 .../scripts/{ => windows}/gtkwave.bat | 0 .../scripts/{ => windows}/simulate.bat | 0 10 files changed, 98 insertions(+), 4 deletions(-) create mode 100755 Semaine_5/UART_ULTRASON_COMMANDS/project.sh create mode 100755 Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/build.sh create mode 100755 Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/clean.sh create mode 100755 Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/gtkwave.sh create mode 100755 Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/simulate.sh rename Semaine_5/UART_ULTRASON_COMMANDS/scripts/{ => windows}/build.bat (100%) rename Semaine_5/UART_ULTRASON_COMMANDS/scripts/{ => windows}/clean.bat (100%) rename Semaine_5/UART_ULTRASON_COMMANDS/scripts/{ => windows}/gtkwave.bat (100%) rename Semaine_5/UART_ULTRASON_COMMANDS/scripts/{ => windows}/simulate.bat (100%) diff --git a/Semaine_5/UART_ULTRASON_COMMANDS/project.bat b/Semaine_5/UART_ULTRASON_COMMANDS/project.bat index 6998748..c087898 100644 --- a/Semaine_5/UART_ULTRASON_COMMANDS/project.bat +++ b/Semaine_5/UART_ULTRASON_COMMANDS/project.bat @@ -1,6 +1,6 @@ @call c:\oss-cad-suite\environment.bat @echo off -if "%1"=="sim" call scripts\simulate.bat -if "%1"=="wave" call scripts\gtkwave.bat -if "%1"=="clean" call scripts\clean.bat -if "%1"=="build" call scripts\build.bat +if "%1"=="sim" call scripts\windows\simulate.bat +if "%1"=="wave" call scripts\windows\gtkwave.bat +if "%1"=="clean" call scripts\windows\clean.bat +if "%1"=="build" call scripts\windows\build.bat \ No newline at end of file diff --git a/Semaine_5/UART_ULTRASON_COMMANDS/project.sh b/Semaine_5/UART_ULTRASON_COMMANDS/project.sh new file mode 100755 index 0000000..7c0497b --- /dev/null +++ b/Semaine_5/UART_ULTRASON_COMMANDS/project.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Charger l'environnement OSS CAD Suite +source /home/louis/oss-cad-suite/environment + +case "$1" in + sim) + bash scripts/linux/simulate.sh + ;; + wave) + bash scripts/linux/gtkwave.sh + ;; + clean) + bash scripts/linux/clean.sh + ;; + build) + bash scripts/linux/build.sh + ;; + *) + echo "Usage: $0 {sim|wave|clean|build}" + ;; +esac diff --git a/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/build.sh b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/build.sh new file mode 100755 index 0000000..3c59fe2 --- /dev/null +++ b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/build.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# Aller à la racine du projet +cd "$(dirname "$0")/../.." || exit 1 + +# Config de base +DEVICE="GW2AR-LV18QN88C8/I7" +BOARD="tangnano20k" +TOP="top_uart_ultrason_command" +CST_FILE="$TOP.cst" +JSON_FILE="runs/$TOP.json" +PNR_JSON="runs/pnr_$TOP.json" +BITSTREAM="runs/$TOP.fs" + +# Créer le dossier runs si nécessaire +mkdir -p 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/fifo.v IP/verilog/uart_tx.v; synth_gowin -top $TOP -json $JSON_FILE" +if [ $? -ne 0 ]; then + echo "=== Erreur lors de la synthèse ===" + exit 1 +fi + +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 [ $? -ne 0 ]; then + echo "=== Erreur lors du placement/routage ===" + exit 1 +fi + +echo "=== Étape 3 : Packing avec gowin_pack ===" +gowin_pack -d "$DEVICE" -o "$BITSTREAM" "$PNR_JSON" +if [ $? -ne 0 ]; then + echo "=== Erreur lors du packing ===" + exit 1 +fi + +echo "=== Étape 4 : Flash avec openFPGALoader ===" +openFPGALoader -b "$BOARD" "$BITSTREAM" +if [ $? -ne 0 ]; then + echo "=== Erreur lors du flash ===" + exit 1 +fi + +echo "=== Compilation et flash réussis ===" diff --git a/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/clean.sh b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/clean.sh new file mode 100755 index 0000000..a505cb7 --- /dev/null +++ b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/clean.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +echo "=== Nettoyage des fichiers générés ===" +rm -rf runs/* diff --git a/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/gtkwave.sh b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/gtkwave.sh new file mode 100755 index 0000000..3c97f71 --- /dev/null +++ b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/gtkwave.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +echo "=== Lancement de GTKWave ===" +gtkwave runs/ultrason_commands.vcd +echo "=== GTKWave terminé ===" \ No newline at end of file diff --git a/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/simulate.sh b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/simulate.sh new file mode 100755 index 0000000..72e0421 --- /dev/null +++ b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/simulate.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +echo "=== Simulation avec Icarus Verilog ===" + +OUT="runs/sim.vvp" +TOP="tb_ultrason_commands" +DIRS=("src/verilog" "tests/verilog" "IP/verilog") + +FILES=() +for dir in "${DIRS[@]}"; do + for file in "$dir"/*.v; do + FILES+=("$file") + done +done + +iverilog -g2012 -o "$OUT" -s "$TOP" "${FILES[@]}" +vvp "$OUT" diff --git a/Semaine_5/UART_ULTRASON_COMMANDS/scripts/build.bat b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/windows/build.bat similarity index 100% rename from Semaine_5/UART_ULTRASON_COMMANDS/scripts/build.bat rename to Semaine_5/UART_ULTRASON_COMMANDS/scripts/windows/build.bat diff --git a/Semaine_5/UART_ULTRASON_COMMANDS/scripts/clean.bat b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/windows/clean.bat similarity index 100% rename from Semaine_5/UART_ULTRASON_COMMANDS/scripts/clean.bat rename to Semaine_5/UART_ULTRASON_COMMANDS/scripts/windows/clean.bat diff --git a/Semaine_5/UART_ULTRASON_COMMANDS/scripts/gtkwave.bat b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/windows/gtkwave.bat similarity index 100% rename from Semaine_5/UART_ULTRASON_COMMANDS/scripts/gtkwave.bat rename to Semaine_5/UART_ULTRASON_COMMANDS/scripts/windows/gtkwave.bat diff --git a/Semaine_5/UART_ULTRASON_COMMANDS/scripts/simulate.bat b/Semaine_5/UART_ULTRASON_COMMANDS/scripts/windows/simulate.bat similarity index 100% rename from Semaine_5/UART_ULTRASON_COMMANDS/scripts/simulate.bat rename to Semaine_5/UART_ULTRASON_COMMANDS/scripts/windows/simulate.bat