summaryrefslogtreecommitdiff
path: root/src/cpu/testers/traffic_gen/TrafficGen.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/testers/traffic_gen/TrafficGen.py')
-rw-r--r--src/cpu/testers/traffic_gen/TrafficGen.py51
1 files changed, 11 insertions, 40 deletions
diff --git a/src/cpu/testers/traffic_gen/TrafficGen.py b/src/cpu/testers/traffic_gen/TrafficGen.py
index 1a6a6359c..f1e094821 100644
--- a/src/cpu/testers/traffic_gen/TrafficGen.py
+++ b/src/cpu/testers/traffic_gen/TrafficGen.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2012, 2016 ARM Limited
+# Copyright (c) 2012, 2016, 2018 ARM Limited
# All rights reserved.
#
# The license below extends only to copyright in the software and shall
@@ -38,48 +38,19 @@
# Sascha Bischoff
from m5.params import *
-from m5.proxy import *
-from MemObject import MemObject
+from BaseTrafficGen import *
-# The traffic generator is a master module that generates stimuli for
-# the memory system, based on a collection of simple behaviours that
-# are either probabilistic or based on traces. It can be used stand
-# alone for creating test cases for interconnect and memory
-# controllers, or function as a black-box replacement for system
-# components that are not yet modelled in detail, e.g. a video engine
-# or baseband subsystem in an SoC.
-#
-# The traffic generator has a single master port that is used to send
-# requests, independent of the specific behaviour. The behaviour of
-# the traffic generator is specified in a configuration file, and this
-# file describes a state transition graph where each state is a
-# specific generator behaviour. Examples include idling, generating
-# linear address sequences, random sequences and replay of captured
-# traces. By describing these behaviours as states, it is straight
-# forward to create very complex behaviours, simply by arranging them
-# in graphs. The graph transitions can also be annotated with
-# probabilities, effectively making it a Markov Chain.
-class TrafficGen(MemObject):
+# The behaviour of this traffic generator is specified in a
+# configuration file, and this file describes a state transition graph
+# where each state is a specific generator behaviour. Examples include
+# idling, generating linear address sequences, random sequences and
+# replay of captured traces. By describing these behaviours as states,
+# it is straight forward to create very complex behaviours, simply by
+# arranging them in graphs. The graph transitions can also be
+# annotated with probabilities, effectively making it a Markov Chain.
+class TrafficGen(BaseTrafficGen):
type = 'TrafficGen'
cxx_header = "cpu/testers/traffic_gen/traffic_gen.hh"
- # Port used for sending requests and receiving responses
- port = MasterPort("Master port")
-
# Config file to parse for the state descriptions
config_file = Param.String("Configuration file describing the behaviour")
-
- # System used to determine the mode of the memory system
- system = Param.System(Parent.any, "System this generator is part of")
-
- # Should requests respond to back-pressure or not, if true, the
- # rate of the traffic generator will be slowed down if requests
- # are not immediately accepted
- elastic_req = Param.Bool(False,
- "Slow down requests in case of backpressure")
-
- # Let the user know if we have waited for a retry and not made any
- # progress for a long period of time. The default value is
- # somewhat arbitrary and may well have to be tuned.
- progress_check = Param.Latency('1ms', "Time before exiting " \
- "due to lack of progress")