OpenCores
URL https://opencores.org/ocsvn/w11/w11/trunk

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.7/] [rtl/] [make_viv/] [viv_tools_build.tcl] - Blame information for rev 36

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 29 wfjm
# $Id: viv_tools_build.tcl 649 2015-02-21 21:10:16Z mueller $
2
#
3
# Copyright 2015- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
4
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
5
#
6
# Revision History:
7
# Date         Rev Version  Comment
8
# 2015-02-21   649   1.1    add 2014.4 specific setups
9
# 2015-02-14   646   1.0    Initial version
10
#
11
 
12
#
13
# --------------------------------------------------------------------
14
#
15
proc rvtb_trace_cmd {cmd} {
16
  puts "# $cmd"
17
  eval $cmd
18
  return ""
19
}
20
 
21
#
22
# --------------------------------------------------------------------
23
#
24
proc rvtb_locate_setup_file {stem} {
25
  set name "${stem}_setup.tcl"
26
  if {[file readable $name]} {return $name}
27
  set name "$../{stem}_setup.tcl"
28
  if {[file readable $name]} {return $name}
29
  return ""
30
}
31
 
32
#
33
# --------------------------------------------------------------------
34
#
35
proc rvtb_mv_file {src dst} {
36
  if {[file readable $src]} {
37
    exec mv $src $dst
38
  } else {
39
    puts "rvtb_mv_file-W: file '$src' not existing"
40
  }
41
  return ""
42
}
43
 
44
#
45
# --------------------------------------------------------------------
46
#
47
proc rvtb_cp_file {src dst} {
48
  if {[file readable $src]} {
49
    exec cp -p $src $dst
50
  } else {
51
    puts "rvtb_cp_file-W: file '$src' not existing"
52
  }
53
  return ""
54
}
55
 
56
#
57
# --------------------------------------------------------------------
58
#
59
proc rvtb_build_check {step} {
60
  get_msg_config -rules
61
  return ""
62
}
63
 
64
#
65
# --------------------------------------------------------------------
66
#
67
proc rvtb_default_build {stem step} {
68
 
69
  # general setups
70
  switch [version -short] {
71
    "2014.4" {
72
      # suppress nonsense "cannot add Board Part xilinx.com:kc705..." messages
73
      # set here to avoid messages during create_project
74
      set_msg_config -suppress -id {Board 49-26}
75
    }
76
  }
77
 
78
  # read setup
79
  set setup_file [rvtb_locate_setup_file $stem]
80
  if {$setup_file ne ""} {source  -notrace $setup_file}
81
 
82
  # Create project
83
  rvtb_trace_cmd "create_project project_mflow ./project_mflow"
84
 
85
  # Setup project properties
86
  set obj [get_projects project_mflow]
87
  set_property "default_lib"         "xil_defaultlib"    $obj
88
  set_property "part"                $::rvtb_part        $obj
89
  set_property "simulator_language"  "Mixed"             $obj
90
  set_property "target_language"     "VHDL"              $obj
91
 
92
  # version dependent setups
93
  switch [version -short] {
94
    "2014.4" {
95
      # suppress nonsense "cannot add Board Part xilinx.com:kc705..." messages
96
      # repeated here because create_project apparently clears msg_config
97
      set_msg_config -suppress -id {Board 49-26}
98
    }
99
  }
100
 
101
  # Setup filesets
102
  set vbom_prj [exec vbomconv -vsyn_prj "${stem}.vbom"]
103
  eval $vbom_prj
104
  update_compile_order -fileset sources_1
105
 
106
  # some handy variables
107
  set path_runs "project_mflow/project_mflow.runs"
108
  set path_syn1 "${path_runs}/synth_1"
109
  set path_imp1 "${path_runs}/impl_1"
110
 
111
  # build: synthesize
112
  rvtb_trace_cmd "launch_runs synth_1"
113
  rvtb_trace_cmd "wait_on_run synth_1"
114
 
115
  rvtb_mv_file "$path_syn1/runme.log"  "${stem}_syn.log"
116
 
117
  rvtb_cp_file "$path_syn1/${stem}_utilization_synth.rpt" "${stem}_syn_util.rpt"
118
  rvtb_cp_file "$path_syn1/${stem}.dcp" "${stem}_syn.dcp"
119
 
120
  if {$step eq "syn"} {return [rvtb_build_check $step]}
121
 
122
  # build: implement
123
  rvtb_trace_cmd "launch_runs impl_1"
124
  rvtb_trace_cmd "wait_on_run impl_1"
125
 
126
  rvtb_cp_file "$path_imp1/runme.log"  "${stem}_imp.log"
127
 
128
  rvtb_cp_file "$path_imp1/${stem}_route_status.rpt"  "${stem}_rou_sta.rpt"
129
  rvtb_cp_file "$path_imp1/${stem}_drc_routed.rpt"    "${stem}_rou_drc.rpt"
130
  rvtb_cp_file "$path_imp1/${stem}_io_placed.rpt"     "${stem}_pla_io.rpt"
131
  rvtb_cp_file "$path_imp1/${stem}_clock_utilization_placed.rpt" \
132
                                                      "${stem}_pla_clk.rpt"
133
  rvtb_cp_file "$path_imp1/${stem}_timing_summary_routed.rpt" \
134
                                                      "${stem}_rou_tim.rpt"
135
  rvtb_cp_file "$path_imp1/${stem}_utilization_placed.rpt" \
136
                                                      "${stem}_pla_util.rpt"
137
  rvtb_cp_file "$path_imp1/${stem}_drc_opted.rpt"     "${stem}_opt_drc.rpt"
138
  rvtb_cp_file "$path_imp1/${stem}_control_sets_placed.rpt" \
139
                                                      "${stem}_pla_cset.rpt"
140
  rvtb_cp_file "$path_imp1/${stem}_power_routed.rpt"  "${stem}_rou_pwr.rpt"
141
 
142
  rvtb_cp_file "$path_imp1/${stem}_opt.dcp"     "${stem}_opt.dcp"
143
  rvtb_cp_file "$path_imp1/${stem}_placed.dcp"  "${stem}_pla.dcp"
144
  rvtb_cp_file "$path_imp1/${stem}_routed.dcp"  "${stem}_rou.dcp"
145
 
146
  # additional reports
147
  rvtb_trace_cmd "open_run impl_1"
148
  report_utilization -file "${stem}_rou_util.rpt"
149
  report_utilization -hierarchical -file "${stem}_rou_util_h.rpt"
150
  report_datasheet -file "${stem}_rou_ds.rpt"
151
 
152
  if {$step eq "imp"} {return [rvtb_build_check $step]}
153
 
154
  # build: bitstream
155
  rvtb_trace_cmd "launch_runs impl_1 -to_step write_bitstream"
156
  rvtb_trace_cmd "wait_on_run impl_1"
157
 
158
  rvtb_mv_file "$path_imp1/${stem}.bit" "."
159
  rvtb_mv_file "$path_imp1/runme.log"  "${stem}_bit.log"
160
 
161
  return [rvtb_build_check $step]
162
}
163
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.