Commit | Line | Data |
---|---|---|
629d050f IS |
1 | # \r |
2 | # Report generation script generated by Vivado\r | |
3 | # \r | |
4 | \r | |
5 | proc create_report { reportName command } {\r | |
6 | set status "."\r | |
7 | append status $reportName ".fail"\r | |
8 | if { [file exists $status] } {\r | |
9 | eval file delete [glob $status]\r | |
10 | }\r | |
11 | send_msg_id runtcl-4 info "Executing : $command"\r | |
12 | set retval [eval catch { $command } msg]\r | |
13 | if { $retval != 0 } {\r | |
14 | set fp [open $status w]\r | |
15 | close $fp\r | |
16 | send_msg_id runtcl-5 warning "$msg"\r | |
17 | }\r | |
18 | }\r | |
19 | proc start_step { step } {\r | |
20 | set stopFile ".stop.rst"\r | |
21 | if {[file isfile .stop.rst]} {\r | |
22 | puts ""\r | |
23 | puts "*** Halting run - EA reset detected ***"\r | |
24 | puts ""\r | |
25 | puts ""\r | |
26 | return -code error\r | |
27 | }\r | |
28 | set beginFile ".$step.begin.rst"\r | |
29 | set platform "$::tcl_platform(platform)"\r | |
30 | set user "$::tcl_platform(user)"\r | |
31 | set pid [pid]\r | |
32 | set host ""\r | |
33 | if { [string equal $platform unix] } {\r | |
34 | if { [info exist ::env(HOSTNAME)] } {\r | |
35 | set host $::env(HOSTNAME)\r | |
36 | }\r | |
37 | } else {\r | |
38 | if { [info exist ::env(COMPUTERNAME)] } {\r | |
39 | set host $::env(COMPUTERNAME)\r | |
40 | }\r | |
41 | }\r | |
42 | set ch [open $beginFile w]\r | |
43 | puts $ch "<?xml version=\"1.0\"?>"\r | |
44 | puts $ch "<ProcessHandle Version=\"1\" Minor=\"0\">"\r | |
45 | puts $ch " <Process Command=\".planAhead.\" Owner=\"$user\" Host=\"$host\" Pid=\"$pid\">"\r | |
46 | puts $ch " </Process>"\r | |
47 | puts $ch "</ProcessHandle>"\r | |
48 | close $ch\r | |
49 | }\r | |
50 | \r | |
51 | proc end_step { step } {\r | |
52 | set endFile ".$step.end.rst"\r | |
53 | set ch [open $endFile w]\r | |
54 | close $ch\r | |
55 | }\r | |
56 | \r | |
57 | proc step_failed { step } {\r | |
58 | set endFile ".$step.error.rst"\r | |
59 | set ch [open $endFile w]\r | |
60 | close $ch\r | |
61 | }\r | |
62 | \r | |
63 | \r | |
64 | start_step init_design\r | |
65 | set ACTIVE_STEP init_design\r | |
66 | set rc [catch {\r | |
67 | create_msg_db init_design.pb\r | |
68 | set_param chipscope.maxJobs 6\r | |
69 | create_project -in_memory -part xc7z007sclg225-1\r | |
70 | set_property board_part_repo_paths {C:/Users/kremlin/AppData/Roaming/Xilinx/Vivado/2019.1/xhub/board_store} [current_project]\r | |
71 | set_property board_part em.avnet.com:minized:part0:1.2 [current_project]\r | |
72 | set_property design_mode GateLvl [current_fileset]\r | |
73 | set_param project.singleFileAddWarning.threshold 0\r | |
74 | set_property webtalk.parent_dir S:/vivado-projects/esdi/esdi/esdi.cache/wt [current_project]\r | |
75 | set_property parent.project_path S:/vivado-projects/esdi/esdi/esdi.xpr [current_project]\r | |
76 | set_property ip_output_repo S:/vivado-projects/esdi/esdi/esdi.cache/ip [current_project]\r | |
77 | set_property ip_cache_permissions {read write} [current_project]\r | |
78 | add_files -quiet S:/vivado-projects/esdi/esdi/esdi.runs/synth_1/esdi_ctl_phy.dcp\r | |
79 | link_design -top esdi_ctl_phy -part xc7z007sclg225-1\r | |
80 | close_msg_db -file init_design.pb\r | |
81 | } RESULT]\r | |
82 | if {$rc} {\r | |
83 | step_failed init_design\r | |
84 | return -code error $RESULT\r | |
85 | } else {\r | |
86 | end_step init_design\r | |
87 | unset ACTIVE_STEP \r | |
88 | }\r | |
89 | \r | |
90 | start_step opt_design\r | |
91 | set ACTIVE_STEP opt_design\r | |
92 | set rc [catch {\r | |
93 | create_msg_db opt_design.pb\r | |
94 | opt_design \r | |
95 | write_checkpoint -force esdi_ctl_phy_opt.dcp\r | |
96 | create_report "impl_1_opt_report_drc_0" "report_drc -file esdi_ctl_phy_drc_opted.rpt -pb esdi_ctl_phy_drc_opted.pb -rpx esdi_ctl_phy_drc_opted.rpx"\r | |
97 | close_msg_db -file opt_design.pb\r | |
98 | } RESULT]\r | |
99 | if {$rc} {\r | |
100 | step_failed opt_design\r | |
101 | return -code error $RESULT\r | |
102 | } else {\r | |
103 | end_step opt_design\r | |
104 | unset ACTIVE_STEP \r | |
105 | }\r | |
106 | \r | |
107 | start_step place_design\r | |
108 | set ACTIVE_STEP place_design\r | |
109 | set rc [catch {\r | |
110 | create_msg_db place_design.pb\r | |
111 | if { [llength [get_debug_cores -quiet] ] > 0 } { \r | |
112 | implement_debug_core \r | |
113 | } \r | |
114 | place_design \r | |
115 | write_checkpoint -force esdi_ctl_phy_placed.dcp\r | |
116 | create_report "impl_1_place_report_io_0" "report_io -file esdi_ctl_phy_io_placed.rpt"\r | |
117 | create_report "impl_1_place_report_utilization_0" "report_utilization -file esdi_ctl_phy_utilization_placed.rpt -pb esdi_ctl_phy_utilization_placed.pb"\r | |
118 | create_report "impl_1_place_report_control_sets_0" "report_control_sets -verbose -file esdi_ctl_phy_control_sets_placed.rpt"\r | |
119 | close_msg_db -file place_design.pb\r | |
120 | } RESULT]\r | |
121 | if {$rc} {\r | |
122 | step_failed place_design\r | |
123 | return -code error $RESULT\r | |
124 | } else {\r | |
125 | end_step place_design\r | |
126 | unset ACTIVE_STEP \r | |
127 | }\r | |
128 | \r | |
129 | start_step route_design\r | |
130 | set ACTIVE_STEP route_design\r | |
131 | set rc [catch {\r | |
132 | create_msg_db route_design.pb\r | |
133 | route_design \r | |
134 | write_checkpoint -force esdi_ctl_phy_routed.dcp\r | |
135 | create_report "impl_1_route_report_drc_0" "report_drc -file esdi_ctl_phy_drc_routed.rpt -pb esdi_ctl_phy_drc_routed.pb -rpx esdi_ctl_phy_drc_routed.rpx"\r | |
136 | create_report "impl_1_route_report_methodology_0" "report_methodology -file esdi_ctl_phy_methodology_drc_routed.rpt -pb esdi_ctl_phy_methodology_drc_routed.pb -rpx esdi_ctl_phy_methodology_drc_routed.rpx"\r | |
137 | create_report "impl_1_route_report_power_0" "report_power -file esdi_ctl_phy_power_routed.rpt -pb esdi_ctl_phy_power_summary_routed.pb -rpx esdi_ctl_phy_power_routed.rpx"\r | |
138 | create_report "impl_1_route_report_route_status_0" "report_route_status -file esdi_ctl_phy_route_status.rpt -pb esdi_ctl_phy_route_status.pb"\r | |
139 | create_report "impl_1_route_report_timing_summary_0" "report_timing_summary -max_paths 10 -file esdi_ctl_phy_timing_summary_routed.rpt -pb esdi_ctl_phy_timing_summary_routed.pb -rpx esdi_ctl_phy_timing_summary_routed.rpx -warn_on_violation "\r | |
140 | create_report "impl_1_route_report_incremental_reuse_0" "report_incremental_reuse -file esdi_ctl_phy_incremental_reuse_routed.rpt"\r | |
141 | create_report "impl_1_route_report_clock_utilization_0" "report_clock_utilization -file esdi_ctl_phy_clock_utilization_routed.rpt"\r | |
142 | create_report "impl_1_route_report_bus_skew_0" "report_bus_skew -warn_on_violation -file esdi_ctl_phy_bus_skew_routed.rpt -pb esdi_ctl_phy_bus_skew_routed.pb -rpx esdi_ctl_phy_bus_skew_routed.rpx"\r | |
143 | close_msg_db -file route_design.pb\r | |
144 | } RESULT]\r | |
145 | if {$rc} {\r | |
146 | write_checkpoint -force esdi_ctl_phy_routed_error.dcp\r | |
147 | step_failed route_design\r | |
148 | return -code error $RESULT\r | |
149 | } else {\r | |
150 | end_step route_design\r | |
151 | unset ACTIVE_STEP \r | |
152 | }\r | |
153 | \r |