use warnings;
use strict;
my @array1 = ('ux_prim_clk', 'ux_side_clk', 'ux_xtal_frm_refclk');
my @array2 = ('ccu_ux_xtal_frm_refclk_ack', 'ibbs_ux_prim_clkack',
'sbr_ux_side_clkack');
my @array1_split_2D = map { [ split /_/, $_ ] } @array1;
my @array2_split_2D = map { [ split /_/, $_ ] } @array2;
for my $i ( 0 .. $#array1_split_2D ) {
for my $j ( 0 .. $#array2_split_2D ) {
my $array2_column_size = @{$array2_split_2D[$j]};
while ( @{$array1_split_2D[$i]} != $array2_column_size ) {
splice @{$array2_split_2D[$j]}, 0, 1;
}
}
}
####
use warnings;
use strict;
use Data::Dump;
my @array1 = ('ux_prim_clk', 'ux_side_clk', 'ux_xtal_frm_refclk');
my @array2 = ('ccu_ux_xtal_frm_refclk_ack', 'ibbs_ux_prim_clkack',
'sbr_ux_side_clkack');
my @array1_split_2D = map {[split /_/,$_]} @array1;
my @array2_split_2D = map {[split /_/,$_]} @array2;
dd "before", \@array1_split_2D, \@array2_split_2D;
for my $i (0..$#array1_split_2D) {
for my $j (0..$#array2_split_2D) {
dd $i, $j;
dd $array1_split_2D[$i], $array2_split_2D[$j];
while ( @{$array1_split_2D[$i]} < @{$array2_split_2D[$j]} ) {
splice @{$array2_split_2D[$j]}, 0, 1;
}
dd $array2_split_2D[$j];
}
}
dd "after", \@array1_split_2D, \@array2_split_2D;
####
(
"before",
[
["ux", "prim", "clk"],
["ux", "side", "clk"],
["ux", "xtal", "frm", "refclk"],
],
[
["ccu", "ux", "xtal", "frm", "refclk", "ack"],
["ibbs", "ux", "prim", "clkack"],
["sbr", "ux", "side", "clkack"],
],
)
(0, 0)
(
["ux", "prim", "clk"],
["ccu", "ux", "xtal", "frm", "refclk", "ack"],
)
["frm", "refclk", "ack"]
(0, 1)
(["ux", "prim", "clk"], ["ibbs", "ux", "prim", "clkack"])
["ux", "prim", "clkack"]
(0, 2)
(["ux", "prim", "clk"], ["sbr", "ux", "side", "clkack"])
["ux", "side", "clkack"]
(1, 0)
(["ux", "side", "clk"], ["frm", "refclk", "ack"])
["frm", "refclk", "ack"]
(1, 1)
(["ux", "side", "clk"], ["ux", "prim", "clkack"])
["ux", "prim", "clkack"]
(1, 2)
(["ux", "side", "clk"], ["ux", "side", "clkack"])
["ux", "side", "clkack"]
(2, 0)
(["ux", "xtal", "frm", "refclk"], ["frm", "refclk", "ack"])
["frm", "refclk", "ack"]
(2, 1)
(["ux", "xtal", "frm", "refclk"], ["ux", "prim", "clkack"])
["ux", "prim", "clkack"]
(2, 2)
(["ux", "xtal", "frm", "refclk"], ["ux", "side", "clkack"])
["ux", "side", "clkack"]
(
"after",
[
["ux", "prim", "clk"],
["ux", "side", "clk"],
["ux", "xtal", "frm", "refclk"],
],
[
["frm", "refclk", "ack"],
["ux", "prim", "clkack"],
["ux", "side", "clkack"],
],
)
####
#!/usr/bin/env perl
use warnings;
use strict;
use String::LCSS qw/lcss/;
my @array1 = ('ux_prim_clk', 'ux_side_clk', 'ux_xtal_frm_refclk');
my @array2 = ('ccu_ux_xtal_frm_refclk_ack', 'ibbs_ux_prim_clkack',
'sbr_ux_side_clkack');
for my $one (@array1) {
for my $two (@array2) {
my $lcss = lcss($one, $two);
printf "%-18s / %-26s -> %s\n", $one, $two, $lcss;
}
}
__END__
ux_prim_clk / ccu_ux_xtal_frm_refclk_ack -> ux_
ux_prim_clk / ibbs_ux_prim_clkack -> ux_prim_clk
ux_prim_clk / sbr_ux_side_clkack -> _clk
ux_side_clk / ccu_ux_xtal_frm_refclk_ack -> ux_
ux_side_clk / ibbs_ux_prim_clkack -> _clk
ux_side_clk / sbr_ux_side_clkack -> ux_side_clk
ux_xtal_frm_refclk / ccu_ux_xtal_frm_refclk_ack -> ux_xtal_frm_refclk
ux_xtal_frm_refclk / ibbs_ux_prim_clkack -> ux_
ux_xtal_frm_refclk / sbr_ux_side_clkack -> ux_