32 lines
680 B
Perl
32 lines
680 B
Perl
#!/usr/bin/perl
|
|
use warnings;
|
|
use strict;
|
|
|
|
my $phaseLength = 100;
|
|
my $phaseStatus = 0;
|
|
my $max = 100000;
|
|
my $base = 0;
|
|
my $maxAddressExp = 26;
|
|
my $maxAddress = 2**$maxAddressExp;
|
|
|
|
for(my $i = 0; $i < $max; $i++)
|
|
{
|
|
if($phaseStatus == 0) # Linear
|
|
{
|
|
my $addr = (($base << 6) + (($i % $phaseLength) << 6)) % $maxAddress;
|
|
print "$i: read 0x".sprintf("%x", $addr)."\n";
|
|
}
|
|
else # Random
|
|
{
|
|
my $addr = (rand(2**($maxAddressExp-6))) << 6;
|
|
print "$i: read 0x".sprintf("%x", $addr)."\n";
|
|
}
|
|
|
|
if($i % 100 == 0 && $i != 0)
|
|
{
|
|
$phaseStatus = ($phaseStatus == 0) ? 1 : 0;
|
|
$base = rand(2**($maxAddressExp-6));
|
|
}
|
|
}
|
|
|