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

Subversion Repositories openmsp430

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

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

Line No. Rev Author Line
1 2 olivier.gi
##############################################################################
2
#                                                                            #
3
#                            CLOCK DEFINITION                                #
4
#                                                                            #
5
##############################################################################
6
 
7
#set CLOCK_PERIOD 50.0; #  20 MHz
8
#set CLOCK_PERIOD 40.0; #  25 MHz
9
#set CLOCK_PERIOD 30.0; #  33 MHz
10
#set CLOCK_PERIOD 25.0; #  40 MHz
11
set CLOCK_PERIOD 20.0; #  50 MHz
12
#set CLOCK_PERIOD 15.0; #  66 MHz
13
#set CLOCK_PERIOD 10.0; # 100 MHz
14
#set CLOCK_PERIOD  8.0; # 125 MHz
15
 
16
 
17
create_clock -name     "clock"                                \
18
             -period   "$CLOCK_PERIOD"                        \
19
             -waveform "[expr $CLOCK_PERIOD/2] $CLOCK_PERIOD" \
20
            [get_ports clock]
21
 
22
 
23
##############################################################################
24
#                                                                            #
25
#                          CREATE PATH GROUPS                                #
26
#                                                                            #
27
##############################################################################
28
 
29
group_path -name REGOUT      -to   [all_outputs]
30
group_path -name REGIN       -from [remove_from_collection [all_inputs] [get_ports clock]]
31
group_path -name FEEDTHROUGH -from [remove_from_collection [all_inputs] [get_ports clock]] -to [all_outputs]
32
 
33
 
34
##############################################################################
35
#                                                                            #
36
#                          BOUNDARY TIMINGS                                  #
37
#                                                                            #
38
##############################################################################
39
# NOTE: There are some path through between RAM and ROM signals.
40
#       If required you might want to relax the constrains a bit.
41
 
42
#===============#
43
# INPUT PORTS   #
44
#===============#
45
 
46
set IRQ_DLY          [expr ($CLOCK_PERIOD/100) * 30]
47
set NMI_DLY          [expr ($CLOCK_PERIOD/100) * 10]
48
 
49
set PER_DOUT_DLY     [expr ($CLOCK_PERIOD/100) * 20]
50
set RAM_DOUT_DLY     [expr ($CLOCK_PERIOD/100) * 20]
51
set ROM_DOUT_DLY     [expr ($CLOCK_PERIOD/100) * 20]
52
 
53
set RESET_N_DLY      [expr ($CLOCK_PERIOD/100) * 75]
54
 
55
 
56
set_input_delay $IRQ_DLY       -max -clock "clock"             [get_ports irq]
57
set_input_delay 0              -min -clock "clock"             [get_ports irq]
58
 
59
set_input_delay $NMI_DLY       -max -clock "clock"             [get_ports nmi]
60
set_input_delay 0              -min -clock "clock"             [get_ports nmi]
61
 
62
set_input_delay $PER_DOUT_DLY  -max -clock "clock"             [get_ports per_dout]
63
set_input_delay 0              -min -clock "clock"             [get_ports per_dout]
64
 
65
set_input_delay $RAM_DOUT_DLY  -max -clock "clock"             [get_ports ram_dout]
66
set_input_delay 0              -min -clock "clock"             [get_ports ram_dout]
67
 
68
set_input_delay $ROM_DOUT_DLY  -max -clock "clock"             [get_ports rom_dout]
69
set_input_delay 0              -min -clock "clock"             [get_ports rom_dout]
70
 
71
set_input_delay $RESET_N_DLY   -max -clock "clock" -clock_fall [get_ports reset_n]
72
set_input_delay 0              -min -clock "clock" -clock_fall [get_ports reset_n]
73
 
74
 
75
#===============#
76
# OUTPUT PORTS  #
77
#===============#
78
 
79
set PER_ADDR_DLY     [expr ($CLOCK_PERIOD/100) * 25]
80
set PER_DIN_DLY      [expr ($CLOCK_PERIOD/100) * 25]
81
set PER_WEN_DLY      [expr ($CLOCK_PERIOD/100) * 25]
82
set PER_8B_CEN_DLY   [expr ($CLOCK_PERIOD/100) * 25]
83
set PER_16B_CEN_DLY  [expr ($CLOCK_PERIOD/100) * 25]
84
 
85
set RAM_ADDR_DLY     [expr ($CLOCK_PERIOD/100) * 20]
86
set RAM_CEN_DLY      [expr ($CLOCK_PERIOD/100) * 20]
87
set RAM_DIN_DLY      [expr ($CLOCK_PERIOD/100) * 20]
88
set RAM_WEN_DLY      [expr ($CLOCK_PERIOD/100) * 20]
89
 
90
set ROM_ADDR_DLY     [expr ($CLOCK_PERIOD/100) * 20]
91
set ROM_CEN_DLY      [expr ($CLOCK_PERIOD/100) * 20]
92
 
93
set MRST_DLY         [expr ($CLOCK_PERIOD/100) * 75]
94
 
95
 
96
set_output_delay $PER_ADDR_DLY     -add_delay -max -clock "clock"             [get_ports per_addr]
97
set_output_delay 0                            -min -clock "clock"             [get_ports per_addr]
98
 
99
set_output_delay $PER_DIN_DLY      -add_delay -max -clock "clock"             [get_ports per_din]
100
set_output_delay 0                            -min -clock "clock"             [get_ports per_din]
101
 
102
set_output_delay $PER_WEN_DLY      -add_delay -max -clock "clock"             [get_ports per_wen]
103
set_output_delay 0                            -min -clock "clock"             [get_ports per_wen]
104
 
105
set_output_delay $PER_8B_CEN_DLY   -add_delay -max -clock "clock"             [get_ports per_8b_cen]
106
set_output_delay 0                            -min -clock "clock"             [get_ports per_8b_cen]
107
 
108
set_output_delay $PER_16B_CEN_DLY  -add_delay -max -clock "clock"             [get_ports per_16b_cen]
109
set_output_delay 0                            -min -clock "clock"             [get_ports per_16b_cen]
110
 
111
set_output_delay $RAM_ADDR_DLY     -add_delay -max -clock "clock"             [get_ports ram_addr]
112
set_output_delay 0                            -min -clock "clock"             [get_ports ram_addr]
113
 
114
set_output_delay $RAM_CEN_DLY      -add_delay -max -clock "clock"             [get_ports ram_cen]
115
set_output_delay 0                            -min -clock "clock"             [get_ports ram_cen]
116
 
117
set_output_delay $RAM_DIN_DLY      -add_delay -max -clock "clock"             [get_ports ram_din]
118
set_output_delay 0                            -min -clock "clock"             [get_ports ram_din]
119
 
120
set_output_delay $RAM_WEN_DLY      -add_delay -max -clock "clock"             [get_ports ram_wen]
121
set_output_delay 0                            -min -clock "clock"             [get_ports ram_wen]
122
 
123
set_output_delay $ROM_ADDR_DLY     -add_delay -max -clock "clock"             [get_ports rom_addr]
124
set_output_delay 0                            -min -clock "clock"             [get_ports rom_addr]
125
 
126
set_output_delay $ROM_CEN_DLY      -add_delay -max -clock "clock"             [get_ports rom_cen]
127
set_output_delay 0                            -min -clock "clock"             [get_ports rom_cen]
128
 
129
set_output_delay $MRST_DLY         -add_delay -max -clock "clock" -clock_fall [get_ports mrst]
130
set_output_delay 0                            -min -clock "clock" -clock_fall [get_ports mrst]
131
 
132
 
133
#========================#
134
# FEEDTHROUGH EXCEPTIONS #
135
#========================#
136
 
137
#set_max_delay [expr 2.0 + $RAM_DOUT_DLY + $RAM_ADDR_DLY] \
138
#              -from       [get_ports ram_dout]            \
139
#              -to         [get_ports ram_addr]            \
140
#              -group_path FEEDTHROUGH
141
 

powered by: WebSVN 2.1.0

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