#!/usr/bin/perl
use
5.010;
my
$sample
=
'mychip_'
;
my
$PINsI
=
'Vsd#2#3_'
; # pin / cable numbers
my
$PINGate
=
'Vg#6_'
;
my
$lineresistance
=4000;
my
$biasstart
= -0.5;
my
$biasend
= 0.5;
my
$stepwidthVb
= 0.002;
my
$gatestart
= 0;
my
$gateend
= 1;
my
$stepwidthVg
= 0.004;
my
$sensitivity
= -1e-10;
my
$risetime
= 30;
my
$divider
= 1000;
my
$NPLC
= 1;
my
$multimeter
= instrument(
type
=>
'Keysight34470A'
,
connection_type
=>
'VXI11'
,
connection_options
=> {
host
=>
'192.168.3.28'
},
);
my
$biasyoko
= instrument(
type
=>
'YokogawaGS200'
,
connection_type
=>
'LinuxGPIB'
,
connection_options
=> {
pad
=> 2},
max_units_per_step
=> 0.05,
max_units_per_second
=> 1,
min_units
=> -10,
max_units
=> 10,
);
my
$gateyoko
= instrument(
type
=>
'YokogawaGS200'
,
connection_type
=>
'LinuxGPIB'
,
connection_options
=> {
pad
=> 1},
max_units_per_step
=> 0.001,
max_units_per_second
=> 0.1,
min_units
=> -10,
max_units
=> 10,
);
my
$gate_sweep
= sweep(
type
=>
'Step::Voltage'
,
instrument
=>
$gateyoko
,
from
=>
$gatestart
,
to
=>
$gateend
,
step
=>
$stepwidthVg
);
my
$bias_sweep
= sweep(
type
=>
'Step::Voltage'
,
instrument
=>
$biasyoko
,
from
=>
$biasstart
,
to
=>
$biasend
,
step
=>
$stepwidthVb
);
my
$datafile
= sweep_datafile(
columns
=> [
qw/gate bias current/
]);
$datafile
->add_plot(
type
=>
'pm3d'
,
x
=>
'gate'
,
y
=>
'bias'
,
z
=>
'current'
);
my
$meas
=
sub
{
my
$sweep
=
shift
;
my
$current
= (
$multimeter
->get_value()*(
$sensitivity
));
my
$v_b
= ((
$biasyoko
->cached_level())/(
$divider
));
$sweep
->
log
(
gate
=>
$gateyoko
->cached_level(),
bias
=>
$v_b
,
current
=>
$current
,
);
};
$gate_sweep
->start(
slave
=>
$bias_sweep
,
measurement
=>
$meas
,
datafile
=>
$datafile
,
folder
=>
$sample
.
$PINsI
.
$PINGate
.
'diamonds'
,
date_prefix
=> 1,
);