rspbusses.ss
5.15 KB
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/* setup aliases */
module = rspbusses
wire_load = 256000
standard_load = 0.01
clock = "clk"
default_input_delay = 4.0
default_output_delay = 2.0
default_pin_delay = 11.0
default_input_load = 20
default_output_load = 20
default_pin_load = 150
default_drive_cell = "dfntnh"
default_drive_pin = "q"
default_period = 16.0
default_max_transition = 2.0
/*****************************************************************************/
/* set the path and read */
/*****************************************************************************/
search_path = {. \
/ecad/synopsys/current/libraries/syn \
/ecad/reality/lib/synopsys/nec35_v2.1 \
/ecad/reality/lib/synopsys/rcp_lib};
search_path = search_path + "../../inc" + "../../syn"
read -f verilog ../src/rspbusses.v
read -f verilog ../src/ram_bist_imem.v
read -f verilog ../../../lib/verilog/user/asdff.v
read -f verilog ../../../lib/verilog/user/asdffen.v
read -f verilog ../../../lib/verilog/user/cbus_driver.v
read -f verilog ../../../lib/verilog/user/dbus_driver.v
current_design = rspbusses_inner
/*****************************************************************************/
/* default environment */
/*****************************************************************************/
set_operating_conditions NOM
set_wire_load wire_load -mode top
/*****************************************************************************/
/* clock constraints */
/*****************************************************************************/
create_clock clock -period default_period -waveform { 0.0 default_period / 2 }
set_dont_touch_network clock
/*****************************************************************************/
/* default constraint */
/*****************************************************************************/
set_dont_touch { ne35hd130d/nt01d* }
set_input_delay default_input_delay -clock clock all_inputs() > /dev/null
set_output_delay default_output_delay -clock clock all_outputs() > /dev/null
set_load default_output_load * standard_load all_outputs() > /dev/null
set_load default_input_load * standard_load all_inputs() > /dev/null
set_driving_cell -cell default_drive_cell -pin default_drive_pin all_inputs() > /dev/null
set_drive 0 { clock }
set_input_delay 0 { clock }
set_fix_hold all_clocks()
/*****************************************************************************/
/* custom constraints */
/*****************************************************************************/
set_max_transition default_max_transition current_design
include module + ".con"
/*****************************************************************************/
/* check */
/*****************************************************************************/
link
check_design > module + ".lint"
/*****************************************************************************/
/* compile */
/*****************************************************************************/
set_dont_touch cbus_driver
set_dont_touch dbus_driver
ungroup -flatten -all
compile -map_effort high
ungroup -flatten -all
compile -map_effort high
set_clock_skew -uncertainty 1 clk
set_fix_hold all_clocks()
compile -prioritize_min_paths -only_design_rule -incremental_mapping
set_dont_touch cbus_driver false
set_dont_touch dbus_driver false
ungroup -flatten -all
current_design = rspbusses
set_operating_conditions NOM
set_wire_load wire_load -mode top
create_clock clock -period default_period -waveform { 0.0 default_period / 2 }
set_input_delay default_input_delay -clock clock all_inputs() > /dev/null
set_output_delay default_output_delay -clock clock all_outputs() > /dev/null
set_load default_output_load * standard_load all_outputs() > /dev/null
set_load default_input_load * standard_load all_inputs() > /dev/null
set_driving_cell -cell default_drive_cell -pin default_drive_pin all_inputs() > /dev/null
set_drive 0 { clock }
set_input_delay 0 { clock }
set_clock_skew -uncertainty 1 clk
set_max_transition default_max_transition current_design
include module + ".con"
include "busses.con"
ungroup -flatten -all
/*****************************************************************************/
/* results */
/*****************************************************************************/
report_area
report -reference
report_constraint -all_violators > "report." + module + ".viol"
report_timing -path full -delay max -max_paths 50 > "report." + module + ".max_paths"
report_timing -to all_outputs() -nets -max_paths 10 > "report." + module + ".output"
report_timing -from all_inputs() -max_paths 10 > "report." + module + ".input"
write -format edif -hierarchy -o module + ".edf" module
write -format verilog -hierarchy -o module + ".vsyn" module
write -format db -hierarchy -o module + ".db" module
include "rspbusses.tmg"
include "report.dc"
quit