[gem5-dev] Change in gem5/gem5[develop]: stdlib: Adding clock_domain to GUPSGenerators
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
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 ---