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

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [core/] [synthesis/] [synopsys/] [synthesis.tcl] - Blame information for rev 56

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

Line No. Rev Author Line
1 2 olivier.gi
 
2
#=============================================================================#
3
#                           Read technology library                           #
4
#=============================================================================#
5
source -echo -verbose ./library.tcl
6
 
7
 
8
#=============================================================================#
9
#                               Read design RTL                               #
10
#=============================================================================#
11
source -echo -verbose ./read.tcl
12
 
13
 
14
#=============================================================================#
15
#                           Set design constraints                            #
16
#=============================================================================#
17
source -echo -verbose ./constraints.tcl
18
 
19
 
20
#=============================================================================#
21
#              Set operating conditions & wire-load models                    #
22
#=============================================================================#
23
 
24
# Set operating conditions
25
set_operating_conditions -max $LIB_WC_OPCON -max_library $LIB_WC_NAME \
26
                         -min $LIB_WC_OPCON -min_library $LIB_BC_NAME
27
 
28
# Set wire-load models
29
set_wire_load_mode top
30
set_wire_load_model -name $LIB_WIRE_LOAD -max -library $LIB_WC_NAME
31
set_wire_load_model -name $LIB_WIRE_LOAD -min -library $LIB_BC_NAME
32
 
33
 
34
#=============================================================================#
35
#                                Synthesize                                   #
36
#=============================================================================#
37
 
38
# Prevent assignment statements in the Verilog netlist.
39
set_fix_multiple_port_nets -all -buffer_constants
40
 
41
# Configure & Synthesize
42
current_design $DESIGN_NAME
43
set_max_area  0.0
44
set_flatten false
45
set_structure true -timing true -boolean false
46
 
47
compile -map_effort high -area_effort high
48
#compile_ultra -area_high_effort_script
49
#compile_ultra -area_high_effort_script -no_autoungroup -no_boundary_optimization
50
 
51
 
52
#=============================================================================#
53
#                            Reports generation                               #
54
#=============================================================================#
55
 
56
redirect ./results/report.timing         {check_timing}
57
redirect ./results/report.constraints    {report_constraints -all_violators -verbose}
58
redirect ./results/report.paths.max      {report_timing -path end  -delay max -max_paths 200 -nworst 2}
59
redirect ./results/report.full_paths.max {report_timing -path full -delay max -max_paths 5   -nworst 2}
60
redirect ./results/report.paths.min      {report_timing -path end  -delay min -max_paths 200 -nworst 2}
61
redirect ./results/report.full_paths.min {report_timing -path full -delay min -max_paths 5   -nworst 2}
62 56 olivier.gi
redirect ./results/report.refs           {report_reference}
63 2 olivier.gi
redirect ./results/report.area           {report_area}
64
 
65 56 olivier.gi
# Add NAND2 size equivalent report to the area report file
66
if {[info exists NAND2_NAME]} {
67
    set nand2_area [get_attribute [get_lib_cell $LIB_WC_NAME/$NAND2_NAME] area]
68
    redirect -variable area {report_area}
69
    regexp {Total cell area:\s+([^\n]+)\n} $area whole_match area
70
    set nand2_eq [expr $area/$nand2_area]
71
    set fp [open "./results/report.area" a]
72
    puts $fp ""
73
    puts $fp "NAND2 equivalent cell area: $nand2_eq"
74
    close $fp
75
}
76 2 olivier.gi
 
77
#=============================================================================#
78
#                    Dump gate level netlist & final DDC file                 #
79
#=============================================================================#
80
current_design $DESIGN_NAME
81
 
82
write -hierarchy -format verilog -output "./results/$DESIGN_NAME.gate.v"
83
write -hierarchy -format ddc     -output "./results/$DESIGN_NAME.ddc"
84
 
85
 
86
quit

powered by: WebSVN 2.1.0

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