VICON: Sistema de Visión configurable V1.0
Trabajo Fin de Master Carlos Manuel Gomez Jimenez
Loading...
Searching...
No Matches
run_clean_sim.tcl
Go to the documentation of this file.
1# 1. Cargar cambios del VHDL y reiniciar la simulación
2# Es vital que sea lo primero para que compile los .vhd modificados
3
4# 2. Localizar ruta del archivo
5set proj_dir [get_property DIRECTORY [current_project]]
6set proj_name [get_property NAME [current_project]]
7set archivo_reporte "${proj_dir}/${proj_name}.sim/sim_1/behav/xsim/reporte_final_1.txt"
8
9# 3. Limpieza: Borrar el archivo de log viejo para que no se mezclen resultados
10if {[file exists $archivo_reporte]} {
11 file delete -force $archivo_reporte
12}
13
14relaunch_sim
15
16# 4. Ejecutar la simulación
17run 2 us
18
19# Pausa para que el sistema operativo vuelque los datos al disco
20after 500
21
22puts "\n======================================="
23puts " REPORTE Y MARCADORES"
24puts "=======================================\n"
25
26if {[file exists $archivo_reporte]} {
27 # 3. Borrar marcadores anteriores para no acumular
28 # get_markers devuelve la lista de marcadores en la wave window
29 catch { delete_objects [get_markers] }
30
31 set fp [open $archivo_reporte r]
32 set contenido [read $fp]
33 close $fp
34
35 set lineas [split $contenido "\n"]
36 set i 0
37 foreach linea $lineas {
38 if {[string length [string trim $linea]] > 0} {
39 # Imprimir el mensaje en la consola de Vivado
40 puts $linea
41
42 # 4. Extraer el tiempo entre []
43 if {[regexp {\[(.*?)\]} $linea -> timestamp]} {
44 # ELIMINAR ESPACIOS: Convertimos "160000 ps" en "160000ps"
45 set clean_time [string map {" " ""} $timestamp]
46
47 # Añadir el marcador con nombre único
48 #1 if {[catch { add_wave_marker -time $clean_time -name "M$i" } err]} {
49 # Si falla, nos avisa por qué
50 #1 puts "No se pudo poner marcador en $clean_time: $err"
51 #1 }
52 #1 incr i
53 }
54 }
55 }
56
57 # 5. Ajustar el zoom automáticamente para ver todos los marcadores
58 catch { gui_zoom_full }
59
60} else {
61 puts "ERROR: No se encontró el archivo $archivo_reporte"
62}
63puts "\n======================================="