[gem5-dev] Change in gem5/gem5[develop]: stdlib: Adding clock_domain to GUPSGenerators

2021-12-07 Thread Mahyar Samani (Gerrit) via gem5-dev
Mahyar Samani has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/53163 )


 (

8 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the  
submitted one.

 )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
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/53163
Tested-by: kokoro 
Reviewed-by: Bobby Bruce 
Reviewed-by: Jason Lowe-Power 
Maintainer: Jason Lowe-Power 
---
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, 53 insertions(+), 21 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, but someone else must approve; Looks  
good to me, approved

  Bobby Bruce: Looks good to me, approved
  kokoro: Regressions pass




diff --git a/src/python/gem5/components/processors/gups_generator.py  
b/src/python/gem5/components/processors/gups_generator.py

index 191be6b..41d1812 100644
--- a/src/python/gem5/components/processors/gups_generator.py
+++ b/src/python/gem5/components/processors/gups_generator.py
@@ -25,15 +25,14 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


-from ...utils.override import overrides
+from typing import Optional
 from m5.objects import Addr
+from ...utils.override import overrides

 from ..boards.mem_mode import MemMode
-
-from .gups_generator_core import GUPSGeneratorCore
-
 from .abstract_processor import AbstractProcessor
 from ..boards.abstract_board import AbstractBoard
+from .gups_generator_core import GUPSGeneratorCore


 class GUPSGenerator(AbstractProcessor):
@@ -42,6 +41,7 @@
 start_addr: Addr,
 mem_size: str,
 update_limit: int = 0,
+clk_freq: Optional[str] = None,
 ):
 """The GUPSGenerator class
 This class defines the interface for a single core GUPSGenerator,  
this

@@ -63,6 +63,7 @@
 start_addr=start_addr,
 mem_size=mem_size,
 update_limit=update_limit,
+clk_freq=clk_freq,
 )
 ]
 )
diff --git a/src/python/gem5/components/processors/gups_generator_core.py  
b/src/python/gem5/components/processors/gups_generator_core.py

index 8ce921e..f315b8b 100644
--- a/src/python/gem5/components/processors/gups_generator_core.py
+++ b/src/python/gem5/components/processors/gups_generator_core.py
@@ -24,10 +24,11 @@
 # (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 typing import Optional
 from ...utils.override import overrides
 from .abstract_generator_core import AbstractGeneratorCore
+from m5.objects import Port, GUPSGen, Addr, SrcClockDomain, VoltageDomain


 class GUPSGeneratorCore(AbstractGeneratorCore):
@@ -36,14 +37,24 @@
 start_addr: Addr,
 mem_size: str,
 update_limit: int,
+clk_freq: Optional[str],
 ):
 """
 Create a GUPSGeneratorCore as the main generator.
 """
 super().__init__()
 self.generator = GUPSGen(
-start_addr=start_addr, mem_size=mem_size,  
update_limit=update_limit

-)
+start_addr=start_addr,
+mem_size=mem_size,
+update_limit=update_limit,
+)
+if clk_freq:
+clock_domain = SrcClockDomain(
+clock=clk_freq, voltage_domain=VoltageDomain()
+)
+self.generator.clk_domain = clock_domain
+
+

 @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..da27494 100644
--- a/src/python/gem5/components/processors/gups_generator_ep.py
+++ b/src/python/gem5/components/processors/gups_generator_ep.py
@@ -25,17 +25,14 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


-from ...utils.override import overrides
+from typing import Optional
 from m5.objects import Addr
-from m5.util.convert import toMemorySize
-
 from ..boards.mem_mode import MemMode
-
-from .gups_generator_core import GUPSGeneratorCore
-
+from ...utils.override import overrides
+from m5.util.convert import toMemorySize
 from .abstract_processor import AbstractProcessor
 from ..boards.abstract_board import AbstractBoard

[gem5-dev] Change in gem5/gem5[develop]: stdlib: Adding clock_domain to GUPSGenerators

2021-11-23 Thread Mahyar Samani (Gerrit) via gem5-dev
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
---