From: Jan Michel Date: Tue, 26 Nov 2013 13:28:30 +0000 (+0100) Subject: latest changes X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=cde7de4ca7056752ab3cfd34c75070178c352b10;p=pexor.git latest changes --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f894493 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +version.vhd +*.log +*~ +.kateproject.d +workdir diff --git a/.kateproject b/.kateproject new file mode 100644 index 0000000..f8aa932 --- /dev/null +++ b/.kateproject @@ -0,0 +1,4 @@ +{ + "name": "Pexor" +, "files": [ { "git": 1 } ] +} diff --git a/compile_frankfurt.pl b/compile_frankfurt.pl index a8cb49e..2803d99 100755 --- a/compile_frankfurt.pl +++ b/compile_frankfurt.pl @@ -13,19 +13,26 @@ use Data::Dumper; use warnings; use strict; +################################################################################### +#Settings for this project +my $TOPNAME = "pexor"; #Name of top-level entity +my $lattice_path = '/d/jspc29/lattice/diamond/2.1_x64'; +#my $lattice_path = '/d/jspc29/lattice/diamond/2.0'; +#my $lattice_path = '/d/jspc29/lattice/diamond/1.4.2.105'; +#my $synplify_path = '/d/jspc29/lattice/synplify/G-2012.09-SP1/'; +my $synplify_path = '/d/jspc29/lattice/synplify/F-2012.03-SP1/'; +my $lm_license_file_for_synplify = "27000\@lxcad01.gsi.de"; +my $lm_license_file_for_par = "1702\@hadeb05.gsi.de"; +################################################################################### -my $lattice_path = '/d/jspc29/lattice/diamond/1.4'; -my $synplify_path = '/d/jspc29/lattice/synplify/D-2010.03/'; use FileHandle; $ENV{'SYNPLIFY'}=$synplify_path; $ENV{'SYN_DISABLE_RAINBOW_DONGLE'}=1; -$ENV{'LM_LICENSE_FILE'}="27000\@localhost"; +$ENV{'LM_LICENSE_FILE'}=$lm_license_file_for_synplify; -my $TOPNAME="pexor"; - my $FAMILYNAME="LatticeSCM"; my $DEVICENAME="LFSCM3GA40EP1"; my $PACKAGE="FFBGA1020"; @@ -93,7 +100,7 @@ foreach (@a) } #if (0){ -$ENV{'LM_LICENSE_FILE'}="1710\@cronos.e12.physik.tu-muenchen.de"; +$ENV{'LM_LICENSE_FILE'}=$lm_license_file_for_par; $c=qq| $lattice_path/ispfpga/bin/lin/edif2ngd -l $FAMILYNAME -d $DEVICENAME "$TOPNAME.edf" "$TOPNAME.ngo" |; execute($c); @@ -106,7 +113,8 @@ 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/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/lin/map -retime -split_node -a $FAMILYNAME -p $DEVICENAME -t $PACKAGE -s $SPEEDGRADE "$TOPNAME.ngd" -pr "$TOPNAME.prf" -o "$tpmap.ncd" -mp "$TOPNAME.mrp" "$TOPNAME.lpf"|; execute($c); @@ -114,7 +122,9 @@ 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/lin/multipar -pr "$TOPNAME.prf" -o "mpar_$TOPNAME.rpt" -log "mpar_$TOPNAME.log" -p "../$TOPNAME.p2t" "$tpmap.ncd" "$TOPNAME.ncd"|; +$c=qq|mpartrce -p "../$TOPNAME.p2t" -f "../$TOPNAME.p3t" -tf "$TOPNAME.pt" "|.$TOPNAME.qq|_map.ncd" "$TOPNAME.ncd"|; + execute($c); # IOR IO Timing Report diff --git a/pexor.p2t b/pexor.p2t index e1f3bc5..7b93eba 100644 --- a/pexor.p2t +++ b/pexor.p2t @@ -4,7 +4,7 @@ -n 1 -y -s 12 --t 13 +-t 14 -c 1 -e 2 -m nodelist.txt diff --git a/pexor.p3t b/pexor.p3t new file mode 100644 index 0000000..51fe4bd --- /dev/null +++ b/pexor.p3t @@ -0,0 +1,5 @@ +-rem +-distrce +-log "pexor.log" +-o "pexor.csv" +-pr "pexor.prf" diff --git a/pexor.prj b/pexor.prj index 04bc8ca..1407784 100644 --- a/pexor.prj +++ b/pexor.prj @@ -106,7 +106,7 @@ add_file -vhdl -lib work "../trbnet/lattice/scm/fifo_32x512.vhd" add_file -vhdl -lib work "design/dma_core.vhd" -add_file -verilog "/d/sugar/lattice/diamond/1.1/cae_library/synthesis/verilog/scm.v" +add_file -verilog "/d/jspc29/lattice/diamond/2.1_x64/cae_library/synthesis/verilog/scm.v" add_file -vhdl -lib work "design/cores/fifo_32to64x512_dualclock.vhd" add_file -vhdl -lib work "design/cores/fifo_16x512_dualclock.vhd" add_file -vhdl -lib work "design/cores/fifo_9x512_dualclock.vhd" diff --git a/pexor.pt b/pexor.pt new file mode 100644 index 0000000..b5319a3 --- /dev/null +++ b/pexor.pt @@ -0,0 +1,10 @@ +-v +10 + + + + +-gt +-sethld +-sp 8 +-sphld m diff --git a/pexor.vhd b/pexor.vhd index 1f5b86b..e731391 100644 --- a/pexor.vhd +++ b/pexor.vhd @@ -10,7 +10,7 @@ use work.version.all; entity pexor is generic( - NUM_LINKS : integer range 1 to 4 := 2 + NUM_LINKS : integer range 1 to 4 := 1 ); port( --Clock and Reset @@ -320,7 +320,7 @@ begin -- ); -med_stat_op(31 downto 16) <= x"000" & "0111"; +-- med_stat_op(31 downto 16) <= x"000" & "0111"; --------------------------------------------------------------------------- -- Active Endpoint --------------------------------------------------------------------------- @@ -473,8 +473,8 @@ med_stat_op(31 downto 16) <= x"000" & "0111"; led(1) <= not med_stat_op(10); led(2) <= not med_stat_op(11); - led(4) <= not med_stat_op(16+9); - led(5) <= not med_stat_op(16+10); + led(4) <= '1'; --not med_stat_op(16+9); + led(5) <= '1'; --not med_stat_op(16+10); led(6) <= not make_reset_internal; led(7) <= not send_network_reset_internal; diff --git a/vcode/pcie_pcs.txt b/vcode/pcie_pcs.txt new file mode 100644 index 0000000..794aefa --- /dev/null +++ b/vcode/pcie_pcs.txt @@ -0,0 +1,51 @@ + +# This file is used by the simulation model as well as the ispLEVER bitstream +# generation process to automatically initialize the PCS quad to the mode +# selected in the IPexpress. This file is expected to be modified by the +# end user to adjust the PCS quad to the final design requirements. +# channel_0 is in "PCI Express" mode +# channel_1 is in "PCI Express" mode +# channel_2 is in "PCI Express" mode +# channel_3 is in "PCI Express" mode + +ch0 13 03 # Powerup Channel +ch0 00 01 +ch1 13 03 # Powerup Channel +ch1 00 01 +ch2 13 03 # Powerup Channel +ch2 00 01 +ch3 13 03 # Powerup Channel +ch3 00 01 +quad 28 50 # Reference clock multiplier +quad 29 10 # FPGA sourced refclk +# quad 02 00 # ref_pclk source is ch0 +quad 18 04 # PCI Express x4 Mode +quad 14 7F # Word Alignment Mask +quad 15 03 # +ve K +quad 16 7C # -ve K +# quad 0D 97 # Watermark level on CTC +quad 0E 00 # insertion/deletion control of CTC +quad 12 1C # pattern for CTC match +quad 13 01 +quad 19 40 # MCA x4 alignment +quad 01 00 # MCA mclk select to ch0 +# quad 04 00 # MCA enable 4 channels via ports +quad 05 01 # MCA latency +quad 06 06 # MCA depth +# quad 07 FF # MCA alignment mask +quad 08 BC # MCA alignment character +quad 09 BC # MCA alignment character +# quad 0A 15 # MCA k control +quad 30 04 # Set TX Sync Bit +ch0 15 10 # +6dB equalization +ch1 15 10 # +6dB equalization +ch2 15 10 # +6dB equalization +ch3 15 10 # +6dB equalization +ch0 14 93 # 16% Pre-emphasis +ch1 14 93 # 16% Pre-emphasis +ch2 14 93 # 16% Pre-emphasis +ch3 14 93 # 16% Pre-emphasis +quad 41 00 # de-assert serdes_rst + + + diff --git a/vcode/pciexp2.ngo b/vcode/pciexp2.ngo new file mode 100644 index 0000000..845104a Binary files /dev/null and b/vcode/pciexp2.ngo differ