OpenCores
URL https://opencores.org/ocsvn/bluespec-h264/bluespec-h264/trunk

Subversion Repositories bluespec-h264

[/] [bluespec-h264/] [trunk/] [dc/] [synth.tcl] - Blame information for rev 100

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 29 jamey.hick
#=========================================================================
2
# TCL Script File for Synthesis using Synopsys Design Compiler
3
#-------------------------------------------------------------------------
4 94 jamey.hick
# $Id: synth.tcl,v 1.3 2008-06-26 18:12:15 jamey.hicks Exp $
5 29 jamey.hick
# 
6
 
7
# The makefile will generate various variables which we now read in
8
# and then display
9
 
10
source make_generated_vars.tcl
11
echo ${SEARCH_PATH}
12
echo ${DONT_TOUCH}
13
echo ${VERILOG_SRCS}
14
echo ${VERILOG_TOPLEVEL}
15
 
16
# The library setup is kept in a separate tcl file which we now source
17
 
18
source libs.tcl
19
 
20
# Set some options
21
 
22
set_ultra_optimization
23
set synlib_enable_dpgen true
24
set synlib_prefer_ultra_license true
25
set compile_new_boolean_structure true
26
 
27
# These two commands read in your verilog source
28
 
29
analyze -library WORK -format verilog ${VERILOG_SRCS}
30
elaborate ${VERILOG_TOPLEVEL} -architecture verilog -library WORK
31
 
32
# This command will check your design for any errors
33
 
34
check_design > synth_check_design.rpt
35
 
36
# We use set_dont_touch to prevent dc from optimizing some blocks
37
 
38
if {${DONT_TOUCH} != ""} {
39
  set_dont_touch ${DONT_TOUCH}
40
}
41
 
42
# We now load in the constraints file
43
 
44
source synth.sdc
45
 
46
# This actually does the synthesis. The map_effort and area_effort are
47
# how much time the synthesizer should spend optimizing your design to
48
# gates. Setting them to high means synthesis will take longer but will
49
# probably produce better results. The boundary_optimization means that
50
# the synthesizer is free to invert ports if it will increase performance.
51
 
52 94 jamey.hick
link
53
set_flatten true -effort high
54
compile -map_effort high -area_effort high -boundary_optimization
55
#compile_ultra
56 29 jamey.hick
 
57
# We write out the results as a verilog netlist and in ddc format
58
 
59
write -format verilog -hierarchy -output synthesized.v
60
write -format ddc -hierarchy -output synthesized.ddc
61
 
62
# We create a timing report for the worst case timing path 
63
# and an area report for each reference in the heirachy
64
 
65
report_timing -capacitance -transition_time -nosplit -nworst 10 -max_paths 500 > synth_timing.rpt
66
report_reference -nosplit > synth_area.rpt
67
report_resources -nosplit > synth_resources.rpt
68 34 jamey.hick
report_power     -nosplit -hier > synth_power.rpt
69
 
70 29 jamey.hick
set cells [get_cells -hierarchical -filter "is_hierarchical == true"]
71
set zcells [sort_collection $cells { full_name }]
72
foreach_in_collection eachcell $zcells {
73
  current_instance $eachcell
74
  report_reference -nosplit >> synth_area.rpt
75
  report_resources -nosplit >> synth_resources.rpt
76
}
77
 
78 94 jamey.hick
exit

powered by: WebSVN 2.1.0

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