Navigation

  • index
  • next |
  • previous |
  • gem5 Tutorial 0.1 documentation »

Previous topic

Using the default configuration scripts

Next topic

Setting up your development environment

This Page

  • Show Source

Quick search

Part II: Modifying and extending gem5ΒΆ

  • Setting up your development environment
    • gem5-style guidelines
    • git branches
  • Creating a very simple SimObject
    • Step 1: Create a Python class for your new SimObject
    • Step 2: Implement your SimObject in C++
    • Step 3: Register the SimObject and C++ file
    • Step 4: (Re)-build gem5
    • Step 5: Create the config scripts to use your new SimObject
  • Debugging gem5
    • Using debug flags
    • Adding a new debug flag
    • Debug output
    • Using functions other than DPRINTF
  • Event-driven programming
    • Creating a simple event callback
    • Scheduling events
    • More event scheduling
  • Adding parameters to SimObjects and more events
    • Simple parameters
    • Other SimObjects as parameters
      • Adding the GoodbyeObject as a parameter to the HelloObject
      • Updating the config script
  • Creating SimObjects in the memory system
    • gem5 master and slave ports
      • Packets
      • Port interface
    • Simple memory object example
      • Declare the SimObject
      • Define the SimpleMemobj class
      • Define a slave port type
      • Define a master port type
      • Defining the MemObject interface
      • Implementing basic MemObject functions
      • Implementing slave and master port functions
      • Implementing receiving requests
      • Implementing receiving responses
      • Create a config file
  • Creating a simple cache object
    • SimpleCache SimObject
    • Implementing the SimpleCache
      • Functional cache logic
    • Creating a config file for the cache
    • Adding statistics to the cache

Navigation

  • index
  • next |
  • previous |
  • gem5 Tutorial 0.1 documentation »
Creative Commons License
Learning gem5 by Jason Lowe-Power is licensed under a Creative Commons Attribution 4.0 International License.