app: stacked_cores: 53-xx: complete a 1:1 coupled buffer

slope is poor, hovering around a constant 0.75 transmission ratio.
This commit is contained in:
colin 2022-11-05 02:59:10 -07:00
parent 1742172e6c
commit af4b5ffa32
2 changed files with 314 additions and 18 deletions

View File

@ -410,10 +410,34 @@ DB = {
MeasRow(2e-09, [-17508, -17960, 16995, -17092]),
MeasRow(4e-09, [-16634, -28456, -28448, 4261]),
],
(-0.250, 0.250,): [
MeasRow(2e-09, [-17238, -15983, 16938, -17147]),
MeasRow(4e-09, [-16524, -28453, -28449, 3419]),
],
(-0.220, 0.220,): [
MeasRow(2e-09, [-17226, -14250, 16383, -17220]),
MeasRow(4e-09, [-16081, -28449, -28446, 2449]),
],
(-0.200, -0.200,): [
MeasRow(2e-09, [-17278, -3920, -4057, -17280]),
MeasRow(4e-09, [ -9467, -28449, -28454, -9560]),
],
(-0.200, 0.200,): [
MeasRow(2e-09, [-17245, -12380, 15802, -17275]),
MeasRow(4e-09, [-15313, -28447, -28445, 1429]),
],
(-0.170, 0.170,): [
MeasRow(2e-09, [-17268, -9550, 14257, -17292]),
MeasRow(4e-09, [-13980, -28448, -28448, -282]),
],
(-0.150, 0.150,): [
MeasRow(2e-09, [-17271, -7695, 12547, -17291]),
MeasRow(4e-09, [-13036, -28449, -28449, -1612]),
],
(-0.120, 0.120,): [
MeasRow(2e-09, [-17273, -5017, 10005, -17289]),
MeasRow(4e-09, [-11754, -28449, -28448, -3434]),
],
(-0.100, -0.300,): [
MeasRow(2e-09, [-17287, 3539, -12784, -17273]),
MeasRow(4e-09, [ -3974, -28445, -28454, -14017]),
@ -422,10 +446,26 @@ DB = {
MeasRow(2e-09, [-17280, -1, -52, -17282]),
MeasRow(4e-09, [ -8685, -28446, -28452, -8721]),
],
(-0.100, 0.100,): [
MeasRow(2e-09, [-17275, -3362, 8453, -17287]),
MeasRow(4e-09, [-11027, -28448, -28446, -4474]),
],
(-0.070, 0.070,): [
MeasRow(2e-09, [-17277, -1396, 6564, -17285]),
MeasRow(4e-09, [-10182, -28447, -28449, -5662]),
],
(-0.050, -0.200,): [
MeasRow(2e-09, [-17285, 3972, -6987, -17276]),
MeasRow(4e-09, [ -5404, -28445, -28455, -11867]),
],
(-0.050, 0.050,): [
MeasRow(2e-09, [-17277, -262, 5483, -17284]),
MeasRow(4e-09, [ -9651, -28447, -28451, -6338]),
],
(-0.020, 0.020,): [
MeasRow(2e-09, [-17279, 1532, 3855, -17283]),
MeasRow(4e-09, [ -8738, -28446, -28448, -7375]),
],
( 0.000, -0.100,): [
MeasRow(2e-09, [-17282, 4246, -1577, -17280]),
MeasRow(4e-09, [ -6504, -28444, -28454, -10022]),
@ -524,10 +564,34 @@ DB = {
MeasRow(2e-09, [-18633, -19366, 17476, -17129]),
MeasRow(4e-09, [-16353, -30862, -30866, 13132]),
],
(-0.250, 0.250,): [
MeasRow(2e-09, [-17931, -16176, 17812, -17268]),
MeasRow(4e-09, [-15204, -30864, -30865, 12541]),
],
(-0.220, 0.220,): [
MeasRow(2e-09, [-17819, -14738, 17280, -17417]),
MeasRow(4e-09, [-14319, -30863, -30865, 11815]),
],
(-0.200, -0.200,): [
MeasRow(2e-09, [-17937, -4041, -4102, -17937]),
MeasRow(4e-09, [ -5017, -30864, -30866, -5124]),
],
(-0.200, 0.200,): [
MeasRow(2e-09, [-17830, -12743, 16669, -17567]),
MeasRow(4e-09, [-13135, -30864, -30864, 10878]),
],
(-0.170, 0.170,): [
MeasRow(2e-09, [-17852, -9550, 15683, -17796]),
MeasRow(4e-09, [-11334, -30864, -30865, 9413]),
],
(-0.150, 0.150,): [
MeasRow(2e-09, [-17884, -7426, 14863, -17888]),
MeasRow(4e-09, [-10240, -30863, -30866, 8422]),
],
(-0.120, 0.120,): [
MeasRow(2e-09, [-17924, -4285, 13111, -17941]),
MeasRow(4e-09, [ -8558, -30864, -30866, 6649]),
],
(-0.100, -0.300,): [
MeasRow(2e-09, [-17947, 5128, -14351, -17950]),
MeasRow(4e-09, [ 3826, -30864, -30865, -12572]),
@ -536,10 +600,26 @@ DB = {
MeasRow(2e-09, [-17943, 1245, 1215, -17940]),
MeasRow(4e-09, [ -2878, -30864, -30866, -2961]),
],
(-0.100, 0.100,): [
MeasRow(2e-09, [-17936, -2251, 11556, -17952]),
MeasRow(4e-09, [ -7454, -30864, -30865, 5222]),
],
(-0.070, 0.070,): [
MeasRow(2e-09, [-17940, 588, 9078, -17951]),
MeasRow(4e-09, [ -5581, -30864, -30865, 2888]),
],
(-0.050, -0.200,): [
MeasRow(2e-09, [-17949, 5960, -7439, -17935]),
MeasRow(4e-09, [ 2834, -30864, -30865, -9248]),
],
(-0.050, 0.050,): [
MeasRow(2e-09, [-17942, 2189, 7850, -17950]),
MeasRow(4e-09, [ -4270, -30864, -30866, 1560]),
],
(-0.020, 0.020,): [
MeasRow(2e-09, [-17944, 4113, 6275, -17947]),
MeasRow(4e-09, [ -2400, -30864, -30866, -182]),
],
( 0.000, -0.100,): [
MeasRow(2e-09, [-17951, 6613, -553, -17938]),
MeasRow(4e-09, [ 1592, -30864, -30866, -5794]),
@ -638,10 +718,34 @@ DB = {
MeasRow(2e-09, [-18799, -19508, 17570, -17162]),
MeasRow(4e-09, [-16581, -31210, -31209, 15188]),
],
(-0.250, 0.250,): [
MeasRow(2e-09, [-18555, -18849, 17145, -17361]),
MeasRow(4e-09, [-16508, -31209, -31211, 14859]),
],
(-0.220, 0.220,): [
MeasRow(2e-09, [-18404, -18072, 17368, -17358]),
MeasRow(4e-09, [-16424, -31209, -31211, 14835]),
],
(-0.200, -0.200,): [
MeasRow(2e-09, [-18065, -9423, -9528, -18062]),
MeasRow(4e-09, [ -6035, -31210, -31213, -6179]),
],
(-0.200, 0.200,): [
MeasRow(2e-09, [-18271, -17413, 17570, -17353]),
MeasRow(4e-09, [-16342, -31209, -31211, 14821]),
],
(-0.170, 0.170,): [
MeasRow(2e-09, [-18069, -16325, 17787, -17367]),
MeasRow(4e-09, [-16157, -31209, -31210, 14701]),
],
(-0.150, 0.150,): [
MeasRow(2e-09, [-17949, -15084, 17422, -17490]),
MeasRow(4e-09, [-15534, -31206, -31210, 14103]),
],
(-0.120, 0.120,): [
MeasRow(2e-09, [-17972, -10612, 16063, -17819]),
MeasRow(4e-09, [-12596, -31209, -31209, 11784]),
],
(-0.100, -0.300,): [
MeasRow(2e-09, [-18067, 5167, -20131, -18852]),
MeasRow(4e-09, [ 7226, -31209, -31209, -16382]),
@ -650,10 +754,26 @@ DB = {
MeasRow(2e-09, [-18068, -1253, -1303, -18064]),
MeasRow(4e-09, [ -2761, -31208, -31210, -2848]),
],
(-0.100, 0.100,): [
MeasRow(2e-09, [-18007, -7418, 14962, -17991]),
MeasRow(4e-09, [-10486, -31209, -31210, 10122]),
],
(-0.070, 0.070,): [
MeasRow(2e-09, [-18061, -2730, 12268, -18067]),
MeasRow(4e-09, [ -7310, -31208, -31211, 7142]),
],
(-0.050, -0.200,): [
MeasRow(2e-09, [-18070, 6628, -14729, -18088]),
MeasRow(4e-09, [ 6652, -31209, -31208, -13582]),
],
(-0.050, 0.050,): [
MeasRow(2e-09, [-18066, 181, 9808, -18069]),
MeasRow(4e-09, [ -4971, -31208, -31210, 4642]),
],
(-0.020, 0.020,): [
MeasRow(2e-09, [-18068, 3737, 7127, -18069]),
MeasRow(4e-09, [ -1801, -31209, -31211, 1658]),
],
( 0.000, -0.100,): [
MeasRow(2e-09, [-18074, 7689, -4284, -18062]),
MeasRow(4e-09, [ 4493, -31209, -31211, -7374]),
@ -743,4 +863,158 @@ DB = {
MeasRow(4e-09, [ 15203, -31209, -31211, -16592]),
],
}),
'53-buf--0.0004rad-2000ctl_cond-20000coupling_cond-2000ps-100ps-13ctl-13coupling-1_1_winding-30000001024e0-drive-': ParameterizedMeas({
(-1.000, -1.000,): [
MeasRow(2e-09, [-20249, -21908, -21908, -20249]),
MeasRow(4e-09, [-10325, -32229, -32230, -10338]),
],
(-1.000, 1.000,): [
MeasRow(2e-09, [-19998, -19494, 16658, -17591]),
MeasRow(4e-09, [-13753, -32226, -32225, 14257]),
],
(-0.250, 0.250,): [
MeasRow(2e-09, [-19623, -19193, 16163, -17986]),
MeasRow(4e-09, [-13226, -32226, -32226, 13624]),
],
(-0.220, 0.220,): [
MeasRow(2e-09, [-19600, -19170, 16119, -18023]),
MeasRow(4e-09, [-13189, -32226, -32227, 13568]),
],
(-0.200, -0.200,): [
MeasRow(2e-09, [-19875, -20606, -20619, -19875]),
MeasRow(4e-09, [ -9437, -32228, -32229, -9453]),
],
(-0.200, 0.200,): [
MeasRow(2e-09, [-19585, -19148, 16085, -18050]),
MeasRow(4e-09, [-13162, -32226, -32227, 13524]),
],
(-0.170, 0.170,): [
MeasRow(2e-09, [-19558, -19103, 16030, -18096]),
MeasRow(4e-09, [-13108, -32226, -32226, 13449]),
],
(-0.150, 0.150,): [
MeasRow(2e-09, [-19532, -19059, 15998, -18127]),
MeasRow(4e-09, [-13058, -32226, -32226, 13398]),
],
(-0.120, 0.120,): [
MeasRow(2e-09, [-19265, -18179, 16261, -18117]),
MeasRow(4e-09, [-12413, -32226, -32226, 13436]),
],
(-0.100, -0.300,): [
MeasRow(2e-09, [-18977, -2453, -20395, -20234]),
MeasRow(4e-09, [ 1929, -32228, -32228, -12050]),
],
(-0.100, -0.100,): [
MeasRow(2e-09, [-19009, -7247, -7278, -19008]),
MeasRow(4e-09, [ -2908, -32225, -32226, -2940]),
],
(-0.100, 0.100,): [
MeasRow(2e-09, [-18954, -16638, 16600, -18120]),
MeasRow(4e-09, [-11372, -32224, -32226, 13411]),
],
(-0.070, 0.070,): [
MeasRow(2e-09, [-18913, -11406, 16557, -18117]),
MeasRow(4e-09, [ -8376, -32224, -32226, 12581]),
],
(-0.050, -0.200,): [
MeasRow(2e-09, [-18995, 8385, -20274, -20168]),
MeasRow(4e-09, [ 8411, -32226, -32227, -13340]),
],
(-0.050, 0.050,): [
MeasRow(2e-09, [-18938, -5052, 15561, -18542]),
MeasRow(4e-09, [ -4664, -32225, -32225, 10663]),
],
(-0.020, 0.020,): [
MeasRow(2e-09, [-19008, 4596, 13221, -18962]),
MeasRow(4e-09, [ 1073, -32223, -32226, 7438]),
],
( 0.000, -0.100,): [
MeasRow(2e-09, [-18947, 13727, -14811, -19001]),
MeasRow(4e-09, [ 10851, -32225, -32225, -10094]),
],
( 0.000, 0.000,): [
MeasRow(2e-09, [-19032, 10161, 10159, -19031]),
MeasRow(4e-09, [ 4740, -32222, -32224, 4737]),
],
( 0.020, -0.020,): [
MeasRow(2e-09, [-18964, 13216, 4594, -19008]),
MeasRow(4e-09, [ 7435, -32225, -32225, 1066]),
],
( 0.050, -0.050,): [
MeasRow(2e-09, [-18544, 15564, -5056, -18936]),
MeasRow(4e-09, [ 10673, -32224, -32226, -4685]),
],
( 0.070, -0.070,): [
MeasRow(2e-09, [-18117, 16560, -11417, -18912]),
MeasRow(4e-09, [ 12602, -32225, -32225, -8409]),
],
( 0.100, -0.100,): [
MeasRow(2e-09, [-18121, 16599, -16645, -18952]),
MeasRow(4e-09, [ 13432, -32225, -32226, -11403]),
],
( 0.100, 0.000,): [
MeasRow(2e-09, [-18013, 16704, 4312, -18932]),
MeasRow(4e-09, [ 10288, -32224, -32225, 561]),
],
( 0.100, 0.100,): [
MeasRow(2e-09, [-18234, 16560, 16555, -18232]),
MeasRow(4e-09, [ 8278, -32223, -32224, 8264]),
],
( 0.120, -0.120,): [
MeasRow(2e-09, [-18118, 16261, -18185, -19264]),
MeasRow(4e-09, [ 13456, -32225, -32227, -12439]),
],
( 0.150, -0.150,): [
MeasRow(2e-09, [-18128, 15999, -19058, -19530]),
MeasRow(4e-09, [ 13417, -32226, -32227, -13080]),
],
( 0.170, -0.170,): [
MeasRow(2e-09, [-18095, 16031, -19103, -19556]),
MeasRow(4e-09, [ 13467, -32226, -32227, -13132]),
],
( 0.200, -0.200,): [
MeasRow(2e-09, [-18051, 16085, -19149, -19582]),
MeasRow(4e-09, [ 13543, -32226, -32227, -13184]),
],
( 0.200, -0.100,): [
MeasRow(2e-09, [-17960, 16889, -16571, -18961]),
MeasRow(4e-09, [ 13714, -32225, -32226, -11400]),
],
( 0.200, 0.000,): [
MeasRow(2e-09, [-17829, 17055, 3172, -18929]),
MeasRow(4e-09, [ 10825, -32224, -32225, -108]),
],
( 0.200, 0.100,): [
MeasRow(2e-09, [-17776, 17669, 16584, -18303]),
MeasRow(4e-09, [ 9288, -32224, -32224, 8100]),
],
( 0.220, -0.220,): [
MeasRow(2e-09, [-18025, 16119, -19171, -19598]),
MeasRow(4e-09, [ 13585, -32226, -32227, -13214]),
],
( 0.250, -0.250,): [
MeasRow(2e-09, [-17988, 16157, -19194, -19621]),
MeasRow(4e-09, [ 13640, -32226, -32227, -13249]),
],
( 0.300, -0.300,): [
MeasRow(2e-09, [-17935, 16219, -19225, -19657]),
MeasRow(4e-09, [ 13721, -32226, -32227, -13302]),
],
( 0.300, -0.200,): [
MeasRow(2e-09, [-17949, 16265, -19080, -19588]),
MeasRow(4e-09, [ 13716, -32226, -32227, -13170]),
],
( 0.300, -0.100,): [
MeasRow(2e-09, [-17864, 17045, -16615, -18974]),
MeasRow(4e-09, [ 13886, -32225, -32226, -11451]),
],
( 0.300, 0.000,): [
MeasRow(2e-09, [-17730, 17221, 2408, -18930]),
MeasRow(4e-09, [ 11123, -32225, -32225, -561]),
],
( 1.000, -1.000,): [
MeasRow(2e-09, [-17594, 16657, -19494, -19998]),
MeasRow(4e-09, [ 14276, -32225, -32228, -13778]),
],
}),
}

View File

@ -5877,11 +5877,11 @@ fn main() {
&[
// establish rough domain/range
( 1.00, -1.00),
(-1.00, -1.00),
(-1.00, 1.00), // technically extraneous
( 0.00, 0.00),
( 0.20, -0.20),
( 0.10, -0.10),
(-1.00, -1.00), // uninitialized case
][..],
&[
// more detailed sweep
@ -5890,6 +5890,27 @@ fn main() {
( 0.15, -0.15),
( 0.25, -0.25),
][..],
&[
// even more verbosity
( 0.02, -0.02),
( 0.07, -0.07),
( 0.12, -0.12),
( 0.17, -0.17),
( 0.22, -0.22),
][..],
&[
// negative side
(-0.10, 0.10),
(-0.20, 0.20),
(-0.25, 0.25),
(-0.05, 0.05),
(-0.15, 0.15),
(-0.02, 0.02),
(-0.07, 0.07),
(-0.12, 0.12),
(-0.17, 0.17),
(-0.22, 0.22),
][..],
&[
// test some asymmetries -- specifically where A1 is higher than expected
( 0.20, 0.00),
@ -5910,31 +5931,26 @@ fn main() {
(-0.10, -0.10),
( 0.10, 0.10),
][..],
&[
// even more verbosity
( 0.02, -0.02),
( 0.07, -0.07),
( 0.12, -0.12),
( 0.17, -0.17),
( 0.22, -0.22),
][..],
] {
for (ctl_cond, coupling_cond, clock_duration, clock_decay, coupling_loops, inp_loops, s_major, cur_flt) in [
// total slot use count is L*(4*A + 1),
// total slot use is L*(4*A + 1),
// where L is the "coupling loops" and A is the inp_loops ("asymmetric loops")
// e.g. L=8, A=1 gives 40
// e.g. L=4, A=2 gives 36
// e.g. L=3, A=3 gives 39
(2e3, 2e4, ps(2000), ps(100), 8, 1, um(400), 3e10),
(2e3, 2e4, ps(2000), ps(100), 8, 1, um(400), 2e10),
(2e3, 2e4, ps(2000), ps(100), 4, 2, um(400), 3e10), // UNVERIFIED GEOM
// special case of A=0 is L*(2 + 1)
(2e3, 2e4, ps(2000), ps(100), 13, 0, um(400), 3e10),
// narrow region of >1 slope from x=0 to x=2700
(2e3, 2e4, ps(2000), ps(100), 8, 1, um(400), 3e10),
(2e3, 2e4, ps(2000), ps(100), 8, 1, um(400), 2e10),
(2e3, 2e4, ps(2000), ps(100), 4, 2, um(400), 3e10), // UNVERIFIED GEOM
] {
for &(init_flt_a, init_flt_b) in init_set {
// each core is coupled to 2 others + control slots
// M1 <-> M2 is symmetric (inputs)
// M1 -> M0 & M2 -> M3 are asymmetric (tx input -> output)
// M0 <-> M3 is symmetrics (outputs)
let slots_per_asym = 2*inp_loops;
let slots_per_asym = (2*inp_loops).max(1);
let net_slots = 2*slots_per_asym + 1;
let mut params = params_v2
.with_clock_phase_duration(clock_duration)
@ -5956,10 +5972,16 @@ fn main() {
// couple input core 1 to core 2
params = params.with_coupling(1, 2, 1+i, net_slots, CouplingMethod::Direct);
}
// couple input M1 -> output M0
params = couple_asymmetric_buffer_bi(&params, 0 /* low core */, 0, inp_loops, 1 + slots_per_asym /* slot offset */, net_slots);
// couple input M2 -> output M3
params = couple_asymmetric_buffer_bi(&params, 2 /* low core */, inp_loops, 0, 1 + slots_per_asym /* slot offset */, net_slots);
if inp_loops != 0 {
// couple input M1 -> output M0
params = couple_asymmetric_buffer_bi(&params, 0 /* low core */, 0, inp_loops, 1 + slots_per_asym /* slot offset */, net_slots);
// couple input M2 -> output M3
params = couple_asymmetric_buffer_bi(&params, 2 /* low core */, inp_loops, 0, 1 + slots_per_asym /* slot offset */, net_slots);
} else {
// directly couple M1->M0, M2->M3
params = params.with_coupling(0, 1, 1 + slots_per_asym, net_slots, CouplingMethod::Direct);
params = params.with_coupling(2, 3, 1 + slots_per_asym, net_slots, CouplingMethod::Direct);
}
let name = asymmetric_binary_gate_name(
&params, "53-buf-", coupling_loops /* ctl loops */, coupling_loops, 2*inp_loops + 1, init_flt_a, init_flt_b