Mahyar Samani has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/53163 )
Change subject: stdlib: Adding clock_domain to GUPSGenerators
......................................................................
stdlib: Adding clock_domain to GUPSGenerators
This change adds clock domain as a parameter to the GUPSGen
classes. This way the generator and other components can
work on different clock frequencies.
Change-Id: If916877a57b3c3a61073dad075e35f3f93af8459
---
M src/python/gem5/components/processors/gups_generator_core.py
M src/python/gem5/components/processors/gups_generator_par.py
M src/python/gem5/components/processors/gups_generator.py
M src/python/gem5/components/processors/gups_generator_ep.py
4 files changed, 43 insertions(+), 9 deletions(-)
diff --git a/src/python/gem5/components/processors/gups_generator.py
b/src/python/gem5/components/processors/gups_generator.py
index 191be6b..626f5ac 100644
--- a/src/python/gem5/components/processors/gups_generator.py
+++ b/src/python/gem5/components/processors/gups_generator.py
@@ -26,7 +26,7 @@
from ...utils.override import overrides
-from m5.objects import Addr
+from m5.objects import Addr, ClockDomain
from ..boards.mem_mode import MemMode
@@ -42,6 +42,7 @@
start_addr: Addr,
mem_size: str,
update_limit: int = 0,
+ clock_domain: ClockDomain = None,
):
"""The GUPSGenerator class
This class defines the interface for a single core GUPSGenerator,
this
@@ -63,6 +64,7 @@
start_addr=start_addr,
mem_size=mem_size,
update_limit=update_limit,
+ clock_domain=clock_domain,
)
]
)
diff --git a/src/python/gem5/components/processors/gups_generator_core.py
b/src/python/gem5/components/processors/gups_generator_core.py
index 8ce921e..4bcd8b9 100644
--- a/src/python/gem5/components/processors/gups_generator_core.py
+++ b/src/python/gem5/components/processors/gups_generator_core.py
@@ -24,7 +24,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from m5.objects import Port, GUPSGen, Addr
+from m5.objects import Port, GUPSGen, Addr, ClockDomain
from ...utils.override import overrides
from .abstract_generator_core import AbstractGeneratorCore
@@ -36,14 +36,25 @@
start_addr: Addr,
mem_size: str,
update_limit: int,
+ clock_domain: ClockDomain,
):
"""
Create a GUPSGeneratorCore as the main generator.
"""
super().__init__()
- self.generator = GUPSGen(
- start_addr=start_addr, mem_size=mem_size,
update_limit=update_limit
- )
+ if clock_domain:
+ self.generator = GUPSGen(
+ start_addr=start_addr,
+ mem_size=mem_size,
+ update_limit=update_limit,
+ clk_domain=clock_domain
+ )
+ else:
+ self.generator = GUPSGen(
+ start_addr=start_addr,
+ mem_size=mem_size,
+ update_limit=update_limit,
+ )
@overrides(AbstractGeneratorCore)
def connect_dcache(self, port: Port) -> None:
diff --git a/src/python/gem5/components/processors/gups_generator_ep.py
b/src/python/gem5/components/processors/gups_generator_ep.py
index 203a88c..8779e38 100644
--- a/src/python/gem5/components/processors/gups_generator_ep.py
+++ b/src/python/gem5/components/processors/gups_generator_ep.py
@@ -26,7 +26,7 @@
from ...utils.override import overrides
-from m5.objects import Addr
+from m5.objects import Addr, ClockDomain
from m5.util.convert import toMemorySize
from ..boards.mem_mode import MemMode
@@ -44,6 +44,7 @@
start_addr: Addr,
mem_size: str,
update_limit: int = 0,
+ clock_domain: ClockDomain = None,
):
"""The GUPSGeneratorEP class
This class defines the interface for multi core GUPSGenerator, this
@@ -64,6 +65,7 @@
start_addr=start_addr,
mem_size=mem_size,
update_limit=update_limit,
+ clock_domain=clock_domain,
)
)
@@ -73,6 +75,7 @@
start_addr: Addr,
mem_size: str,
update_limit: int,
+ clock_domain: ClockDomain = None,
):
"""
Helper function to create cores.
@@ -85,6 +88,7 @@
start_addr=start_addr + i * chunk_size,
mem_size=table_size,
update_limit=update_limit,
+ clock_domain=clock_domain
)
for i in range(num_cores)
]
diff --git a/src/python/gem5/components/processors/gups_generator_par.py
b/src/python/gem5/components/processors/gups_generator_par.py
index aad360a..7a2e0de 100644
--- a/src/python/gem5/components/processors/gups_generator_par.py
+++ b/src/python/gem5/components/processors/gups_generator_par.py
@@ -25,8 +25,9 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+from enum import unique
from ...utils.override import overrides
-from m5.objects import Addr
+from m5.objects import Addr, ClockDomain
from ..boards.mem_mode import MemMode
@@ -35,7 +36,6 @@
from .abstract_processor import AbstractProcessor
from ..boards.abstract_board import AbstractBoard
-
class GUPSGeneratorPAR(AbstractProcessor):
def __init__(
self,
@@ -43,6 +43,7 @@
start_addr: Addr,
mem_size: str,
update_limit: int = 0,
+ clock_domain: ClockDomain = None,
):
"""The GUPSGeneratorPAR class
This class defines the interface for multi core GUPSGenerator, this
@@ -63,6 +64,7 @@
start_addr=start_addr,
mem_size=mem_size,
update_limit=update_limit,
+ clock_domain=clock_domain,
)
)
@@ -72,6 +74,7 @@
start_addr: Addr,
mem_size: str,
update_limit: int,
+ clock_domain: ClockDomain,
):
"""
Helper function to create cores.
@@ -81,8 +84,9 @@
start_addr=start_addr,
mem_size=mem_size,
update_limit=update_limit / num_cores,
+ clock_domain=clock_domain,
)
- for i in range(num_cores)
+ for _ in range(num_cores)
]
@overrides(AbstractProcessor)
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/53163
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: If916877a57b3c3a61073dad075e35f3f93af8459
Gerrit-Change-Number: 53163
Gerrit-PatchSet: 1
Gerrit-Owner: Mahyar Samani <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s