-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathproj_synthesis.tcl
70 lines (54 loc) · 2.42 KB
/
proj_synthesis.tcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
################################################################################
# DESIGN COMPILER: Logic Synthesis Tool #
################################################################################
remove_design -all
# Add search paths for our technology libs.
set search_path "$search_path . ./verilog /w/apps2/public.2/tech/synopsys/32-28nm/SAED32_EDK/lib/stdcell_rvt/db_nldm"
set target_library "saed32rvt_ff1p16vn40c.db saed32rvt_ss0p95v125c.db"
set link_library "* saed32rvt_ff1p16vn40c.db saed32rvt_ss0p95v125c.db dw_foundation.sldb"
set synthetic_library "dw_foundation.sldb"
# Define work path (note: The work path must exist, so you need to create a folder WORK first)
define_design_lib WORK -path ./WORK
set alib_library_analysis_path “./alib-52/”
# Read the gate-level verilog files
analyze -format verilog {M216A_TopModule.v}
set DESIGN_NAME M216A_TopModule
elaborate $DESIGN_NAME
current_design $DESIGN_NAME
link
set_operating_conditions -min ff1p16vn40c -max ss0p95v125c
# Describe the clock waveform & setup operating conditions
set Tclk 1.45
set TCU 0.1
set IN_DEL 0.6
set IN_DEL_MIN 0.3
set OUT_DEL 0.6
set OUT_DEL_MIN 0.3
set ALL_IN_BUT_CLK [remove_from_collection [all_inputs] "Clk_In"]
create_clock -name "Clk_In" -period $Tclk [get_ports "Clk_In"]
set_fix_hold Clk_In
set_dont_touch_network [get_clocks "Clk_In"]
set_clock_uncertainty $TCU [get_clocks "Clk_In"]
set_input_delay $IN_DEL -clock "Clk_In" $ALL_IN_BUT_CLK
set_input_delay -min $IN_DEL_MIN -clock "Clk_In" $ALL_IN_BUT_CLK
set_output_delay $OUT_DEL -clock "Clk_In" [all_outputs]
set_output_delay -min $OUT_DEL_MIN -clock "Clk_In" [all_outputs]
set_max_area 0.0
ungroup -flatten -all
uniquify
compile -only_design_rule
compile -map high
compile -boundary_optimization
compile -only_hold_time
report_timing -path full -delay min -max_paths 10 -nworst 2 > Design.holdtiming
report_timing -path full -delay max -max_paths 10 -nworst 2 > Design.setuptiming
report_area -hierarchy > Design.area
report_power -hier -hier_level 2 > Design.power
report_resources > Design.resources
report_constraint -verbose > Design.constraint
check_design > Design.check_design
check_timing > Design.check_timing
write -hierarchy -format verilog -output $DESIGN_NAME.vg
write_sdf -version 1.0 -context verilog $DESIGN_NAME.sdf
set_propagated_clock [all_clocks]
write_sdc $DESIGN_NAME.sdc