# Usage from repository root: # vivado -mode batch -source doc/reports/system/tools/collect_report_evidence.tcl set script_dir [file dirname [file normalize [info script]]] set repo_root [file normalize [file join $script_dir ../../../..]] set xpr [file join $repo_root fpga project Loongson_Soc.xpr] set out_dir [file join $repo_root doc reports system evidence vivado] file mkdir $out_dir if {![file exists $xpr]} { puts stderr "ERROR: project not found: $xpr" puts stderr "Run: cd fpga && vivado -mode batch -source create_project.tcl" exit 2 } open_project $xpr set run [get_runs impl_1] if {[get_property PROGRESS $run] ne "100%"} { puts stderr "ERROR: impl_1 is not complete; run fpga/run_impl.tcl first" close_project exit 3 } open_run impl_1 report_timing_summary -delay_type min_max -report_unconstrained -check_timing_verbose \ -max_paths 20 -input_pins -file [file join $out_dir timing_summary_full.rpt] report_utilization -hierarchical -hierarchical_depth 4 \ -file [file join $out_dir utilization_hierarchical.rpt] report_utilization -file [file join $out_dir utilization.rpt] report_power -file [file join $out_dir power.rpt] report_clock_interaction -delay_type min_max -file [file join $out_dir clock_interaction.rpt] report_cdc -details -file [file join $out_dir cdc.rpt] report_drc -file [file join $out_dir drc.rpt] report_methodology -file [file join $out_dir methodology.rpt] report_route_status -file [file join $out_dir route_status.rpt] set fp [open [file join $out_dir revision.txt] w] puts $fp "Evidence generated from implemented design." puts $fp "Vivado version: [version -short]" puts $fp "Project: $xpr" close $fp close_project puts "Report evidence written to: $out_dir" exit 0