Commit 39d3e11e authored by Christian Fibich's avatar Christian Fibich Committed by Stefan Tauner
Browse files

Added no-opt constraints for Xilix Vivado

Addresses issue vecs/fiji#39
parent f00fddc2
...@@ -142,17 +142,36 @@ sub _vivado_pblocks { ...@@ -142,17 +142,36 @@ sub _vivado_pblocks {
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
END_HDR END_HDR
my $fin = "# EOF"; my $fin = "# EOF";
my $no_opt = <<"END_NO_OPT";
# Turn off cross-boundary optimizations
# do not even look at the original netlist
set_property dont_touch TRUE [get_cells -quiet [list $DUT_NAME]]
# do not optimize accross FIJI boundaries
set_property keep_hierarchy TRUE [get_cells -quiet [list $FIJI_NAME]]
END_NO_OPT
my $area = <<"END_AREA"; my $area = <<"END_AREA";
# Create physical constraints for FIJI and DUI
create_pblock pblock_$DUT_NAME create_pblock pblock_$DUT_NAME
create_pblock pblock_$FIJI_PBLOCK create_pblock pblock_$FIJI_PBLOCK
add_cells_to_pblock [get_pblocks pblock_$DUT_NAME] [get_cells -quiet [list $DUT_NAME]] add_cells_to_pblock [get_pblocks pblock_$DUT_NAME] [get_cells -quiet [list $DUT_NAME]]
add_cells_to_pblock [get_pblocks pblock_$FIJI_PBLOCK] [get_cells -quiet [list $FIJI_NAME]] add_cells_to_pblock [get_pblocks pblock_$FIJI_PBLOCK] [get_cells -quiet [list $FIJI_NAME]]
# resize_pblock [get_pblocks pblock_$DUT_NAME] -add {<LO>:<HI>}
# resize_pblock [get_pblocks pblock_$FIJI_PBLOCK] -add {<LO>:<HI>}
END_AREA
# Set size and location of the PBlocks. This default size will likely fail.
# You will likely need to resize them in the GUI.
resize_pblock [get_pblocks pblock_$DUT_NAME] -add {SLICE_X1Y1:SLICE_X10Y10}
resize_pblock [get_pblocks pblock_$FIJI_PBLOCK] -add {SLICE_X11Y1:SLICE_X15Y3}
END_AREA
if ($cfg->{'mode'} eq "FIX_PLACEMENT") { if ($cfg->{'mode'} eq "FIX_PLACEMENT") {
$txt .= $no_opt;
$txt .= $area; $txt .= $area;
} elsif ($cfg->{'mode'} eq "OPT_OFF") {
$txt .= $no_opt;
} elsif ($cfg->{'mode'} ne "ALLOW" && $cfg->{'mode'} ne "OPT_OFF") { } elsif ($cfg->{'mode'} ne "ALLOW" && $cfg->{'mode'} ne "OPT_OFF") {
$logger->error("Unknown SYNTHESIS_MODE " . $cfg->{'mode'}); $logger->error("Unknown SYNTHESIS_MODE " . $cfg->{'mode'});
return undef; return undef;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment