Compare commits

...

2 Commits

3 changed files with 689 additions and 32 deletions

View File

@ -15,3 +15,4 @@ sweep_a1 = lambda a0, points=101: [(a0, unit_to_m(x/(points-1)), None, None) for
for name, meas in natsorted(or_gates.items()):
trace = eval_series(meas, sweep_a1(-17000), extract_52xx_tx)
plot(f"{name}", "a1", trace)
plot_slope(f"slope {name}", "a1", trace)

View File

@ -478,6 +478,14 @@ DB = {
MeasRow(2e-09, [-17280, 3852, 1531, -17282]),
MeasRow(4e-09, [ -7381, -28445, -28451, -8747]),
],
( 0.050, -0.200,): [
MeasRow(2e-09, [-17286, 8166, -8718, -17275]),
MeasRow(4e-09, [ -3241, -28443, -28456, -12939]),
],
( 0.050, -0.100,): [
MeasRow(2e-09, [-17283, 6192, -2417, -17279]),
MeasRow(4e-09, [ -5586, -28447, -28454, -10519]),
],
( 0.050, -0.050,): [
MeasRow(2e-09, [-17282, 5484, -269, -17280]),
MeasRow(4e-09, [ -6349, -28446, -28452, -9664]),
@ -486,6 +494,10 @@ DB = {
MeasRow(2e-09, [-17282, 6563, -1408, -17280]),
MeasRow(4e-09, [ -5673, -28446, -28454, -10196]),
],
( 0.100, -0.200,): [
MeasRow(2e-09, [-17290, 10864, -9847, -17273]),
MeasRow(4e-09, [ -1712, -28446, -28455, -13706]),
],
( 0.100, -0.100,): [
MeasRow(2e-09, [-17285, 8441, -3392, -17278]),
MeasRow(4e-09, [ -4488, -28442, -28455, -11038]),
@ -502,6 +514,10 @@ DB = {
MeasRow(2e-09, [-17287, 9985, -5053, -17277]),
MeasRow(4e-09, [ -3458, -28444, -28455, -11747]),
],
( 0.150, -0.300,): [
MeasRow(2e-09, [-17281, 15332, -16829, -17351]),
MeasRow(4e-09, [ 2987, -28441, -28459, -16556]),
],
( 0.150, -0.150,): [
MeasRow(2e-09, [-17290, 12519, -7744, -17274]),
MeasRow(4e-09, [ -1639, -28445, -28456, -13034]),
@ -510,6 +526,10 @@ DB = {
MeasRow(2e-09, [-17291, 14227, -9605, -17271]),
MeasRow(4e-09, [ -315, -28444, -28456, -13979]),
],
( 0.200, -0.400,): [
MeasRow(2e-09, [-17239, 15967, -17990, -17445]),
MeasRow(4e-09, [ 3744, -28443, -28457, -16614]),
],
( 0.200, -0.200,): [
MeasRow(2e-09, [-17274, 15790, -12443, -17248]),
MeasRow(4e-09, [ 1403, -28440, -28454, -15316]),
@ -530,6 +550,10 @@ DB = {
MeasRow(2e-09, [-17221, 16374, -14318, -17229]),
MeasRow(4e-09, [ 2429, -28440, -28456, -16084]),
],
( 0.250, -0.500,): [
MeasRow(2e-09, [-17192, 16326, -17966, -17457]),
MeasRow(4e-09, [ 3902, -28443, -28460, -16618]),
],
( 0.250, -0.250,): [
MeasRow(2e-09, [-17148, 16918, -16016, -17244]),
MeasRow(4e-09, [ 3380, -28443, -28459, -16520]),
@ -555,6 +579,338 @@ DB = {
MeasRow(4e-09, [ 4227, -28441, -28462, -16632]),
],
}),
'53-buf--0.0004rad-2000ctl_cond-20000coupling_cond-2000ps-100ps-4ctl-4coupling-5_1_winding-99999997952e0-drive-': ParameterizedMeas({
(-1.000, -1.000,): [
MeasRow(2e-09, [-18163, -21690, -21690, -18165]),
MeasRow(4e-09, [-10407, -30167, -30172, -10407]),
],
(-1.000, 1.000,): [
MeasRow(2e-09, [-17931, -18365, 17269, -17288]),
MeasRow(4e-09, [-16715, -30148, -30148, 11706]),
],
(-0.250, 0.250,): [
MeasRow(2e-09, [-17813, -18046, 16895, -17402]),
MeasRow(4e-09, [-16703, -30149, -30148, 11497]),
],
(-0.220, 0.220,): [
MeasRow(2e-09, [-17805, -18017, 16871, -17411]),
MeasRow(4e-09, [-16705, -30148, -30148, 11497]),
],
(-0.200, 0.200,): [
MeasRow(2e-09, [-17797, -17990, 16857, -17417]),
MeasRow(4e-09, [-16705, -30148, -30148, 11499]),
],
(-0.170, 0.170,): [
MeasRow(2e-09, [-17784, -17928, 16844, -17427]),
MeasRow(4e-09, [-16700, -30148, -30148, 11465]),
],
(-0.150, 0.150,): [
MeasRow(2e-09, [-17772, -17868, 16837, -17434]),
MeasRow(4e-09, [-16698, -30148, -30148, 11450]),
],
(-0.120, 0.120,): [
MeasRow(2e-09, [-17747, -17727, 16844, -17445]),
MeasRow(4e-09, [-16701, -30148, -30148, 11480]),
],
(-0.100, -0.300,): [
MeasRow(2e-09, [-17657, -4783, -19661, -18084]),
MeasRow(4e-09, [ -201, -30160, -30164, -14115]),
],
(-0.100, 0.100,): [
MeasRow(2e-09, [-17713, -17525, 16898, -17450]),
MeasRow(4e-09, [-16697, -30148, -30148, 11490]),
],
(-0.070, 0.070,): [
MeasRow(2e-09, [-17571, -16300, 17139, -17462]),
MeasRow(4e-09, [-16650, -30150, -30148, 11414]),
],
(-0.050, -0.200,): [
MeasRow(2e-09, [-17656, 5167, -19447, -18043]),
MeasRow(4e-09, [ 5855, -30151, -30159, -16277]),
],
(-0.050, 0.050,): [
MeasRow(2e-09, [-17601, -11222, 15662, -17616]),
MeasRow(4e-09, [-15078, -30145, -30149, 9001]),
],
(-0.020, 0.020,): [
MeasRow(2e-09, [-17617, -2415, 8277, -17624]),
MeasRow(4e-09, [ -8387, -30149, -30153, 1524]),
],
( 0.000, -0.100,): [
MeasRow(2e-09, [-17622, 11014, -17452, -17745]),
MeasRow(4e-09, [ 8650, -30148, -30162, -16498]),
],
( 0.000, 0.000,): [
MeasRow(2e-09, [-17620, 3152, 3150, -17621]),
MeasRow(4e-09, [ -3371, -30151, -30157, -3400]),
],
( 0.020, -0.020,): [
MeasRow(2e-09, [-17623, 8264, -2437, -17618]),
MeasRow(4e-09, [ 1559, -30148, -30156, -8347]),
],
( 0.050, -0.200,): [
MeasRow(2e-09, [-17570, 15880, -18617, -17852]),
MeasRow(4e-09, [ 11155, -30143, -30155, -16707]),
],
( 0.050, -0.100,): [
MeasRow(2e-09, [-17579, 16049, -17870, -17742]),
MeasRow(4e-09, [ 11169, -30141, -30155, -16690]),
],
( 0.050, -0.050,): [
MeasRow(2e-09, [-17616, 15636, -11269, -17602]),
MeasRow(4e-09, [ 9054, -30144, -30152, -15066]),
],
( 0.070, -0.070,): [
MeasRow(2e-09, [-17464, 17118, -16334, -17574]),
MeasRow(4e-09, [ 11497, -30142, -30156, -16652]),
],
( 0.100, -0.200,): [
MeasRow(2e-09, [-17476, 16487, -18206, -17812]),
MeasRow(4e-09, [ 11358, -30143, -30155, -16694]),
],
( 0.100, -0.100,): [
MeasRow(2e-09, [-17449, 16882, -17545, -17716]),
MeasRow(4e-09, [ 11509, -30143, -30155, -16685]),
],
( 0.100, 0.000,): [
MeasRow(2e-09, [-17396, 17487, -5036, -17550]),
MeasRow(4e-09, [ 7968, -30145, -30150, -12501]),
],
( 0.120, -0.120,): [
MeasRow(2e-09, [-17443, 16836, -17734, -17748]),
MeasRow(4e-09, [ 11474, -30143, -30155, -16685]),
],
( 0.150, -0.300,): [
MeasRow(2e-09, [-17439, 16634, -18242, -17831]),
MeasRow(4e-09, [ 11441, -30143, -30155, -16699]),
],
( 0.150, -0.150,): [
MeasRow(2e-09, [-17432, 16832, -17873, -17773]),
MeasRow(4e-09, [ 11525, -30142, -30155, -16695]),
],
( 0.170, -0.170,): [
MeasRow(2e-09, [-17425, 16840, -17932, -17784]),
MeasRow(4e-09, [ 11510, -30142, -30155, -16693]),
],
( 0.200, -0.400,): [
MeasRow(2e-09, [-17414, 16719, -18286, -17847]),
MeasRow(4e-09, [ 11493, -30142, -30155, -16700]),
],
( 0.200, -0.200,): [
MeasRow(2e-09, [-17415, 16854, -17993, -17798]),
MeasRow(4e-09, [ 11521, -30142, -30155, -16694]),
],
( 0.200, -0.100,): [
MeasRow(2e-09, [-17389, 17240, -17372, -17707]),
MeasRow(4e-09, [ 11637, -30142, -30154, -16680]),
],
( 0.200, 0.000,): [
MeasRow(2e-09, [-17265, 18203, -6715, -17531]),
MeasRow(4e-09, [ 9100, -30145, -30150, -13553]),
],
( 0.200, 0.100,): [
MeasRow(2e-09, [-17289, 18036, 11860, -17545]),
MeasRow(4e-09, [ 2412, -30142, -30149, -3332]),
],
( 0.220, -0.220,): [
MeasRow(2e-09, [-17409, 16869, -18020, -17805]),
MeasRow(4e-09, [ 11538, -30142, -30155, -16696]),
],
( 0.250, -0.500,): [
MeasRow(2e-09, [-17395, 16777, -18331, -17862]),
MeasRow(4e-09, [ 11528, -30142, -30155, -16704]),
],
( 0.250, -0.250,): [
MeasRow(2e-09, [-17400, 16894, -18049, -17813]),
MeasRow(4e-09, [ 11574, -30142, -30155, -16701]),
],
( 0.300, -0.300,): [
MeasRow(2e-09, [-17387, 16936, -18085, -17825]),
MeasRow(4e-09, [ 11590, -30142, -30155, -16701]),
],
( 0.300, -0.200,): [
MeasRow(2e-09, [-17386, 17022, -17915, -17797]),
MeasRow(4e-09, [ 11583, -30142, -30155, -16692]),
],
( 0.300, -0.100,): [
MeasRow(2e-09, [-17359, 17401, -17310, -17709]),
MeasRow(4e-09, [ 11732, -30142, -30154, -16684]),
],
( 0.300, 0.000,): [
MeasRow(2e-09, [-17210, 18506, -7291, -17523]),
MeasRow(4e-09, [ 9531, -30145, -30150, -13916]),
],
( 1.000, -1.000,): [
MeasRow(2e-09, [-17287, 17267, -18367, -17931]),
MeasRow(4e-09, [ 11755, -30143, -30154, -16709]),
],
}),
'53-buf--0.0004rad-2000ctl_cond-20000coupling_cond-2000ps-100ps-8ctl-8coupling-1_1_3_1_winding-30000001024e0-drive-': ParameterizedMeas({
(-1.000, -1.000,): [
MeasRow(2e-09, [-20603, -22562, -22225, -19022]),
MeasRow(4e-09, [-12661, -31209, -31211, -12290]),
],
(-1.000, 1.000,): [
MeasRow(2e-09, [-20509, -19774, 17781, -17274]),
MeasRow(4e-09, [-16075, -31209, -31210, 13927]),
],
(-0.250, 0.250,): [
MeasRow(2e-09, [-20039, -19033, 17418, -17443]),
MeasRow(4e-09, [-15267, -31208, -31211, 13425]),
],
(-0.220, 0.220,): [
MeasRow(2e-09, [-19728, -18101, 17739, -17419]),
MeasRow(4e-09, [-14539, -31209, -31210, 13424]),
],
(-0.200, 0.200,): [
MeasRow(2e-09, [-19499, -17391, 17958, -17404]),
MeasRow(4e-09, [-13973, -31210, -31210, 13410]),
],
(-0.170, 0.170,): [
MeasRow(2e-09, [-19274, -15387, 18009, -17467]),
MeasRow(4e-09, [-12607, -31208, -31210, 12906]),
],
(-0.150, 0.150,): [
MeasRow(2e-09, [-19250, -12613, 17246, -17626]),
MeasRow(4e-09, [-10822, -31207, -31209, 11672]),
],
(-0.120, 0.120,): [
MeasRow(2e-09, [-19268, -7157, 15722, -17990]),
MeasRow(4e-09, [ -7298, -31209, -31209, 9157]),
],
(-0.100, -0.300,): [
MeasRow(2e-09, [-19312, 9691, -20443, -19019]),
MeasRow(4e-09, [ 9139, -31206, -31209, -16736]),
],
(-0.100, 0.100,): [
MeasRow(2e-09, [-19302, -3498, 14234, -18101]),
MeasRow(4e-09, [ -4849, -31211, -31211, 7240]),
],
(-0.070, 0.070,): [
MeasRow(2e-09, [-19332, 1902, 10518, -18139]),
MeasRow(4e-09, [ -946, -31209, -31209, 3453]),
],
(-0.050, -0.200,): [
MeasRow(2e-09, [-19324, 12356, -16449, -18262]),
MeasRow(4e-09, [ 10078, -31208, -31210, -16538]),
],
(-0.050, 0.050,): [
MeasRow(2e-09, [-19335, 5338, 7626, -18138]),
MeasRow(4e-09, [ 1606, -31208, -31210, 703]),
],
(-0.020, 0.020,): [
MeasRow(2e-09, [-19341, 9873, 4353, -18136]),
MeasRow(4e-09, [ 4845, -31206, -31210, -2510]),
],
( 0.000, -0.100,): [
MeasRow(2e-09, [-19222, 13565, -6842, -18096]),
MeasRow(4e-09, [ 9069, -31210, -31210, -10689]),
],
( 0.000, 0.000,): [
MeasRow(2e-09, [-19333, 12363, 2568, -18132]),
MeasRow(4e-09, [ 6661, -31209, -31210, -4251]),
],
( 0.020, -0.020,): [
MeasRow(2e-09, [-19209, 13502, 717, -18095]),
MeasRow(4e-09, [ 7735, -31210, -31210, -5689]),
],
( 0.050, -0.200,): [
MeasRow(2e-09, [-18593, 15335, -17488, -18204]),
MeasRow(4e-09, [ 12698, -31208, -31211, -16682]),
],
( 0.050, -0.100,): [
MeasRow(2e-09, [-18895, 14981, -8239, -18023]),
MeasRow(4e-09, [ 10482, -31208, -31211, -11864]),
],
( 0.050, -0.050,): [
MeasRow(2e-09, [-19005, 14587, -2694, -18045]),
MeasRow(4e-09, [ 9129, -31209, -31209, -8132]),
],
( 0.070, -0.070,): [
MeasRow(2e-09, [-18786, 15248, -5459, -18009]),
MeasRow(4e-09, [ 10214, -31209, -31210, -10067]),
],
( 0.100, -0.200,): [
MeasRow(2e-09, [-18180, 16137, -17480, -18195]),
MeasRow(4e-09, [ 13500, -31209, -31211, -16691]),
],
( 0.100, -0.100,): [
MeasRow(2e-09, [-18279, 16272, -10042, -17970]),
MeasRow(4e-09, [ 12128, -31209, -31212, -13278]),
],
( 0.100, 0.000,): [
MeasRow(2e-09, [-18670, 15471, -22, -18002]),
MeasRow(4e-09, [ 9498, -31208, -31210, -6497]),
],
( 0.120, -0.120,): [
MeasRow(2e-09, [-18060, 16745, -12650, -17956]),
MeasRow(4e-09, [ 13089, -31209, -31209, -15036]),
],
( 0.150, -0.300,): [
MeasRow(2e-09, [-18111, 15684, -19233, -18526]),
MeasRow(4e-09, [ 13585, -31209, -31210, -16751]),
],
( 0.150, -0.150,): [
MeasRow(2e-09, [-18010, 16853, -15224, -17955]),
MeasRow(4e-09, [ 13682, -31209, -31210, -16479]),
],
( 0.170, -0.170,): [
MeasRow(2e-09, [-18014, 16779, -16325, -18005]),
MeasRow(4e-09, [ 13829, -31209, -31211, -16638]),
],
( 0.200, -0.400,): [
MeasRow(2e-09, [-18029, 15779, -19357, -18557]),
MeasRow(4e-09, [ 13723, -31209, -31212, -16757]),
],
( 0.200, -0.200,): [
MeasRow(2e-09, [-17997, 16496, -17390, -18185]),
MeasRow(4e-09, [ 13846, -31209, -31211, -16692]),
],
( 0.200, -0.100,): [
MeasRow(2e-09, [-17872, 17092, -10995, -17947]),
MeasRow(4e-09, [ 13147, -31209, -31210, -14044]),
],
( 0.200, 0.000,): [
MeasRow(2e-09, [-17862, 17072, -2560, -17954]),
MeasRow(4e-09, [ 11579, -31209, -31210, -8446]),
],
( 0.200, 0.100,): [
MeasRow(2e-09, [-17880, 17011, 5036, -17959]),
MeasRow(4e-09, [ 10325, -31210, -31210, -3377]),
],
( 0.220, -0.220,): [
MeasRow(2e-09, [-17988, 16289, -18052, -18310]),
MeasRow(4e-09, [ 13838, -31209, -31212, -16716]),
],
( 0.250, -0.500,): [
MeasRow(2e-09, [-17955, 15861, -19425, -18579]),
MeasRow(4e-09, [ 13839, -31209, -31211, -16761]),
],
( 0.250, -0.250,): [
MeasRow(2e-09, [-17970, 16060, -18839, -18454]),
MeasRow(4e-09, [ 13846, -31210, -31211, -16740]),
],
( 0.300, -0.300,): [
MeasRow(2e-09, [-17926, 16028, -19101, -18517]),
MeasRow(4e-09, [ 13910, -31210, -31210, -16751]),
],
( 0.300, -0.200,): [
MeasRow(2e-09, [-17898, 16677, -17367, -18187]),
MeasRow(4e-09, [ 14027, -31209, -31211, -16693]),
],
( 0.300, -0.100,): [
MeasRow(2e-09, [-17770, 17299, -11220, -17945]),
MeasRow(4e-09, [ 13397, -31209, -31210, -14223]),
],
( 0.300, 0.000,): [
MeasRow(2e-09, [-17753, 17302, -3505, -17950]),
MeasRow(4e-09, [ 11976, -31209, -31209, -9104]),
],
( 1.000, -1.000,): [
MeasRow(2e-09, [-17559, 16435, -19486, -18689]),
MeasRow(4e-09, [ 14469, -31208, -31211, -16774]),
],
}),
'53-buf--0.0004rad-2000ctl_cond-20000coupling_cond-2000ps-100ps-8ctl-8coupling-3_1_winding-2e10-drive-': ParameterizedMeas({
(-1.000, -1.000,): [
MeasRow(2e-09, [-18843, -22156, -22158, -18842]),
@ -632,6 +988,14 @@ DB = {
MeasRow(2e-09, [-17948, 6275, 4110, -17942]),
MeasRow(4e-09, [ -120, -30865, -30866, -2461]),
],
( 0.050, -0.200,): [
MeasRow(2e-09, [-17954, 10768, -9020, -17934]),
MeasRow(4e-09, [ 6206, -30863, -30866, -10533]),
],
( 0.050, -0.100,): [
MeasRow(2e-09, [-17953, 8647, -1242, -17938]),
MeasRow(4e-09, [ 3123, -30864, -30866, -6548]),
],
( 0.050, -0.050,): [
MeasRow(2e-09, [-17952, 7847, 2182, -17940]),
MeasRow(4e-09, [ 1606, -30864, -30865, -4295]),
@ -640,6 +1004,10 @@ DB = {
MeasRow(2e-09, [-17953, 9073, 578, -17939]),
MeasRow(4e-09, [ 2911, -30863, -30866, -5554]),
],
( 0.100, -0.200,): [
MeasRow(2e-09, [-17935, 13568, -10184, -17916]),
MeasRow(4e-09, [ 8210, -30865, -30866, -11443]),
],
( 0.100, -0.100,): [
MeasRow(2e-09, [-17953, 11548, -2267, -17936]),
MeasRow(4e-09, [ 5222, -30864, -30865, -7387]),
@ -656,6 +1024,10 @@ DB = {
MeasRow(2e-09, [-17942, 13103, -4303, -17924]),
MeasRow(4e-09, [ 6658, -30865, -30866, -8519]),
],
( 0.150, -0.300,): [
MeasRow(2e-09, [-17666, 15887, -17378, -18103]),
MeasRow(4e-09, [ 11448, -30863, -30866, -15728]),
],
( 0.150, -0.150,): [
MeasRow(2e-09, [-17891, 14856, -7448, -17884]),
MeasRow(4e-09, [ 8441, -30864, -30865, -10248]),
@ -664,6 +1036,10 @@ DB = {
MeasRow(2e-09, [-17800, 15679, -9574, -17852]),
MeasRow(4e-09, [ 9435, -30863, -30866, -11346]),
],
( 0.200, -0.400,): [
MeasRow(2e-09, [-17379, 16658, -19129, -18483]),
MeasRow(4e-09, [ 12443, -30864, -30865, -16283]),
],
( 0.200, -0.200,): [
MeasRow(2e-09, [-17571, 16665, -12771, -17830]),
MeasRow(4e-09, [ 10904, -30863, -30865, -13164]),
@ -684,6 +1060,10 @@ DB = {
MeasRow(2e-09, [-17422, 17276, -14769, -17819]),
MeasRow(4e-09, [ 11842, -30864, -30865, -14353]),
],
( 0.250, -0.500,): [
MeasRow(2e-09, [-17320, 16843, -19239, -18520]),
MeasRow(4e-09, [ 12626, -30864, -30865, -16311]),
],
( 0.250, -0.250,): [
MeasRow(2e-09, [-17272, 17806, -16195, -17933]),
MeasRow(4e-09, [ 12564, -30864, -30866, -15233]),
@ -786,6 +1166,14 @@ DB = {
MeasRow(2e-09, [-18072, 7122, 3737, -18066]),
MeasRow(4e-09, [ 1698, -31209, -31210, -1839]),
],
( 0.050, -0.200,): [
MeasRow(2e-09, [-18006, 14138, -16968, -18210]),
MeasRow(4e-09, [ 12287, -31210, -31211, -16161]),
],
( 0.050, -0.100,): [
MeasRow(2e-09, [-18074, 11476, -5600, -18060]),
MeasRow(4e-09, [ 7411, -31209, -31211, -8919]),
],
( 0.050, -0.050,): [
MeasRow(2e-09, [-18074, 9800, 172, -18064]),
MeasRow(4e-09, [ 4672, -31208, -31210, -5002]),
@ -794,6 +1182,10 @@ DB = {
MeasRow(2e-09, [-18071, 12255, -2744, -18059]),
MeasRow(4e-09, [ 7159, -31210, -31210, -7320]),
],
( 0.100, -0.200,): [
MeasRow(2e-09, [-17767, 15920, -17403, -18216]),
MeasRow(4e-09, [ 13639, -31208, -31211, -16304]),
],
( 0.100, -0.100,): [
MeasRow(2e-09, [-17996, 14953, -7439, -18005]),
MeasRow(4e-09, [ 10137, -31209, -31212, -10490]),
@ -810,6 +1202,10 @@ DB = {
MeasRow(2e-09, [-17825, 16056, -10639, -17969]),
MeasRow(4e-09, [ 11806, -31208, -31211, -12618]),
],
( 0.150, -0.300,): [
MeasRow(2e-09, [-17448, 16727, -19225, -18616]),
MeasRow(4e-09, [ 14705, -31209, -31211, -16548]),
],
( 0.150, -0.150,): [
MeasRow(2e-09, [-17496, 17416, -15114, -17947]),
MeasRow(4e-09, [ 14124, -31209, -31209, -15552]),
@ -818,6 +1214,10 @@ DB = {
MeasRow(2e-09, [-17371, 17782, -16343, -18070]),
MeasRow(4e-09, [ 14720, -31209, -31211, -16168]),
],
( 0.200, -0.400,): [
MeasRow(2e-09, [-17397, 16873, -19335, -18649]),
MeasRow(4e-09, [ 14820, -31209, -31211, -16558]),
],
( 0.200, -0.200,): [
MeasRow(2e-09, [-17356, 17565, -17433, -18272]),
MeasRow(4e-09, [ 14847, -31209, -31211, -16356]),
@ -838,6 +1238,10 @@ DB = {
MeasRow(2e-09, [-17361, 17362, -18093, -18406]),
MeasRow(4e-09, [ 14863, -31209, -31211, -16438]),
],
( 0.250, -0.500,): [
MeasRow(2e-09, [-17361, 16967, -19405, -18676]),
MeasRow(4e-09, [ 14890, -31209, -31210, -16567]),
],
( 0.250, -0.250,): [
MeasRow(2e-09, [-17364, 17143, -18859, -18554]),
MeasRow(4e-09, [ 14888, -31209, -31211, -16520]),
@ -940,6 +1344,14 @@ DB = {
MeasRow(2e-09, [-18964, 13216, 4594, -19008]),
MeasRow(4e-09, [ 7435, -32225, -32225, 1066]),
],
( 0.050, -0.200,): [
MeasRow(2e-09, [-18391, 15415, -19453, -19629]),
MeasRow(4e-09, [ 12923, -32226, -32227, -13318]),
],
( 0.050, -0.100,): [
MeasRow(2e-09, [-18330, 16178, -16776, -18949]),
MeasRow(4e-09, [ 13035, -32225, -32226, -11432]),
],
( 0.050, -0.050,): [
MeasRow(2e-09, [-18544, 15564, -5056, -18936]),
MeasRow(4e-09, [ 10673, -32224, -32226, -4685]),
@ -948,6 +1360,10 @@ DB = {
MeasRow(2e-09, [-18117, 16560, -11417, -18912]),
MeasRow(4e-09, [ 12602, -32225, -32225, -8409]),
],
( 0.100, -0.200,): [
MeasRow(2e-09, [-18224, 15767, -19288, -19594]),
MeasRow(4e-09, [ 13239, -32226, -32227, -13237]),
],
( 0.100, -0.100,): [
MeasRow(2e-09, [-18121, 16599, -16645, -18952]),
MeasRow(4e-09, [ 13432, -32225, -32226, -11403]),
@ -964,6 +1380,10 @@ DB = {
MeasRow(2e-09, [-18118, 16261, -18185, -19264]),
MeasRow(4e-09, [ 13456, -32225, -32227, -12439]),
],
( 0.150, -0.300,): [
MeasRow(2e-09, [-18112, 15903, -19364, -19659]),
MeasRow(4e-09, [ 13419, -32226, -32227, -13347]),
],
( 0.150, -0.150,): [
MeasRow(2e-09, [-18128, 15999, -19058, -19530]),
MeasRow(4e-09, [ 13417, -32226, -32227, -13080]),
@ -972,6 +1392,10 @@ DB = {
MeasRow(2e-09, [-18095, 16031, -19103, -19556]),
MeasRow(4e-09, [ 13467, -32226, -32227, -13132]),
],
( 0.200, -0.400,): [
MeasRow(2e-09, [-18027, 15993, -19405, -19717]),
MeasRow(4e-09, [ 13544, -32226, -32227, -13425]),
],
( 0.200, -0.200,): [
MeasRow(2e-09, [-18051, 16085, -19149, -19582]),
MeasRow(4e-09, [ 13543, -32226, -32227, -13184]),
@ -992,6 +1416,10 @@ DB = {
MeasRow(2e-09, [-18025, 16119, -19171, -19598]),
MeasRow(4e-09, [ 13585, -32226, -32227, -13214]),
],
( 0.250, -0.500,): [
MeasRow(2e-09, [-17961, 16063, -19443, -19767]),
MeasRow(4e-09, [ 13642, -32226, -32226, -13494]),
],
( 0.250, -0.250,): [
MeasRow(2e-09, [-17988, 16157, -19194, -19621]),
MeasRow(4e-09, [ 13640, -32226, -32227, -13249]),
@ -1017,4 +1445,170 @@ DB = {
MeasRow(4e-09, [ 14276, -32225, -32228, -13778]),
],
}),
'53-buf-no_inp_couple-0.0004rad-2000ctl_cond-20000coupling_cond-2000ps-100ps-8ctl-8coupling-3_1_3_1_winding-2e10-drive-': ParameterizedMeas({
(-1.000, -1.000,): [
MeasRow(2e-09, [-19084, -19340, -19343, -19083]),
MeasRow(4e-09, [-11277, -30878, -30881, -11282]),
],
(-1.000, 1.000,): [
MeasRow(2e-09, [-18765, -19469, 17369, -17262]),
MeasRow(4e-09, [-16596, -30880, -30868, 15462]),
],
(-0.250, 0.250,): [
MeasRow(2e-09, [-17729, -14278, 16788, -17438]),
MeasRow(4e-09, [-15772, -30875, -30868, 14496]),
],
(-0.220, 0.220,): [
MeasRow(2e-09, [-17723, -11017, 16708, -17477]),
MeasRow(4e-09, [-13600, -30873, -30867, 13408]),
],
(-0.200, 0.200,): [
MeasRow(2e-09, [-17732, -8814, 16605, -17522]),
MeasRow(4e-09, [-11954, -30874, -30867, 12619]),
],
(-0.170, 0.170,): [
MeasRow(2e-09, [-17764, -5503, 16185, -17662]),
MeasRow(4e-09, [ -9484, -30874, -30868, 11263]),
],
(-0.150, 0.150,): [
MeasRow(2e-09, [-17796, -3297, 15879, -17754]),
MeasRow(4e-09, [ -7871, -30872, -30868, 10348]),
],
(-0.120, 0.120,): [
MeasRow(2e-09, [-17848, 0, 15303, -17839]),
MeasRow(4e-09, [ -5512, -30871, -30867, 8935]),
],
(-0.100, -0.300,): [
MeasRow(2e-09, [-17936, 2208, -17503, -18375]),
MeasRow(4e-09, [ 5069, -30872, -30879, -15146]),
],
(-0.100, 0.100,): [
MeasRow(2e-09, [-17877, 2181, 14861, -17875]),
MeasRow(4e-09, [ -4019, -30870, -30867, 8000]),
],
(-0.070, 0.070,): [
MeasRow(2e-09, [-17911, 5407, 14140, -17913]),
MeasRow(4e-09, [ -1767, -30869, -30869, 6579]),
],
(-0.050, -0.200,): [
MeasRow(2e-09, [-17951, 7513, -8871, -17934]),
MeasRow(4e-09, [ 6026, -30870, -30874, -9791]),
],
(-0.050, 0.050,): [
MeasRow(2e-09, [-17927, 7496, 13615, -17929]),
MeasRow(4e-09, [ -274, -30869, -30868, 5629]),
],
(-0.020, 0.020,): [
MeasRow(2e-09, [-17946, 10399, 12757, -17946]),
MeasRow(4e-09, [ 1884, -30867, -30869, 4206]),
],
( 0.000, -0.100,): [
MeasRow(2e-09, [-17955, 11909, 2145, -17941]),
MeasRow(4e-09, [ 5982, -30869, -30872, -3489]),
],
( 0.000, 0.000,): [
MeasRow(2e-09, [-17954, 11908, 11906, -17953]),
MeasRow(4e-09, [ 3190, -30868, -30868, 3157]),
],
( 0.020, -0.020,): [
MeasRow(2e-09, [-17948, 12753, 10388, -17945]),
MeasRow(4e-09, [ 4239, -30868, -30868, 1851]),
],
( 0.050, -0.200,): [
MeasRow(2e-09, [-17934, 13592, -8878, -17913]),
MeasRow(4e-09, [ 10415, -30869, -30875, -11444]),
],
( 0.050, -0.100,): [
MeasRow(2e-09, [-17933, 13602, 2142, -17920]),
MeasRow(4e-09, [ 7166, -30868, -30872, -3858]),
],
( 0.050, -0.050,): [
MeasRow(2e-09, [-17931, 13609, 7477, -17926]),
MeasRow(4e-09, [ 5663, -30868, -30870, -314]),
],
( 0.070, -0.070,): [
MeasRow(2e-09, [-17915, 14135, 5381, -17910]),
MeasRow(4e-09, [ 6618, -30868, -30870, -1816]),
],
( 0.100, -0.200,): [
MeasRow(2e-09, [-17880, 14848, -8878, -17868]),
MeasRow(4e-09, [ 11295, -30867, -30875, -11727]),
],
( 0.100, -0.100,): [
MeasRow(2e-09, [-17879, 14856, 2145, -17876]),
MeasRow(4e-09, [ 8043, -30867, -30872, -4078]),
],
( 0.100, 0.000,): [
MeasRow(2e-09, [-17877, 14869, 11919, -17887]),
MeasRow(4e-09, [ 5295, -30867, -30868, 2442]),
],
( 0.120, -0.120,): [
MeasRow(2e-09, [-17842, 15299, -43, -17847]),
MeasRow(4e-09, [ 8981, -30867, -30874, -5571]),
],
( 0.150, -0.300,): [
MeasRow(2e-09, [-17742, 15875, -17526, -18251]),
MeasRow(4e-09, [ 14596, -30867, -30881, -16399]),
],
( 0.150, -0.150,): [
MeasRow(2e-09, [-17758, 15876, -3350, -17795]),
MeasRow(4e-09, [ 10392, -30867, -30874, -7929]),
],
( 0.170, -0.170,): [
MeasRow(2e-09, [-17667, 16182, -5562, -17762]),
MeasRow(4e-09, [ 11309, -30867, -30875, -9547]),
],
( 0.200, -0.400,): [
MeasRow(2e-09, [-17574, 16645, -19097, -18663]),
MeasRow(4e-09, [ 15136, -30866, -30882, -16560]),
],
( 0.200, -0.200,): [
MeasRow(2e-09, [-17525, 16602, -8882, -17731]),
MeasRow(4e-09, [ 12669, -30867, -30874, -12026]),
],
( 0.200, -0.100,): [
MeasRow(2e-09, [-17524, 16602, 2143, -17739]),
MeasRow(4e-09, [ 9426, -30867, -30872, -4278]),
],
( 0.200, 0.000,): [
MeasRow(2e-09, [-17523, 16603, 11937, -17749]),
MeasRow(4e-09, [ 6681, -30867, -30868, 2190]),
],
( 0.200, 0.100,): [
MeasRow(2e-09, [-17464, 16595, 14768, -17655]),
MeasRow(4e-09, [ 5962, -30867, -30868, 4139]),
],
( 0.220, -0.220,): [
MeasRow(2e-09, [-17481, 16710, -11090, -17723]),
MeasRow(4e-09, [ 13459, -30867, -30875, -13671]),
],
( 0.250, -0.500,): [
MeasRow(2e-09, [-17497, 16838, -19215, -18687]),
MeasRow(4e-09, [ 15236, -30866, -30881, -16572]),
],
( 0.250, -0.250,): [
MeasRow(2e-09, [-17441, 16789, -14356, -17729]),
MeasRow(4e-09, [ 14546, -30867, -30875, -15802]),
],
( 0.300, -0.300,): [
MeasRow(2e-09, [-17393, 16891, -17547, -18170]),
MeasRow(4e-09, [ 15236, -30867, -30881, -16419]),
],
( 0.300, -0.200,): [
MeasRow(2e-09, [-17408, 16878, -8885, -17710]),
MeasRow(4e-09, [ 12947, -30867, -30875, -12077]),
],
( 0.300, -0.100,): [
MeasRow(2e-09, [-17407, 16877, 2141, -17717]),
MeasRow(4e-09, [ 9707, -30867, -30872, -4310]),
],
( 0.300, 0.000,): [
MeasRow(2e-09, [-17406, 16878, 11967, -17728]),
MeasRow(4e-09, [ 6956, -30867, -30868, 2169]),
],
( 1.000, -1.000,): [
MeasRow(2e-09, [-17263, 17368, -19470, -18766]),
MeasRow(4e-09, [ 15470, -30866, -30880, -16602]),
],
}),
}

View File

@ -1455,6 +1455,20 @@ fn asymmetric_binary_gate_name(p: &Params, sim_id: &str, ctl_loops: u32, couplin
format!("{sim_id}-{s_major}rad-{ctl_cond}ctl_cond-{coupling_cond}coupling_cond-{clock_length}ps-{clock_decay}ps-{ctl_loops}ctl-{coupling_loops}coupling-{windings}_1_winding-{input_str}-drive-{init_level_a}-{init_level_b}")
}
fn asymmetric_binary_gate_name_v2(p: &Params, sim_id: &str, ctl_loops: u32, coupling_loops: u32, windings_a: u32, windings_b: u32, init_flt_a: f32, init_flt_b: f32) -> String {
let init_level_a = init_float_str(init_flt_a);
let init_level_b = init_float_str(init_flt_b);
let s_major = p.s_major;
let ctl_cond = p.ctl_conductivity as u64;
let coupling_cond = p.coupling_conductivity as u64;
let clock_length = (p.clock_phase_duration * 1e12 + 0.5) as u64;
let clock_decay = (p.clock_decay * 1e12 + 0.5) as u64;
let input_str = exp_format(p.input_magnitude);
format!("{sim_id}-{s_major}rad-{ctl_cond}ctl_cond-{coupling_cond}coupling_cond-{clock_length}ps-{clock_decay}ps-{ctl_loops}ctl-{coupling_loops}coupling-{windings_a}_1_{windings_b}_1_winding-{input_str}-drive-{init_level_a}-{init_level_b}")
}
/// couple `sender` to the `sender+1` core by using `loops` loops, including a crossover so that
/// when the sender goes high -> low, the receiver *also* goes high -> low ("inverting").
/// `loops` must be >= 1.
@ -5804,17 +5818,22 @@ fn main() {
// corresponding 4 symmetric loops from M1 to M2
// discr: 2600 (-1, -1) => (-7800, -100); (-1, 1) => (300, 2500)
// slope: 0.06 - 0.09
(2e3, 2e4, ps(2000), ps(100), 2, 3, um(400), 3e10),
// discr=9500 (-1, -1) => (-11800, 5700); (-1, 1) => (1300, 15200)
(2e3, 2e4, ps(2000), ps(100), 6, 1, um(400), 3e10),
// TODO: unifinished
// TODO: unfinished
// slope: 0.15
(2e3, 2e4, ps(2000), ps(100), 6, 1, um(400), 2e10),
// discr=6600: (-1, -1) => (-10800, 4800); (-1, 1) => (1400, 11400)
// slope: 0.16 - 0.19
(2e3, 2e4, ps(2000), ps(100), 3, 2, um(400), 3e10),
// discr=4900: (-1, -1) => (-9400, 8500); (-1, 1) => (1500, 13400)
// slope: 0.12 - 0.17
(5e2, 2e4, ps(2000), ps(100), 3, 1, um(400), 5e10),
// discr=4400: (-1, -1) => (-8600, 200); (-1, 1) => (1100, 4600)
// slope: 0.15
(1e3, 2e4, ps(2000), ps(100), 3, 1, um(400), 2e10),
// discr=1300: (-1, -1) => (-3400, -2300); (-1, 1) => (-100, -1000)
(2e3, 2e4, ps(2000), ps(100), 3, 1, um(400), 1e10),
@ -5883,6 +5902,19 @@ fn main() {
( 0.10, -0.10),
(-1.00, -1.00), // uninitialized case
][..],
&[
// 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),
][..],
&[
// more detailed sweep
( 0.30, -0.30),
@ -5898,19 +5930,6 @@ fn main() {
( 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),
@ -5924,6 +5943,14 @@ fn main() {
( 0.00, -0.10),
(-0.10, -0.30),
(-0.05, -0.20),
// tailored to strong neg tx, weak pos tx
( 0.20, -0.40),
( 0.10, -0.20),
( 0.15, -0.30),
( 0.25, -0.50),
( 0.05, -0.10),
( 0.05, -0.20),
][..],
&[
// unexpected scenarios
@ -5932,25 +5959,37 @@ fn main() {
( 0.10, 0.10),
][..],
] {
for (ctl_cond, coupling_cond, clock_duration, clock_decay, coupling_loops, inp_loops, s_major, cur_flt) in [
for (couple_inputs, ctl_cond, coupling_cond, clock_duration, clock_decay, coupling_loops, pos_inp_loops, neg_inp_loops, s_major, cur_flt) in [
// 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
// special case of A=0 is L*(2 + 1)
(2e3, 2e4, ps(2000), ps(100), 13, 0, um(400), 3e10),
// slope is 1.01 from x=8500 to x=16999; averages 0.97 outside
(false, 2e3, 2e4, ps(2000), ps(100), 8, 1, 1, um(400), 2e10),
// slope is 0.95 from x=-4500 to x=14000
(true, 2e3, 2e4, ps(2000), ps(100), 4, 2, 2, um(400), 1e11),
// slope is 1.0 - 1.15 from x=13000 to x=17000; averages 0.8 outside
(true, 2e3, 2e4, ps(2000), ps(100), 8, 0, 1, um(400), 3e10),
// steady slope around 0.75 - 0.80
(true, 2e3, 2e4, ps(2000), ps(100), 13, 0, 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
(true, 2e3, 2e4, ps(2000), ps(100), 8, 1, 1, um(400), 3e10),
// slope varies from 0.65 to 1.0 (x=5000)
(true, 2e3, 2e4, ps(2000), ps(100), 8, 1, 1, um(400), 2e10),
// slope varies from 0.45 to 0.85
(true, 2e3, 2e4, ps(2000), ps(100), 4, 2, 2, um(400), 3e10),
] {
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).max(1);
let slots_per_asym_pos = (2*pos_inp_loops).max(1);
let slots_per_asym_neg = (2*neg_inp_loops).max(1);
let slots_per_asym = slots_per_asym_pos.max(slots_per_asym_neg);
let net_slots = 2*slots_per_asym + 1;
let mut params = params_v2
.with_clock_phase_duration(clock_duration)
@ -5969,23 +6008,46 @@ fn main() {
for i in 0..slots_per_asym {
// couple output core 0 to core 3
params = params.with_coupling(0, 3, 1+i, net_slots, CouplingMethod::Outside);
// couple input core 1 to core 2
params = params.with_coupling(1, 2, 1+i, net_slots, CouplingMethod::Direct);
if couple_inputs {
// couple input core 1 to core 2
params = params.with_coupling(1, 2, 1+i, net_slots, CouplingMethod::Direct);
}
}
if inp_loops != 0 {
if pos_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);
params = couple_asymmetric_buffer_bi(&params, 0 /* low core */, 0 /* M0 loops */, pos_inp_loops, 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);
// directly couple M1->M0
for i in 0..slots_per_asym {
params = params.with_coupling(0, 1, 1 + slots_per_asym + i, 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
);
if neg_inp_loops != 0 {
// couple input M2 -> output M3
params = couple_asymmetric_buffer_bi(&params, 2 /* low core */, neg_inp_loops, 0 /* M3 loops */, 1 + slots_per_asym /* slot offset */, net_slots);
} else {
// directly couple M2->M3
for i in 0..slots_per_asym {
params = params.with_coupling(2, 3, 1 + slots_per_asym + i, net_slots, CouplingMethod::Direct);
}
}
let name = if couple_inputs {
if pos_inp_loops == neg_inp_loops {
asymmetric_binary_gate_name(
&params, "53-buf-", coupling_loops /* ctl loops */, coupling_loops, 2*pos_inp_loops + 1, init_flt_a, init_flt_b
)
} else {
asymmetric_binary_gate_name_v2(
&params, "53-buf-", coupling_loops /* ctl loops */, coupling_loops, 2*pos_inp_loops + 1, 2*neg_inp_loops + 1, init_flt_a, init_flt_b
)
}
} else {
asymmetric_binary_gate_name_v2(
&params, "53-buf-no_inp_couple", coupling_loops /* ctl loops */, coupling_loops, 2*pos_inp_loops + 1, 2*neg_inp_loops + 1, init_flt_a, init_flt_b
)
};
run_sim(
&name,
drive_map_buf_53(init_flt_a, init_flt_b),