1# Copyright (c) 2006-2007 The Regents of The University of Michigan
2# Copyright (c) 2009 Advanced Micro Devices, Inc.
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions are
7# met: redistributions of source code must retain the above copyright
8# notice, this list of conditions and the following disclaimer;
--- 29 unchanged lines hidden (view full) ---
38# Declare caches used by the protocol
39#
40class L1Cache(RubyCache): pass
41class L2Cache(RubyCache): pass
42
43def define_options(parser):
44 return
45
46def create_system(options, full_system, system, dma_ports, ruby_system):
47
48 if buildEnv['PROTOCOL'] != 'MESI_Two_Level':
49 fatal("This script requires the MESI_Two_Level protocol to be built.")
50
51 cpu_sequencers = []
52
53 #
54 # The ruby network creation expects the list of nodes in the system to be
--- 113 unchanged lines hidden (view full) ---
168
169 # Run each of the ruby memory controllers at a ratio of the frequency of
170 # the ruby system
171 # clk_divider value is a fix to pass regression.
172 ruby_system.memctrl_clk_domain = DerivedClockDomain(
173 clk_domain = ruby_system.clk_domain,
174 clk_divider = 3)
175
176 dir_cntrl_nodes = create_directories(options, system.mem_ranges,
177 ruby_system)
178 for dir_cntrl in dir_cntrl_nodes:
179 # Connect the directory controllers and the network
180 dir_cntrl.requestToDir = MessageBuffer()
181 dir_cntrl.requestToDir.slave = ruby_system.network.master
182 dir_cntrl.responseToDir = MessageBuffer()
183 dir_cntrl.responseToDir.slave = ruby_system.network.master
184 dir_cntrl.responseFromDir = MessageBuffer()
185 dir_cntrl.responseFromDir.master = ruby_system.network.slave
--- 40 unchanged lines hidden (view full) ---
226 io_controller.responseFromDir.slave = ruby_system.network.master
227 io_controller.requestToDir = MessageBuffer()
228 io_controller.requestToDir.master = ruby_system.network.slave
229
230 all_cntrls = all_cntrls + [io_controller]
231
232 ruby_system.network.number_of_virtual_networks = 3
233 topology = create_topology(all_cntrls, options)
234 return (cpu_sequencers, dir_cntrl_nodes, topology)
2# Copyright (c) 2009 Advanced Micro Devices, Inc.
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions are
7# met: redistributions of source code must retain the above copyright
8# notice, this list of conditions and the following disclaimer;
--- 29 unchanged lines hidden (view full) ---
38# Declare caches used by the protocol
39#
40class L1Cache(RubyCache): pass
41class L2Cache(RubyCache): pass
42
43def define_options(parser):
44 return
45
46def create_system(options, full_system, system, dma_ports, ruby_system):
47
48 if buildEnv['PROTOCOL'] != 'MESI_Two_Level':
49 fatal("This script requires the MESI_Two_Level protocol to be built.")
50
51 cpu_sequencers = []
52
53 #
54 # The ruby network creation expects the list of nodes in the system to be
--- 113 unchanged lines hidden (view full) ---
168
169 # Run each of the ruby memory controllers at a ratio of the frequency of
170 # the ruby system
171 # clk_divider value is a fix to pass regression.
172 ruby_system.memctrl_clk_domain = DerivedClockDomain(
173 clk_domain = ruby_system.clk_domain,
174 clk_divider = 3)
175
176 dir_cntrl_nodes = create_directories(options, system.mem_ranges,
177 ruby_system)
178 for dir_cntrl in dir_cntrl_nodes:
179 # Connect the directory controllers and the network
180 dir_cntrl.requestToDir = MessageBuffer()
181 dir_cntrl.requestToDir.slave = ruby_system.network.master
182 dir_cntrl.responseToDir = MessageBuffer()
183 dir_cntrl.responseToDir.slave = ruby_system.network.master
184 dir_cntrl.responseFromDir = MessageBuffer()
185 dir_cntrl.responseFromDir.master = ruby_system.network.slave
--- 40 unchanged lines hidden (view full) ---
226 io_controller.responseFromDir.slave = ruby_system.network.master
227 io_controller.requestToDir = MessageBuffer()
228 io_controller.requestToDir.master = ruby_system.network.slave
229
230 all_cntrls = all_cntrls + [io_controller]
231
232 ruby_system.network.number_of_virtual_networks = 3
233 topology = create_topology(all_cntrls, options)
234 return (cpu_sequencers, dir_cntrl_nodes, topology)