Files
DRAMSys/dram/resources/scripts/address_scrambler.pl
2014-08-07 13:36:27 +02:00

65 lines
1.8 KiB
Perl

#!/usr/bin/perl
use warnings;
use strict;
my $filename = shift || die;
open(FH, "$filename");
while(<FH>)
{
# Get all the data adress:
$_ =~ /(\d+):\s+(\w+)\s+0x([\w\d]+)/;
my $time = $1;
my $command = $2;
my $address = $3;
my $new_address;
# Convert to binary:
$address = sprintf( "%032b", hex( $address ) );
# example:
# 31 0
# 00000000000000000000000000000001
# 00000000000000000000010000000000
# Swap adresses:
$new_address = substr($address,31 - 31,1). # R 31
substr($address,31 - 30,1). # R 30
substr($address,31 - 29,1). # R 29
substr($address,31 - 28,1). # R 28
substr($address,31 - 27,1). # R 27
substr($address,31 - 26,1). # R 26
substr($address,31 - 25,1). # R 25
substr($address,31 - 24,1). # R 24
substr($address,31 - 23,1). # R 23
substr($address,31 - 22,1). # R 22
substr($address,31 - 21,1). # R 21
substr($address,31 - 20,1). # R 20
substr($address,31 - 19,1). # R 19
substr($address,31 - 18,1). # R 18
substr($address,31 - 17,1). # R 17
substr($address,31 - 16,1). # R 16
substr($address,31 - 8,1). # R 15
substr($address,31 - 7,1). # R 14
substr($address,31 - 6,1). # R 13
substr($address,31 - 11,1). # B 12
substr($address,31 - 9,1). # B 11
substr($address,31 - 0,1). # B 10
substr($address,31 - 15,1). # C 9
substr($address,31 - 14,1). # C 8
substr($address,31 - 13,1). # C 7
substr($address,31 - 12,1). # C 6
substr($address,31 - 10,1). # C 5
substr($address,31 - 5,1). # C 4
substr($address,31 - 4,1). # C 3
substr($address,31 - 3,1). # C 2
substr($address,31 - 2,1). # C 1
substr($address,31 - 1,1); # C 0
$new_address = sprintf("%X", oct( "0b$new_address" ) );
print $time.":\t".$command."\t0x".$new_address."\n";
}