forked from tanchou/Verilog
Script pour linux structure
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
@call c:\oss-cad-suite\environment.bat
|
@call c:\oss-cad-suite\environment.bat
|
||||||
@echo off
|
@echo off
|
||||||
if "%1"=="sim" call scripts\simulate.bat
|
if "%1"=="sim" call scripts\windows\simulate.bat
|
||||||
if "%1"=="wave" call scripts\gtkwave.bat
|
if "%1"=="wave" call scripts\windows\gtkwave.bat
|
||||||
if "%1"=="clean" call scripts\clean.bat
|
if "%1"=="clean" call scripts\windows\clean.bat
|
||||||
if "%1"=="build" call scripts\build.bat
|
if "%1"=="build" call scripts\windows\build.bat
|
22
Semaine_5/UART_ULTRASON_COMMANDS/project.sh
Executable file
22
Semaine_5/UART_ULTRASON_COMMANDS/project.sh
Executable file
@@ -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
|
46
Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/build.sh
Executable file
46
Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/build.sh
Executable file
@@ -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 ==="
|
4
Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/clean.sh
Executable file
4
Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/clean.sh
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "=== Nettoyage des fichiers générés ==="
|
||||||
|
rm -rf runs/*
|
5
Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/gtkwave.sh
Executable file
5
Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/gtkwave.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "=== Lancement de GTKWave ==="
|
||||||
|
gtkwave runs/ultrason_commands.vcd
|
||||||
|
echo "=== GTKWave terminé ==="
|
17
Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/simulate.sh
Executable file
17
Semaine_5/UART_ULTRASON_COMMANDS/scripts/linux/simulate.sh
Executable file
@@ -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"
|
Reference in New Issue
Block a user