From: Jan Michel Date: Thu, 31 Aug 2017 09:49:40 +0000 (+0200) Subject: More update / fixes needed for recompile - Fpga1 doesn't compile yet X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=HEAD;p=ctsaddon.git More update / fixes needed for recompile - Fpga1 doesn't compile yet --- diff --git a/compile1_frankfurt.pl b/compile1_frankfurt.pl index dd3c91c..e150a58 100755 --- a/compile1_frankfurt.pl +++ b/compile1_frankfurt.pl @@ -13,15 +13,18 @@ use Data::Dumper; use warnings; use strict; -my $lattice_path = '/d/sugar/lattice/ispLEVER8.0/isptools/'; -#my $synplify_path = '/d/sugar/lattice/synplify/syn96L3/synplify_linux/'; -my $synplify_path = '/d/sugar/lattice/synplify/D-2010.03/'; +#my $lattice_path = '/d/jspc29/lattice/ispLEVER8.1/isptools/'; +#my $synplify_path = '/d/jspc29/lattice/synplify/D-2010.03/'; +#my $lattice_path = '/d/jspc29/lattice/diamond/3.6_x64'; +#my $synplify_path = '/d/jspc29/lattice/synplify/K-2015.09/'; +my $lattice_path = '/d/jspc29/lattice/diamond/3.9_x64'; +my $synplify_path = '/d/jspc29/lattice/synplify/M-2017.03/'; use FileHandle; $ENV{'SYNPLIFY'}=$synplify_path; $ENV{'SYN_DISABLE_RAINBOW_DONGLE'}=1; -$ENV{'LM_LICENSE_FILE'}="27000\@localhost"; +$ENV{'LM_LICENSE_FILE'}="27020\@jspc29"; my $TOPNAME="cts_fpga1"; @@ -33,7 +36,7 @@ my $SPEEDGRADE="7"; #create full lpf file -system("cp ../trbnet/pinout/$TOPNAME.lpf workdir/$TOPNAME.lpf"); +system("cp $TOPNAME.lpf workdir/$TOPNAME.lpf"); system("cat constraints_$TOPNAME.lpf >> workdir/$TOPNAME.lpf"); #set -e @@ -92,20 +95,20 @@ foreach (@a) } #if (0){ -$ENV{'LM_LICENSE_FILE'}="1710\@cronos.e12.physik.tu-muenchen.de"; +$ENV{'LM_LICENSE_FILE'}="1702\@hadeb05.gsi.de"; -$c=qq| $lattice_path/ispfpga/bin/lin/edif2ngd -l $FAMILYNAME -d $DEVICENAME "$TOPNAME.edf" "$TOPNAME.ngo" |; +$c=qq| $lattice_path/ispfpga/bin/lin64/edif2ngd -l $FAMILYNAME -d $DEVICENAME "$TOPNAME.edf" "$TOPNAME.ngo" |; execute($c); -$c=qq|$lattice_path/ispfpga/bin/lin/edfupdate -t "$TOPNAME.tcy" -w "$TOPNAME.ngo" -m "$TOPNAME.ngo" "$TOPNAME.ngx"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/edfupdate -t "$TOPNAME.tcy" -w "$TOPNAME.ngo" -m "$TOPNAME.ngo" "$TOPNAME.ngx"|; execute($c); -$c=qq|$lattice_path/ispfpga/bin/lin/ngdbuild -a $FAMILYNAME -d $DEVICENAME -p "$lattice_path/ispfpga/or5s00/data" -dt "$TOPNAME.ngo" "$TOPNAME.ngd"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/ngdbuild -a $FAMILYNAME -d $DEVICENAME -p "$lattice_path/ispfpga/or5s00/data" -dt "$TOPNAME.ngo" "$TOPNAME.ngd"|; execute($c); my $tpmap = $TOPNAME . "_map" ; -$c=qq|$lattice_path/ispfpga/bin/lin/map -retime -split_node -a $FAMILYNAME -p $DEVICENAME -t $PACKAGE -s $SPEEDGRADE "$TOPNAME.ngd" -o "$tpmap.ncd" -mp "$TOPNAME.mrp" "$TOPNAME.lpf"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/map -retime -split_node -a $FAMILYNAME -p $DEVICENAME -t $PACKAGE -s $SPEEDGRADE "$TOPNAME.ngd" -o "$tpmap.ncd" -mp "$TOPNAME.mrp" "$TOPNAME.lpf"|; execute($c); @@ -113,23 +116,24 @@ system("rm $TOPNAME.ncd"); #$c=qq|$lattice_path/ispfpga/bin/lin/par -w -y -l 4 -i 15 "$tpmap.ncd" "$TOPNAME.ncd" "$TOPNAME.prf" |; #$c=qq|$lattice_path/ispfpga/bin/lin/par -f $TOPNAME.p2t "$tpmap.ncd" "$TOPNAME.ncd" "$TOPNAME.prf" |; -$c=qq|$lattice_path/ispfpga/bin/lin/multipar -pr "$TOPNAME.prf" -o "mpar_$TOPNAME.rpt" -log "mpar_$TOPNAME.log" -p "../$TOPNAME.p2t" "$tpmap.ncd" "$TOPNAME.ncd"|; +#$c=qq|$lattice_path/ispfpga/bin/lin64/par -pr "$TOPNAME.prf" -o "mpar_$TOPNAME.rpt" -log "mpar_$TOPNAME.log" -p "../$TOPNAME.p2t" "$tpmap.ncd" "$TOPNAME.ncd"|; +$c=qq|LC_ALL=en_US.UTF-8; par -f "../$TOPNAME.p2t" $tpmap.ncd $TOPNAME.dir $TOPNAME.prf;|; execute($c); # IOR IO Timing Report -$c=qq|$lattice_path/ispfpga/bin/lin/iotiming -s "$TOPNAME.ncd" "$TOPNAME.prf"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/iotiming -s "$TOPNAME.ncd" "$TOPNAME.prf"|; execute($c); # TWR Timing Report #$c=qq|$lattice_path/ispfpga/bin/lin/tg "$TOPNAME.ncd" "$TOPNAME.prf"|; -$c=qq|$lattice_path/ispfpga/bin/lin/trce -c -v 15 -o "$TOPNAME.twr.setup" "$TOPNAME.ncd" "$TOPNAME.prf"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/trce -c -v 15 -o "$TOPNAME.twr.setup" "$TOPNAME.ncd" "$TOPNAME.prf"|; execute($c); -$c=qq|$lattice_path/ispfpga/bin/lin/trce -hld -c -v 5 -o "$TOPNAME.twr.hold" "$TOPNAME.ncd" "$TOPNAME.prf"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/trce -hld -c -v 5 -o "$TOPNAME.twr.hold" "$TOPNAME.ncd" "$TOPNAME.prf"|; execute($c); -$c=qq|$lattice_path/ispfpga/bin/lin/bitgen -w "$TOPNAME.ncd" -f "$TOPNAME.t2b" "$TOPNAME.prf"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/bitgen -w "$TOPNAME.ncd" -f "$TOPNAME.t2b" "$TOPNAME.prf"|; execute($c); chdir ".."; diff --git a/compile2_frankfurt.pl b/compile2_frankfurt.pl index 48c2bf4..f865df2 100644 --- a/compile2_frankfurt.pl +++ b/compile2_frankfurt.pl @@ -13,15 +13,18 @@ use Data::Dumper; use warnings; use strict; -my $lattice_path = '/d/sugar/lattice/ispLEVER8.1/isptools/'; +#my $lattice_path = '/d/sugar/lattice/ispLEVER8.1/isptools/'; #my $synplify_path = '/d/sugar/lattice/synplify/syn96L3/synplify_linux/'; -my $synplify_path = '/d/sugar/lattice/synplify/D-2010.03/'; +#my $synplify_path = '/d/sugar/lattice/synplify/D-2010.03/'; +my $lattice_path = '/d/jspc29/lattice/diamond/3.6_x64'; +my $synplify_path = '/d/jspc29/lattice/synplify/K-2015.09/'; + use FileHandle; $ENV{'SYNPLIFY'}=$synplify_path; $ENV{'SYN_DISABLE_RAINBOW_DONGLE'}=1; -$ENV{'LM_LICENSE_FILE'}="27000\@localhost"; +$ENV{'LM_LICENSE_FILE'}="27020\@jspc29"; my $TOPNAME="cts_fpga2"; @@ -33,7 +36,7 @@ my $SPEEDGRADE="5"; #create full lpf file -system("cp ../trbnet/pinout/$TOPNAME.lpf workdir/$TOPNAME.lpf"); +system("cp $TOPNAME.lpf workdir/$TOPNAME.lpf"); system("cat constraints_$TOPNAME.lpf >> workdir/$TOPNAME.lpf"); #set -e @@ -92,20 +95,20 @@ foreach (@a) } #if (0){ -$ENV{'LM_LICENSE_FILE'}="1710\@cronos.e12.physik.tu-muenchen.de"; +$ENV{'LM_LICENSE_FILE'}="1702\@hadeb05.gsi.de"; -$c=qq| $lattice_path/ispfpga/bin/lin/edif2ngd -l $FAMILYNAME -d $DEVICENAME "$TOPNAME.edf" "$TOPNAME.ngo" |; +$c=qq| $lattice_path/ispfpga/bin/lin64/edif2ngd -l $FAMILYNAME -d $DEVICENAME "$TOPNAME.edf" "$TOPNAME.ngo" |; execute($c); -$c=qq|$lattice_path/ispfpga/bin/lin/edfupdate -t "$TOPNAME.tcy" -w "$TOPNAME.ngo" -m "$TOPNAME.ngo" "$TOPNAME.ngx"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/edfupdate -t "$TOPNAME.tcy" -w "$TOPNAME.ngo" -m "$TOPNAME.ngo" "$TOPNAME.ngx"|; execute($c); -$c=qq|$lattice_path/ispfpga/bin/lin/ngdbuild -a $FAMILYNAME -d $DEVICENAME -p "$lattice_path/ispfpga/or5s00/data" -dt "$TOPNAME.ngo" "$TOPNAME.ngd"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/ngdbuild -a $FAMILYNAME -d $DEVICENAME -p "$lattice_path/ispfpga/or5s00/data" -dt "$TOPNAME.ngo" "$TOPNAME.ngd"|; execute($c); my $tpmap = $TOPNAME . "_map" ; -$c=qq|$lattice_path/ispfpga/bin/lin/map -retime -split_node -a $FAMILYNAME -p $DEVICENAME -t $PACKAGE -s $SPEEDGRADE "$TOPNAME.ngd" -o "$tpmap.ncd" -mp "$TOPNAME.mrp" "$TOPNAME.lpf"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/map -retime -split_node -a $FAMILYNAME -p $DEVICENAME -t $PACKAGE -s $SPEEDGRADE "$TOPNAME.ngd" -o "$tpmap.ncd" -mp "$TOPNAME.mrp" "$TOPNAME.lpf"|; execute($c); @@ -113,23 +116,24 @@ system("rm $TOPNAME.ncd"); #$c=qq|$lattice_path/ispfpga/bin/lin/par -w -y -l 4 -i 15 "$tpmap.ncd" "$TOPNAME.ncd" "$TOPNAME.prf" |; #$c=qq|$lattice_path/ispfpga/bin/lin/par -f $TOPNAME.p2t "$tpmap.ncd" "$TOPNAME.ncd" "$TOPNAME.prf" |; -$c=qq|$lattice_path/ispfpga/bin/lin/multipar -pr "$TOPNAME.prf" -o "mpar_$TOPNAME.rpt" -log "mpar_$TOPNAME.log" -p "../$TOPNAME.p2t" "$tpmap.ncd" "$TOPNAME.ncd"|; +# $c=qq|$lattice_path/ispfpga/bin/lin64/multipar -pr "$TOPNAME.prf" -o "mpar_$TOPNAME.rpt" -log "mpar_$TOPNAME.log" -p "../$TOPNAME.p2t" "$tpmap.ncd" "$TOPNAME.ncd"|; +$c=qq|LC_ALL=en_US.UTF-8; par -f "../$TOPNAME.p2t" $tpmap.ncd $TOPNAME.dir $TOPNAME.prf;|; execute($c); # IOR IO Timing Report -$c=qq|$lattice_path/ispfpga/bin/lin/iotiming -s "$TOPNAME.ncd" "$TOPNAME.prf"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/iotiming -s "$TOPNAME.ncd" "$TOPNAME.prf"|; execute($c); # TWR Timing Report #$c=qq|$lattice_path/ispfpga/bin/lin/tg "$TOPNAME.ncd" "$TOPNAME.prf"|; -$c=qq|$lattice_path/ispfpga/bin/lin/trce -c -v 15 -o "$TOPNAME.twr.setup" "$TOPNAME.ncd" "$TOPNAME.prf"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/trce -c -v 15 -o "$TOPNAME.twr.setup" "$TOPNAME.ncd" "$TOPNAME.prf"|; execute($c); -$c=qq|$lattice_path/ispfpga/bin/lin/trce -hld -c -v 5 -o "$TOPNAME.twr.hold" "$TOPNAME.ncd" "$TOPNAME.prf"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/trce -hld -c -v 5 -o "$TOPNAME.twr.hold" "$TOPNAME.ncd" "$TOPNAME.prf"|; execute($c); -$c=qq|$lattice_path/ispfpga/bin/lin/bitgen -w "$TOPNAME.ncd" -f "$TOPNAME.t2b" "$TOPNAME.prf"|; +$c=qq|$lattice_path/ispfpga/bin/lin64/bitgen -w "$TOPNAME.ncd" -f "$TOPNAME.t2b" "$TOPNAME.prf"|; execute($c); chdir ".."; diff --git a/constraints_cts_fpga1.lpf b/constraints_cts_fpga1.lpf index e74b804..d07f88c 100644 --- a/constraints_cts_fpga1.lpf +++ b/constraints_cts_fpga1.lpf @@ -8,8 +8,7 @@ BLOCK RD_DURING_WR_PATHS ; ######################################### FREQUENCY PORT CLK_200_IN 200.000000 MHz HOLD_MARGIN 0.100000 nS ; - - - +MULTICYCLE FROM CELL "reset_i_100*" 20 ns; +MULTICYCLE FROM CLKNET "clk_100" TO CLKNET "THE_DDR2_BUSSES/ddr_div_out_clk[0]" 20 ns; diff --git a/cts_fpga1.lpf b/cts_fpga1.lpf index 3632bc0..feaf667 100644 --- a/cts_fpga1.lpf +++ b/cts_fpga1.lpf @@ -7,12 +7,14 @@ BLOCK RESETPATHS ; BLOCK ASYNCPATHS ; IOBUF ALLPORTS IO_TYPE=LVTTL33 PULLMODE=DOWN ; +IOBUF ALLPORTS SLEWRATE="FAST"; ################################################################# # SPI CLK ################################################################# -SYSCONFIG MCCLK_FREQ = 20; +SYSCONFIG MCCLK_FREQ = 33; + ################################################################# # Clock I/O @@ -23,9 +25,8 @@ LOCATE COMP "CLK_200_IN" SITE "L1"; IOBUF PORT "ADO_CLKOUT" IO_TYPE=LVDS ; IOBUF PORT "CLK_200_IN" IO_TYPE=LVDS ; -FREQUENCY PORT CLK_200_IN 200.000000 MHz; +#FREQUENCY PORT CLK_200_IN 200.000000 MHz; -#USE PRIMARY NET ""; ################################################################# # Reset ################################################################# @@ -39,9 +40,13 @@ FREQUENCY PORT CLK_200_IN 200.000000 MHz; # DLL for edge clokcs ################################################################# -LOCATE COMP "the_ddr2_buses/MAKE_DDR_CONNECTIONS_0_DLL_EDGE_INJECTION_COMPENSATE" SITE "DLL_URCC"; +LOCATE COMP "THE_DDR2_BUSSES/MAKE_DDR_CONNECTIONS.0.DLL_EDGE_INJECTION_COMPENSATE" SITE "DLL_URCC"; +LOCATE COMP "THE_DDR2_BUSSES/MAKE_DDR_CONNECTIONS.1.DLL_EDGE_INJECTION_COMPENSATE" SITE "DLL_LRCD"; +LOCATE COMP "THE_DDR2_BUSSES/MAKE_DDR_CONNECTIONS.2.DLL_EDGE_INJECTION_COMPENSATE" SITE "DLL_LLCE"; +LOCATE COMP "THE_DDR2_BUSSES/MAKE_DDR_CONNECTIONS.3.DLL_EDGE_INJECTION_COMPENSATE" SITE "DLL_ULCC"; + ################################################################# # To TRB ################################################################# @@ -175,7 +180,7 @@ LOCATE COMP "ONEWIRE_MONITOR_IN" SITE "AF17"; #"FFC_N__11" DEFINE PORT GROUP "FFC_group" "FFC*" ; IOBUF GROUP "FFC_group" IO_TYPE=LVCMOS25 PULLMODE=DOWN DRIVE=16; -IOBUF PORT "ONEWIRE_MONITOR_IN" IO_TYPE=LVCMOS25 PULLMODE=UP ; +#IOBUF PORT "ONEWIRE_MONITOR_IN" IO_TYPE=LVCMOS25 PULLMODE=UP ; ################################################################# # Display / LED @@ -230,11 +235,14 @@ LOCATE COMP "LVDS_OUT_14" SITE "AB29"; #LOCATE COMP "LVDS_OUT_15" SITE "AB32"; LOCATE COMP "LVDS_IN" SITE "AB32"; -IOBUF PORT "LVDS_IN" IO_TYPE=LVDS25; +IOBUF PORT "LVDS_IN" IO_TYPE=LVDS; DEFINE PORT GROUP "LVDS_group" "LVDS*" ; IOBUF GROUP "LVDS_group" IO_TYPE=LVDS; +DEFINE PORT GROUP "LVDS_group2" "buf_Q*" ; +IOBUF GROUP "LVDS_group2" IO_TYPE=LVDS; + LOCATE COMP "PECL_OUT_0" SITE "M4"; LOCATE COMP "PECL_OUT_1" SITE "M3"; LOCATE COMP "PECL_OUT_2" SITE "L2"; @@ -363,7 +371,7 @@ LOCATE COMP "TRIG_IN_62" SITE "D32"; LOCATE COMP "TRIG_IN_63" SITE "K25"; DEFINE PORT GROUP "TRIG_group" "TRIG*" ; IOBUF GROUP "TRIG_group" IO_TYPE=LVDS; -INPUT "TRIG_group" SETUP 1 ns CLKPORT="clk_400" + ################################################################# # Pins not needed in lpf ################################################################# diff --git a/cts_fpga1.p2t b/cts_fpga1.p2t index 762eeb0..90fdd57 100644 --- a/cts_fpga1.p2t +++ b/cts_fpga1.p2t @@ -4,7 +4,7 @@ -n 1 -y -s 12 --t 1 +-t 3 -c 1 -e 2 #-m nodelist.txt