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

Subversion Repositories async_sdm_noc

[/] [async_sdm_noc/] [trunk/] [sdm/] [syn/] [script/] [constraint.tcl] - Blame information for rev 28

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

Line No. Rev Author Line
1 26 wsong0210
# Asynchronous SDM NoC
2
# (C)2011 Wei Song
3
# Advanced Processor Technologies Group
4
# Computer Science, the Univ. of Manchester, UK
5
# 
6
# Authors: 
7
# Wei Song     wsong83@gmail.com
8
# 
9
# License: LGPL 3.0 or later
10
# 
11
# Constraints for wormhole/SDM routers
12
# 
13
# History:
14
# 26/05/2011  Initial version. <wsong83@gmail.com>
15
 
16
# loading the baic cell constraints
17
source ../../common/script/cell_constraint.tcl
18
 
19
# ensure the basic blocks are not ungrouped for better debugging capability
20
set_ungroup [get_references -hierarchical inp_buf*]  false
21
set_ungroup [get_references -hierarchical outp_buf*] false
22
set_ungroup CB false
23
set_ungroup ALLOC false
24
 
25
 
26
######### break the timing loops in the design ##############
27
 
28
# route decision address bus
29
set_disable_timing [get_cells -hierarchical Px_* ] -from A -to Z
30
set_disable_timing [get_cells -hierarchical Px_* ] -from B -to Z
31
set_disable_timing [get_cells -hierarchical Py_* ] -from A -to Z
32
set_disable_timing [get_cells -hierarchical Py_* ] -from B -to Z
33
 
34
# input buffer control input
35
foreach_in_collection celln  [get_references -hierarchical inp_buf_*] {
36
    set_disable_timing [get_object_name $celln]/C_RTD0/U2 -from B -to Z
37
    set_disable_timing [get_object_name $celln]/C_RTD1/U2 -from B -to Z
38
    set_disable_timing [get_object_name $celln]/C_RT_XEQ/U2 -from B -to Z
39
}
40
 
41
# the delay cell in the lookahead pipeline
42
# It is not a problem to get errors here if ENABLE_LOOKAHEAD is not defined.
43
foreach_in_collection celln  [get_references -hierarchical outp_buf_*] {
44
    set_disable_timing [get_object_name $celln]/DLY/U -from A -to Z
45
}
46
 
47
# set some timing path ending points
48
set DPD []
49
set DPA []
50
foreach_in_collection celln  [get_references -hierarchical dc2_*] {
51
    append_to_collection DPD [ get_pins [get_object_name $celln]/U1/B]
52
    append_to_collection DPD [ get_pins [get_object_name $celln]/U2/A]
53
    append_to_collection DPA [ get_pins [get_object_name $celln]/U1/A]
54
    append_to_collection DPA [ get_pins [get_object_name $celln]/U3/A]
55
}
56
 
57
set IODI [filter [get_ports *i*] "@port_direction == in"]
58
set IODO [filter [get_ports *o*] "@port_direction == out"]
59
set IOAI [filter [get_ports *i*] "@port_direction == out"]
60
set IOAO [filter [get_ports *o*] "@port_direction == in"]
61
 
62
# set the timing constraints for data paths and ack paths
63
# For better speed performance, please tune these delay and factors according different cell libraries
64
set DATA_dly 5
65
set ACK_dly 8
66
 
67
set_max_delay [expr ${DATA_dly} * 1.00] -from ${DPA}   -to ${DPD}   -group G_DATA
68
set_max_delay [expr ${ACK_dly} * 1.00]  -from ${DPA}   -to ${DPA}   -group G_ACK
69
set_max_delay [expr ${DATA_dly} * 0.30] -from ${IODI}  -to ${DPD}   -group G_DATA
70
set_max_delay [expr ${ACK_dly} * 0.75]  -from ${DPA}   -to ${IOAI}  -group G_ACK
71
set_max_delay [expr ${DATA_dly} * 0.70] -from ${DPA}   -to ${IODO}  -group G_DATA
72
set_max_delay [expr ${ACK_dly} * 0.25]  -from ${IOAO}  -to ${DPA}   -group G_ACK
73
 
74
group_path -weight 1.5 -critical_range 40 -name G_DATA
75
group_path -weight 1.5 -critical_range 40 -name G_ACK
76
 
77
set_critical_range 20 ${current_design}
78
 
79
set_max_leakage_power 0.0
80
set_max_dynamic_power 0.0
81
set_max_area 0
82
 
83
# timing path disabled by user constraints
84
suppress_message TIM-175

powered by: WebSVN 2.1.0

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