Commit 3e5d8c1c authored by Andrey Filippov's avatar Andrey Filippov
Browse files

modifying TCL scripts for Xilinx tools to support LWIR sensors

parent 4714de19
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -54,6 +54,38 @@
`endif    
    parameter       FCLK1_PERIOD =  0.0,
    
`ifdef LWIR
    parameter       LWIR_DATA_FILE1  = "/data_ssd/nc393/elphel393/fpga-elphel/x393/input_data/pattern_160_120_14.dat",
    parameter       LWIR_DATA_FILE2  = "/data_ssd/nc393/elphel393/fpga-elphel/x393/input_data/pattern_160_120_14.dat",
    parameter       LWIR_DATA_FILE3  = "/data_ssd/nc393/elphel393/fpga-elphel/x393/input_data/pattern_160_120_14.dat",
    parameter       LWIR_DATA_FILE4  = "/data_ssd/nc393/elphel393/fpga-elphel/x393/input_data/pattern_160_120_14.dat",
    parameter       LWIR_WINDOW_WIDTH  =160,
    parameter       LWIR_WINDOW_HEIGHT =120,
    parameter       LWIR_TELEMETRY     =  2,
    parameter       LWIR_FRAME_PERIOD  =946969,
    parameter       LWIR_FRAME_DELAY   =100,
    parameter       LWIR_MS_PERIOD     = 25,  // 1us instead of 1 ms
    
    parameter       LWIR_TELEMETRY_REV =                  16'h7654,     // input[15:0] 
    parameter       LWIR_TELEMETRY_STATUS =           32'h137f1248, // input[31:0] 
    parameter       LWIR_TELEMETRY_SREV =     64'h0123456789abcdef, // input[63:0] 
    parameter       LWIR_TELEMETRY_TEMP_COUTS =          16'd59000,     // input[15:0] 
    parameter       LWIR_TELEMETRY_TEMP_KELVIN =         16'd29500,     // input[15:0] 
    parameter       LWIR_TELEMETRY_TEMP_LAST_KELVIN =    16'd29300,     // input[15:0] 
    parameter       LWIR_TELEMETRY_TIME_LAST_MS =     32'h12345678, // input[31:0] 
    parameter       LWIR_TELEMETRY_AGC_ROI_TOP =             16'd0,      // input[15:0] 
    parameter       LWIR_TELEMETRY_AGC_ROI_LEFT =            16'd0,      // input[15:0] 
    parameter       LWIR_TELEMETRY_AGC_ROI_BOTTOM =        16'd119,      // input[15:0] 
    parameter       LWIR_TELEMETRY_AGC_ROI_RIGHT =         16'd159,      // input[15:0] 
    parameter       LWIR_TELEMETRY_AGC_HIGH =            16'd19200,      // input[15:0] 
    parameter       LWIR_TELEMETRY_AGC_LOW =               16'd200,      // input[15:0] 
    parameter       LWIR_TELEMETRY_VIDEO_FORMAT =     32'haaaa5555,    // input[31:0] 
    
    parameter       LWIR_GPIO_IN =                              4'b0000,
    
`endif    
    
    
//    parameter SENSOR12BITS_LLINE   =   192,   //   1664;//   line duration in clocks
//    parameter SENSOR12BITS_NCOLS   =    66,   //58; //56; // 129; //128;   //1288;
//    parameter SENSOR12BITS_NROWS   =    18,   // 16;   //   1032;
+17 −4
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
# Filename: x393_global.tcl
# Date:2016-03-28
# Author: Andrey Filippov
# Description: Placementg constraints (selected by HISPI parameter in system_devines.vh)
# Description: Placement constraints (selected by HISPI parameter in system_devines.vh)
#
# Copyright (c) 2016 Elphel, Inc.
# x393_global.tcl is free software; you can redistribute it and/or modify
@@ -34,6 +34,7 @@
cd ~/vdt/x393
set infile [open "system_defines.vh" r]
set HISPI 0
set LWIR 0
while { [gets $infile line] >= 0 } {
    if { [regexp {(.*)`define(\s*)HISPI} $line matched prematch] } {
        if {[regexp "//" $prematch] != 0} { continue }
@@ -41,11 +42,23 @@ while { [gets $infile line] >= 0 } {
        break
    }
}
set LWIR 0
seek $infile 0 start
while { [gets $infile line] >= 0 } {
    if { [regexp {(.*)`define(\s*)LWIRI} $line matched prematch] } {
	if {[regexp "//" $prematch] != 0} { continue }
	set LWIR 1
	break
    }
}

close $infile
if { $HISPI} {
    puts "using HISPI sensors"
if       { $LWIR} {
    puts "x393_global.tcl: using LWIR sensors"
} elseif { $HISPI} {
    puts "x393_global.tcl: using HISPI sensors"
} else {
    puts "using parallel sensors"
    puts "x393_global.tcl: using parallel sensors"
}

# Global constraints
+151 −39
Original line number Diff line number Diff line
@@ -41,11 +41,23 @@ while { [gets $infile line] >= 0 } {
        break
    }
}
set LWIR 0
seek $infile 0 start
while { [gets $infile line] >= 0 } {
    if { [regexp {(.*)`define(\s*)LWIRI} $line matched prematch] } {
	if {[regexp "//" $prematch] != 0} { continue }
	set LWIR 1
	break
    }
}

close $infile
if { $HISPI} {
    puts "using HISPI sensors"
if       { $LWIR} {
    puts "x393_placement.tcl: using LWIR sensors"
} elseif { $HISPI} {
    puts "x393_placement.tcl: using HISPI sensors"
} else {
    puts "using parallel sensors"
    puts "x393_placement.tcl: using parallel sensors"
}
#Placement constraints (I/O pads)
set_property PACKAGE_PIN J4 [get_ports {SDRST}]
@@ -127,6 +139,24 @@ set_property PACKAGE_PIN W13 [get_ports {ffclk1n}]


# ================= Sensor port 0 =================
if { $LWIR } {
  set_property PACKAGE_PIN T10  [get_ports {sns1_dp40[0]}]
  set_property PACKAGE_PIN T9   [get_ports {sns1_dn40[0]}]
  set_property PACKAGE_PIN U10  [get_ports {sns1_dp40[1]}]
  set_property PACKAGE_PIN V10  [get_ports {sns1_dn40[1]}]
  set_property PACKAGE_PIN V8   [get_ports {sns1_dp40[2]}]
  set_property PACKAGE_PIN W8   [get_ports {sns1_dn40[2]}]
  set_property PACKAGE_PIN W9   [get_ports {sns1_dp40[3]}]
  set_property PACKAGE_PIN Y8   [get_ports {sns1_dn40[3]}]
  set_property PACKAGE_PIN AB9  [get_ports {sns1_dp40[4]}]
  set_property PACKAGE_PIN AB8  [get_ports {sns1_dn40[4]}]
  set_property PACKAGE_PIN AB13 [get_ports {sns1_dp5}]
  set_property PACKAGE_PIN AB12 [get_ports {sns1_dn5}]
  set_property PACKAGE_PIN AA12 [get_ports {sns1_dp76[6]}]
  set_property PACKAGE_PIN AA11 [get_ports {sns1_dn76[6]}]
  set_property PACKAGE_PIN W11  [get_ports {sns1_dp76[7]}]
  set_property PACKAGE_PIN W10  [get_ports {sns1_dn76[7]}]
} elseif { $HISPI } {
  set_property PACKAGE_PIN T10  [get_ports {sns1_dp[0]}]
  set_property PACKAGE_PIN T9   [get_ports {sns1_dn[0]}]
  set_property PACKAGE_PIN U10  [get_ports {sns1_dp[1]}]
@@ -135,7 +165,6 @@ set_property PACKAGE_PIN V8 [get_ports {sns1_dp[2]}]
  set_property PACKAGE_PIN W8   [get_ports {sns1_dn[2]}]
  set_property PACKAGE_PIN W9   [get_ports {sns1_dp[3]}]
  set_property PACKAGE_PIN Y8   [get_ports {sns1_dn[3]}]
if { $HISPI } {
  set_property PACKAGE_PIN AB9  [get_ports {sns1_dp74[4]}]
  set_property PACKAGE_PIN AB8  [get_ports {sns1_dn74[4]}]
  set_property PACKAGE_PIN AB13 [get_ports {sns1_dp74[5]}]
@@ -145,6 +174,14 @@ if { $HISPI } {
  set_property PACKAGE_PIN W11  [get_ports {sns1_dp74[7]}]
  set_property PACKAGE_PIN W10  [get_ports {sns1_dn74[7]}]
} else {
  set_property PACKAGE_PIN T10  [get_ports {sns1_dp[0]}]
  set_property PACKAGE_PIN T9   [get_ports {sns1_dn[0]}]
  set_property PACKAGE_PIN U10  [get_ports {sns1_dp[1]}]
  set_property PACKAGE_PIN V10  [get_ports {sns1_dn[1]}]
  set_property PACKAGE_PIN V8   [get_ports {sns1_dp[2]}]
  set_property PACKAGE_PIN W8   [get_ports {sns1_dn[2]}]
  set_property PACKAGE_PIN W9   [get_ports {sns1_dp[3]}]
  set_property PACKAGE_PIN Y8   [get_ports {sns1_dn[3]}]
  set_property PACKAGE_PIN AB9  [get_ports {sns1_dp[4]}]
  set_property PACKAGE_PIN AB8  [get_ports {sns1_dn[4]}]
  set_property PACKAGE_PIN AB13 [get_ports {sns1_dp[5]}]
@@ -163,6 +200,24 @@ set_property PACKAGE_PIN U8 [get_ports {sns1_pg}]


# ================= Sensor port 1 =================
if { $LWIR } {
  set_property PACKAGE_PIN U15  [get_ports {sns2_dp40[0]}]
  set_property PACKAGE_PIN U14  [get_ports {sns2_dn40[0]}]
  set_property PACKAGE_PIN V15  [get_ports {sns2_dp40[1]}]
  set_property PACKAGE_PIN W15  [get_ports {sns2_dn40[1]}]
  set_property PACKAGE_PIN U13  [get_ports {sns2_dp40[2]}]
  set_property PACKAGE_PIN V13  [get_ports {sns2_dn40[2]}]
  set_property PACKAGE_PIN V12  [get_ports {sns2_dp40[3]}]
  set_property PACKAGE_PIN V11  [get_ports {sns2_dn40[3]}]
  set_property PACKAGE_PIN AA17 [get_ports {sns2_dp40[4]}]
  set_property PACKAGE_PIN AB17 [get_ports {sns2_dn40[4]}]
  set_property PACKAGE_PIN AA15 [get_ports {sns2_dp5}]
  set_property PACKAGE_PIN AB15 [get_ports {sns2_dn5}]
  set_property PACKAGE_PIN AA14 [get_ports {sns2_dp76[6]}]
  set_property PACKAGE_PIN AB14 [get_ports {sns2_dn76[6]}]
  set_property PACKAGE_PIN Y14  [get_ports {sns2_dp76[7]}]
  set_property PACKAGE_PIN Y13  [get_ports {sns2_dn76[7]}]
} elseif { $HISPI } {
  set_property PACKAGE_PIN U15  [get_ports {sns2_dp[0]}]
  set_property PACKAGE_PIN U14  [get_ports {sns2_dn[0]}]
  set_property PACKAGE_PIN V15  [get_ports {sns2_dp[1]}]
@@ -171,7 +226,6 @@ set_property PACKAGE_PIN U13 [get_ports {sns2_dp[2]}]
  set_property PACKAGE_PIN V13  [get_ports {sns2_dn[2]}]
  set_property PACKAGE_PIN V12  [get_ports {sns2_dp[3]}]
  set_property PACKAGE_PIN V11  [get_ports {sns2_dn[3]}]
if { $HISPI } {
  set_property PACKAGE_PIN AA17 [get_ports {sns2_dp74[4]}]
  set_property PACKAGE_PIN AB17 [get_ports {sns2_dn74[4]}]
  set_property PACKAGE_PIN AA15 [get_ports {sns2_dp74[5]}]
@@ -181,6 +235,14 @@ if { $HISPI } {
  set_property PACKAGE_PIN Y14  [get_ports {sns2_dp74[7]}]
  set_property PACKAGE_PIN Y13  [get_ports {sns2_dn74[7]}]
} else {
  set_property PACKAGE_PIN U15  [get_ports {sns2_dp[0]}]
  set_property PACKAGE_PIN U14  [get_ports {sns2_dn[0]}]
  set_property PACKAGE_PIN V15  [get_ports {sns2_dp[1]}]
  set_property PACKAGE_PIN W15  [get_ports {sns2_dn[1]}]
  set_property PACKAGE_PIN U13  [get_ports {sns2_dp[2]}]
  set_property PACKAGE_PIN V13  [get_ports {sns2_dn[2]}]
  set_property PACKAGE_PIN V12  [get_ports {sns2_dp[3]}]
  set_property PACKAGE_PIN V11  [get_ports {sns2_dn[3]}]
  set_property PACKAGE_PIN AA17 [get_ports {sns2_dp[4]}]
  set_property PACKAGE_PIN AB17 [get_ports {sns2_dn[4]}]
  set_property PACKAGE_PIN AA15 [get_ports {sns2_dp[5]}]
@@ -198,6 +260,24 @@ set_property PACKAGE_PIN V16 [get_ports {sns2_ctl}]
set_property PACKAGE_PIN W16  [get_ports {sns2_pg}]

# ================= Sensor port 2 =================
if { $LWIR } {
  set_property PACKAGE_PIN AA22 [get_ports {sns3_dp40[0]}]
  set_property PACKAGE_PIN AB22 [get_ports {sns3_dn40[0]}]
  set_property PACKAGE_PIN W21  [get_ports {sns3_dp40[1]}]
  set_property PACKAGE_PIN Y22  [get_ports {sns3_dn40[1]}]
  set_property PACKAGE_PIN V21  [get_ports {sns3_dp40[2]}]
  set_property PACKAGE_PIN V22  [get_ports {sns3_dn40[2]}]
  set_property PACKAGE_PIN W19  [get_ports {sns3_dp40[3]}]
  set_property PACKAGE_PIN W20  [get_ports {sns3_dn40[3]}]
  set_property PACKAGE_PIN N21  [get_ports {sns3_dp40[4]}]
  set_property PACKAGE_PIN N22  [get_ports {sns3_dn40[4]}]
  set_property PACKAGE_PIN R22  [get_ports {sns3_dp5}]
  set_property PACKAGE_PIN T22  [get_ports {sns3_dn5}]
  set_property PACKAGE_PIN P21  [get_ports {sns3_dp76[6]}]
  set_property PACKAGE_PIN R21  [get_ports {sns3_dn76[6]}]
  set_property PACKAGE_PIN T20  [get_ports {sns3_dp76[7]}]
  set_property PACKAGE_PIN U20  [get_ports {sns3_dn76[7]}]
} elseif { $HISPI } {
  set_property PACKAGE_PIN AA22 [get_ports {sns3_dp[0]}]
  set_property PACKAGE_PIN AB22 [get_ports {sns3_dn[0]}]
  set_property PACKAGE_PIN W21  [get_ports {sns3_dp[1]}]
@@ -206,7 +286,6 @@ set_property PACKAGE_PIN V21 [get_ports {sns3_dp[2]}]
  set_property PACKAGE_PIN V22  [get_ports {sns3_dn[2]}]
  set_property PACKAGE_PIN W19  [get_ports {sns3_dp[3]}]
  set_property PACKAGE_PIN W20  [get_ports {sns3_dn[3]}]
if { $HISPI } {
  set_property PACKAGE_PIN N21  [get_ports {sns3_dp74[4]}]
  set_property PACKAGE_PIN N22  [get_ports {sns3_dn74[4]}]
  set_property PACKAGE_PIN R22  [get_ports {sns3_dp74[5]}]
@@ -216,6 +295,14 @@ if { $HISPI } {
  set_property PACKAGE_PIN T20  [get_ports {sns3_dp74[7]}]
  set_property PACKAGE_PIN U20  [get_ports {sns3_dn74[7]}]
} else {
  set_property PACKAGE_PIN AA22 [get_ports {sns3_dp[0]}]
  set_property PACKAGE_PIN AB22 [get_ports {sns3_dn[0]}]
  set_property PACKAGE_PIN W21  [get_ports {sns3_dp[1]}]
  set_property PACKAGE_PIN Y22  [get_ports {sns3_dn[1]}]
  set_property PACKAGE_PIN V21  [get_ports {sns3_dp[2]}]
  set_property PACKAGE_PIN V22  [get_ports {sns3_dn[2]}]
  set_property PACKAGE_PIN W19  [get_ports {sns3_dp[3]}]
  set_property PACKAGE_PIN W20  [get_ports {sns3_dn[3]}]
  set_property PACKAGE_PIN N21  [get_ports {sns3_dp[4]}]
  set_property PACKAGE_PIN N22  [get_ports {sns3_dn[4]}]
  set_property PACKAGE_PIN R22  [get_ports {sns3_dp[5]}]
@@ -233,6 +320,24 @@ set_property PACKAGE_PIN AA20 [get_ports {sns3_ctl}]
set_property PACKAGE_PIN AB20 [get_ports {sns3_pg}]

# ================= Sensor port 3 =================
if { $LWIR } {
  set_property PACKAGE_PIN V17  [get_ports {sns4_dp40[0]}]
  set_property PACKAGE_PIN W18  [get_ports {sns4_dn40[0]}]
  set_property PACKAGE_PIN Y19  [get_ports {sns4_dp40[1]}]
  set_property PACKAGE_PIN AA19 [get_ports {sns4_dn40[1]}]
  set_property PACKAGE_PIN U19  [get_ports {sns4_dp40[2]}]
  set_property PACKAGE_PIN V20  [get_ports {sns4_dn40[2]}]
  set_property PACKAGE_PIN U18  [get_ports {sns4_dp40[3]}]
  set_property PACKAGE_PIN V18  [get_ports {sns4_dn40[3]}]
  set_property PACKAGE_PIN P18  [get_ports {sns4_dp40[4]}]
  set_property PACKAGE_PIN P19  [get_ports {sns4_dn40[4]}]
  set_property PACKAGE_PIN N17  [get_ports {sns4_dp5}]
  set_property PACKAGE_PIN N18  [get_ports {sns4_dn5}]
  set_property PACKAGE_PIN N20  [get_ports {sns4_dp76[6]}]
  set_property PACKAGE_PIN P20  [get_ports {sns4_dn76[6]}]
  set_property PACKAGE_PIN R17  [get_ports {sns4_dp76[7]}]
  set_property PACKAGE_PIN R18  [get_ports {sns4_dn76[7]}]
} elseif { $HISPI } {
  set_property PACKAGE_PIN V17  [get_ports {sns4_dp[0]}]
  set_property PACKAGE_PIN W18  [get_ports {sns4_dn[0]}]
  set_property PACKAGE_PIN Y19  [get_ports {sns4_dp[1]}]
@@ -241,7 +346,6 @@ set_property PACKAGE_PIN U19 [get_ports {sns4_dp[2]}]
  set_property PACKAGE_PIN V20  [get_ports {sns4_dn[2]}]
  set_property PACKAGE_PIN U18  [get_ports {sns4_dp[3]}]
  set_property PACKAGE_PIN V18  [get_ports {sns4_dn[3]}]
if { $HISPI } {
  set_property PACKAGE_PIN P18  [get_ports {sns4_dp74[4]}]
  set_property PACKAGE_PIN P19  [get_ports {sns4_dn74[4]}]
  set_property PACKAGE_PIN N17  [get_ports {sns4_dp74[5]}]
@@ -251,6 +355,14 @@ if { $HISPI } {
  set_property PACKAGE_PIN R17  [get_ports {sns4_dp74[7]}]
  set_property PACKAGE_PIN R18  [get_ports {sns4_dn74[7]}]
} else {
  set_property PACKAGE_PIN V17  [get_ports {sns4_dp[0]}]
  set_property PACKAGE_PIN W18  [get_ports {sns4_dn[0]}]
  set_property PACKAGE_PIN Y19  [get_ports {sns4_dp[1]}]
  set_property PACKAGE_PIN AA19 [get_ports {sns4_dn[1]}]
  set_property PACKAGE_PIN U19  [get_ports {sns4_dp[2]}]
  set_property PACKAGE_PIN V20  [get_ports {sns4_dn[2]}]
  set_property PACKAGE_PIN U18  [get_ports {sns4_dp[3]}]
  set_property PACKAGE_PIN V18  [get_ports {sns4_dn[3]}]
  set_property PACKAGE_PIN P18  [get_ports {sns4_dp[4]}]
  set_property PACKAGE_PIN P19  [get_ports {sns4_dn[4]}]
  set_property PACKAGE_PIN N17  [get_ports {sns4_dp[5]}]
+15 −3
Original line number Diff line number Diff line
@@ -41,11 +41,23 @@ while { [gets $infile line] >= 0 } {
        break
    }
}
set LWIR 0
seek $infile 0 start
while { [gets $infile line] >= 0 } {
    if { [regexp {(.*)`define(\s*)LWIRI} $line matched prematch] } {
	if {[regexp "//" $prematch] != 0} { continue }
	set LWIR 1
	break
    }
}

close $infile
if { $HISPI} {
    puts "using HISPI sensors"
if       { $LWIR} {
    puts "x393_timing.tcl: using LWIR sensors"
} elseif { $HISPI} {
    puts "x393_timing.tcl: using HISPI sensors"
} else {
    puts "using parallel sensors"
    puts "x393_timing.tcl: using parallel sensors"
}