forked from packetgenie/PacketGenie
-
Notifications
You must be signed in to change notification settings - Fork 0
/
template.config
102 lines (89 loc) · 3.75 KB
/
template.config
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
# TEMPLATE FOR TRAFFIC GENERATOR CONFIG FILE
# RULES:
# - Parameter format: -param_name param_value
# - Each line of valid parameter must start with
# "-" as first character
# Specify Topology
# - Type of topology, followed by parameters specific to that type
# - Supported topology type:
# -topology_type mesh [width] [heigth]
#
-topology_type mesh 6 6
#
# Specify traffic distribution
# - Supported traffic types: uniform
# -traffic_dist [name] [type]
# (remove/default this)
-traffic_pattern tp0 uniform
# Specify injection rate of the traffic for a specified set of nodes
# in the network.
# - Injection rate is in units of "packets per cycle" (per node).
# -traffic_inj_rate [name] [type] [params]
# - Supported types:
# uniform: [injection_rate]
# burst: [period] [dut_cycle] [start_low] [rate_base] [rate_high]
# note: [start_low] can be "low", "L", or "high", "H"
# gaussian: [period] [start_offset] [peak_inj_rate] [std_dev]
# onoff: [alpha] [beta] [r1] [initial_state]
# note: [initial_state] are "all_on", "all_off" and "random"
-traffic_inj_process ip0 uniform 0.1
-traffic_inj_process ip1 uniform 0.2
-traffic_inj_process ip2 burst 10 0.4 low 0 0.5
-traffic_inj_process ip3 gaussian 10 5 0.8 1.5
-traffic_inj_process ip4 onoff 0.1 0.1 0.8 all_on
# Declare senders
# -traffic_senders [name] { [sender node indecies] }
-traffic_senders sen0 { 5 }
-traffic_senders sen1 { 15 20 14 11 }
-traffic_senders sen2 { 25 35 }
# Declare receivers
# -traffic_receivers [name] { [receiver node indecies] }
-traffic_receivers rec0 { 0 1 2 3 }
-traffic_receivers rec1 { 10-13 }
-traffic_receivers rec2 { 20 21-23 }
# Specify type of packet transferred and the weight of the packet
# - Total sum of all the occurance from pa
# -packet_type [name] [size] [weight] [need_reply?] (reply_pckt_name)
# * is used only if need_reply is 1.
-packet_type read_rqst 8 3.0 1 read_rply
-packet_type write 64 2.0 0
-packet_type poll_rqst 1 5.0 1 poll_rply
#-packet_type poll_rqst2 1 5.0 1 poll_rply2
# Specify delay for how many cycles the node should wait before sending a response(?)
# reply packet is generated (1 + delay) cycles after the request.
# -packet_type_reply [name] [type] [params]
# - Supported types: (and their [params] field)
# fixed: [size] [delay]
# erlang: [size] [arrival_rate] [service_time]
# dram: [size]
#
#-packet_type_reply read_rply fixed 64 3
-packet_type_reply poll_rply fixed 1 0
#-packet_type_reply poll_rply2 erlang 1 0.2 4
-packet_type_reply read_rply dram 64
# Assign previously defined injection process and receiver parameters
# to a node group
# -network_group [name] [inj_process] [traf_pattern] [senders] [receivers] < packets >
-node_group compute0 ip0 tp0 sen0 rec0 < read_rqst >
#-node_group compute1 ip0 tp0 sen1 rec1 < poll_rqst >
#-node_group compute2 ip1 tp0 sen2 rec2 < poll_rqst2 >
#-node_config [name] [type] [params] { nodes }
# - Supported types and their [params] field
# queue: [queue_size] [delay_for_non-reply_packets] < [packets] >
#-node_config load_queue buffer 1 5 < read_rqst write > { 1 3 4 5 }
#
#-node_config [name] dram [dram_name] { nodes }
#-packet_type_reply [name] dram
#-dram_bank_config [name] [n_banks] [serv_time] [arr_rate]
#-dram_timing_config [name] [dram_clk] [t_rcd:t_cas:t_rp:t_ras] [p_row_closed:p_conflict_open:p_conflict_closed]
-dram_bank_config dram1 2 0.1 0.5
-dram_timing_config dram1 2 2 2 2 2 0.5 0.5 0.5 0.5
-node_config mem1 dram dram1 { 0 1 2 3 }
# Specify step size of the simulation clock
# Sets how often the traffic generator will evaluate for a new traffic
# -simclk_step [value]
#
# Specify how long the generator should run for
# -simclk_end [value]
#
-simclk_end 100