repo2/eclaireXL_ITX/build.sh @ 1475
479 | markw | #!/usr/bin/perl -w
|
|
use strict;
|
|||
my $wanted_variant = shift @ARGV;
|
|||
my $name="eclaireXL";
|
|||
#Added like this to the generated qsf
|
|||
#set_parameter -name TV 1
|
|||
my %variants =
|
|||
(
|
|||
758 | markw | "A2EBAv3rom" =>
|
|
619 | markw | {
|
|
979 | markw | "internal_ram" => 65536,
|
|
619 | markw | "internal_rom" => 1,
|
|
"fpga" => "5CEBA2F23C8",
|
|||
758 | markw | "postfix" => "v3",
|
|
963 | markw | "convert" => "v3a",
|
|
979 | markw | "sid" => 0,
|
|
"enable_polyphasic_scaler" => 0,
|
|||
"enable_area_scaler" => 1
|
|||
619 | markw | },
|
|
758 | markw | "A4EBAv3rom" =>
|
|
{
|
|||
"internal_ram" => 131072,
|
|||
"internal_rom" => 1,
|
|||
"fpga" => "5CEBA4F23C8",
|
|||
"postfix" => "v3",
|
|||
963 | markw | "convert" => "v3b",
|
|
979 | markw | "sid" => 1,
|
|
"enable_polyphasic_scaler" => 0,
|
|||
"enable_area_scaler" => 1
|
|||
758 | markw | },
|
|
479 | markw | "A2EBArom" =>
|
|
{
|
|||
979 | markw | "internal_ram" => 65536,
|
|
479 | markw | "internal_rom" => 1,
|
|
"fpga" => "5CEBA2F23C8",
|
|||
963 | markw | "postfix" => "v1",
|
|
979 | markw | "sid" => 0,
|
|
"enable_polyphasic_scaler" => 0,
|
|||
"enable_area_scaler" => 1
|
|||
479 | markw | },
|
|
505 | markw | "A4EBArom" =>
|
|
{
|
|||
617 | markw | "internal_ram" => 131072,
|
|
505 | markw | "internal_rom" => 1,
|
|
"fpga" => "5CEBA4F23C8",
|
|||
963 | markw | "postfix" => "v2",
|
|
978 | markw | "sid" => 1,
|
|
"enable_polyphasic_scaler" => 1,
|
|||
"enable_area_scaler" => 1
|
|||
505 | markw | },
|
|
910 | markw | # "A2EBAproto" =>
|
|
# {
|
|||
# "internal_ram" => 0,
|
|||
# "internal_rom" => 0,
|
|||
# "fpga" => "5CEBA2F23C8",
|
|||
# "postfix" => "proto"
|
|||
# },
|
|||
# "A2EBAproto_hdmiOnGPIO" =>
|
|||
# {
|
|||
# "internal_ram" => 0,
|
|||
# "internal_rom" => 0,
|
|||
# "fpga" => "5CEBA2F23C8",
|
|||
# "postfix" => "proto",
|
|||
# "hdmiOnGPIO" => 1
|
|||
# },
|
|||
# "A2EBA" =>
|
|||
# {
|
|||
# "internal_ram" => 65536,
|
|||
# "internal_rom" => 0,
|
|||
# "fpga" => "5CEBA2F23C8",
|
|||
# "postfix" => "v1"
|
|||
# },
|
|||
# "A4EBA" =>
|
|||
# {
|
|||
# "internal_ram" => 131072,
|
|||
# "internal_rom" => 0,
|
|||
# "fpga" => "5CEBA4F23C8",
|
|||
# "postfix" => "v2"
|
|||
# },
|
|||
# "A4EBAB" =>
|
|||
# {
|
|||
# "internal_ram" => 131072,
|
|||
# "internal_rom" => 0,
|
|||
# "fpga" => "5CEBA4F23C8",
|
|||
# "postfix" => "v2"
|
|||
# }
|
|||
479 | markw | );
|
|
if (not defined $wanted_variant or (not exists $variants{$wanted_variant} and $wanted_variant ne "ALL"))
|
|||
{
|
|||
die "Provide variant of ALL or ".join ",",sort keys %variants;
|
|||
}
|
|||
foreach my $variant (sort keys %variants)
|
|||
{
|
|||
next if ($wanted_variant ne $variant and $wanted_variant ne "ALL");
|
|||
print "Building $variant of $name\n";
|
|||
679 | markw | my $postfix = $variants{$variant}->{"postfix"};
|
|
delete $variants{$variant}->{"postfix"};
|
|||
758 | markw | my $convertpostfix = $postfix;
|
|
if (exists $variants{$variant}->{"convert"})
|
|||
{
|
|||
$convertpostfix = $variants{$variant}->{"convert"};
|
|||
delete $variants{$variant}->{"convert"};
|
|||
}
|
|||
679 | markw | print `./makemif$postfix BUILD`;
|
|
479 | markw | my $dir = "build_$variant";
|
|
`rm -rf $dir`;
|
|||
mkdir $dir;
|
|||
`cp -a *pll* $dir`;
|
|||
`cp -a *fifo* $dir`;
|
|||
`cp -a *zpu_rom* $dir`;
|
|||
`cp -a *altddio* $dir`;
|
|||
679 | markw | `cp *.hex ./$dir/`;
|
|
479 | markw | #`cp -a *serial_loader* $dir`;
|
|
`cp *.v $dir`;
|
|||
`cp clkctrl* -r $dir`;
|
|||
`cp ddioclkctrl* -r $dir`;
|
|||
`cp *.vhd* $dir`;
|
|||
`cp atari800core*.sdc $dir`;
|
|||
`mkdir $dir/common`;
|
|||
`mkdir $dir/common/a8core`;
|
|||
963 | markw | `mkdir $dir/common/a8core/sid8580`;
|
|
479 | markw | `mkdir $dir/common/components`;
|
|
`mkdir $dir/common/zpu`;
|
|||
`mkdir $dir/svideo`;
|
|||
`mkdir $dir/hdmi`;
|
|||
977 | markw | `mkdir $dir/scaler`;
|
|
479 | markw | mkdir "./$dir/common/components/usbhostslave";
|
|
`cp ../common/components/usbhostslave/trunk/RTL/*/*.v ./$dir/common/components/usbhostslave`;
|
|||
`cp ../common/a8core/* ./$dir/common/a8core`;
|
|||
963 | markw | `cp ../common/a8core/sid8580/* ./$dir/common/a8core/sid8580/`;
|
|
839 | markw | `cp -r ../common/components/* ./$dir/common/components`;
|
|
`mv ./$dir/common/components/*cycloneV/* ./$dir/common/components/`;
|
|||
479 | markw | `cp ../common/zpu/* ./$dir/common/zpu`;
|
|
`cp ./svideo/* ./$dir/svideo`;
|
|||
`cp ./hdmi/* ./$dir/hdmi`;
|
|||
977 | markw | `cp ./scaler/* ./$dir/scaler`;
|
|
660 | markw | `cp -r ./sfl/synthesis/* ./$dir/`;
|
|
697 | markw | `cp zpu_rom$postfix.mif build_$variant/zpu_rom.mif`;
|
|
479 | markw | ||
chdir $dir;
|
|||
my $fpga = $variants{$variant}->{"fpga"};
|
|||
977 | markw | `../makeqsf ../atari800core_eclaireXL$postfix.qsf ./hdmi ./scaler ./svideo ./common/a8core ./common/a8core/sid8580 ./common/components ./common/zpu ./common/components/usbhostslave`;
|
|
479 | markw | ||
`echo set_global_assignment -name DEVICE $fpga >> atari800core_eclaireXL$postfix.qsf`;
|
|||
foreach my $key (sort keys %{$variants{$variant}})
|
|||
{
|
|||
my $val = $variants{$variant}->{$key};
|
|||
`echo set_parameter -name $key $val >> atari800core_eclaireXL$postfix.qsf`;
|
|||
}
|
|||
`quartus_sh --flow compile atari800core_eclaireXL$postfix > build.log 2> build.err`;
|
|||
758 | markw | `quartus_cpf --convert ../convert$convertpostfix.cof`;
|
|
479 | markw | ||
chdir "..";
|
|||
}
|