60a61,74
> parser.add_option("--ranks", "-r", type="int", default=1,
> help = "Number of ranks to iterate across")
>
> parser.add_option("--rd_perc", type="int", default=100,
> help = "Percentage of read commands")
>
> parser.add_option("--mode", type="choice", default="DRAM",
> choices=["DRAM", "DRAM_ROTATE"],
> help = "DRAM: Random traffic; \
> DRAM_ROTATE: Traffic rotating across banks and ranks")
>
> parser.add_option("--addr_map", type="int", default=1,
> help = "0: RoCoRaBaCh; 1: RoRaBaCoCh/RoRaBaChCo")
>
92,93c106,107
< # for now the generator assumes a single rank
< system.mem_ctrls[0].ranks_per_channel = 1
---
> # Set number of ranks based on input argument; default is 1 rank
> system.mem_ctrls[0].ranks_per_channel = options.ranks
94a109,117
> # Set the address mapping based on input argument
> # Default to RoRaBaCoCh
> if options.addr_map == 0:
> system.mem_ctrls[0].addr_mapping = "RoCoRaBaCh"
> elif options.addr_map == 1:
> system.mem_ctrls[0].addr_mapping = "RoRaBaCoCh"
> else:
> fatal("Did not specify a valid address map argument")
>
137,140c160,165
< cfg_file.write("STATE %d %d DRAM 100 0 %d "
< "%d %d %d %d %d %d %d %d 1\n" %
< (nxt_state, period, max_addr, burst_size, itt, itt, 0,
< stride_size, page_size, nbr_banks, bank))
---
> cfg_file.write("STATE %d %d %s %d 0 %d %d "
> "%d %d %d %d %d %d %d %d %d\n" %
> (nxt_state, period, options.mode, options.rd_perc,
> max_addr, burst_size, itt, itt, 0, stride_size,
> page_size, nbr_banks, bank, options.addr_map,
> options.ranks))