|
|
|
@ -430,6 +430,122 @@
@@ -430,6 +430,122 @@
|
|
|
|
|
" print(c.kind, c.name)" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "markdown", |
|
|
|
|
"metadata": {}, |
|
|
|
|
"source": [ |
|
|
|
|
"### Determining Logic Depth of Nodes" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 15, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
|
"data": { |
|
|
|
|
"text/plain": [ |
|
|
|
|
"<Circuit 'b14' with 31715 nodes, 46891 lines, 91 ports>" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 15, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
"source": [ |
|
|
|
|
"from kyupy import verilog\n", |
|
|
|
|
"\n", |
|
|
|
|
"b14 = verilog.parse('tests/b14.v.gz')\n", |
|
|
|
|
"b14" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "markdown", |
|
|
|
|
"metadata": {}, |
|
|
|
|
"source": [ |
|
|
|
|
"Calculate logic level (logic depth, distance from inputs or scan flip-flops) for each node in the circuit.\n", |
|
|
|
|
"Inputs and flip-flops themselves are level 0, **cells** driven by just inputs and flip-flops are level 1, and so on.\n", |
|
|
|
|
"**Fork** nodes have the same level as their driver, because they do not increase the logic depth." |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 16, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
|
"name": "stdout", |
|
|
|
|
"output_type": "stream", |
|
|
|
|
"text": [ |
|
|
|
|
"Maximum logic depth: 112\n" |
|
|
|
|
] |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
"source": [ |
|
|
|
|
"import numpy as np\n", |
|
|
|
|
"\n", |
|
|
|
|
"levels = np.zeros(len(b14.nodes), dtype='uint16') # store level for each node.\n", |
|
|
|
|
"\n", |
|
|
|
|
"for cell in b14.topological_order():\n", |
|
|
|
|
" if 'DFF' in cell.kind or 'input' == cell.kind:\n", |
|
|
|
|
" levels[cell.index] = 0\n", |
|
|
|
|
" elif '__fork__' == cell.kind:\n", |
|
|
|
|
" levels[cell.index] = levels[cell.ins[0].driver.index] # forks only have exactly one driver\n", |
|
|
|
|
" else:\n", |
|
|
|
|
" levels[cell.index] = max([levels[line.driver.index] for line in cell.ins]) + 1\n", |
|
|
|
|
" \n", |
|
|
|
|
"print(f'Maximum logic depth: {np.max(levels)}')" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "markdown", |
|
|
|
|
"metadata": {}, |
|
|
|
|
"source": [ |
|
|
|
|
"List nodes with the highest depth and which nodes they are driving." |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 17, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
|
"name": "stdout", |
|
|
|
|
"output_type": "stream", |
|
|
|
|
"text": [ |
|
|
|
|
"depth: 112 node: __fork__ n2692 driving: SDFFARX1_RVT reg1_reg_29_ \n", |
|
|
|
|
"depth: 112 node: NAND2X0_RVT U465 driving: __fork__ n2692 \n", |
|
|
|
|
"depth: 112 node: NAND2X0_RVT U562 driving: __fork__ n2724 \n", |
|
|
|
|
"depth: 112 node: __fork__ n2724 driving: SDFFARX1_RVT reg0_reg_29_ \n", |
|
|
|
|
"depth: 112 node: __fork__ n2608 driving: SDFFARX1_RVT B_reg \n", |
|
|
|
|
"depth: 112 node: NAND2X0_RVT U170 driving: __fork__ n2608 \n", |
|
|
|
|
"depth: 111 node: NAND2X0_RVT U5550 driving: __fork__ n2693 \n", |
|
|
|
|
"depth: 111 node: __fork__ n2660 driving: SDFFARX1_RVT reg2_reg_29_ \n", |
|
|
|
|
"depth: 111 node: AND2X2_RVT U5560 driving: __fork__ n2660 \n", |
|
|
|
|
"depth: 111 node: __fork__ n2725 driving: SDFFARX1_RVT reg0_reg_28_ \n", |
|
|
|
|
"depth: 111 node: __fork__ n2693 driving: SDFFARX1_RVT reg1_reg_28_ \n", |
|
|
|
|
"depth: 111 node: __fork__ n362 driving: NAND2X0_RVT U170 \n", |
|
|
|
|
"depth: 111 node: NAND2X0_RVT U173 driving: __fork__ n362 \n", |
|
|
|
|
"depth: 111 node: __fork__ n600 driving: NAND2X0_RVT U562 \n", |
|
|
|
|
"depth: 111 node: NAND2X0_RVT U563 driving: __fork__ n600 \n", |
|
|
|
|
"depth: 111 node: NAND2X0_RVT U565 driving: __fork__ n2725 \n", |
|
|
|
|
"depth: 111 node: NAND2X0_RVT U466 driving: __fork__ n535 \n", |
|
|
|
|
"depth: 111 node: __fork__ n535 driving: NAND2X0_RVT U465 \n", |
|
|
|
|
"depth: 110 node: __fork__ n4691 driving: AND2X2_RVT U5560 \n", |
|
|
|
|
"depth: 110 node: NAND2X0_RVT U5736 driving: __fork__ n790 \n" |
|
|
|
|
] |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
"source": [ |
|
|
|
|
"nodes_by_depth = np.argsort(levels)[::-1]\n", |
|
|
|
|
"\n", |
|
|
|
|
"for n_idx in nodes_by_depth[:20]:\n", |
|
|
|
|
" n = b14.nodes[n_idx]\n", |
|
|
|
|
" readers = ', '.join([f'{l.reader.kind:12s} {l.reader.name:14s}' for l in n.outs])\n", |
|
|
|
|
" print(f'depth: {levels[n_idx]} node: {n.kind:12s} {n.name:6s} driving: {readers}')" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "markdown", |
|
|
|
|
"metadata": {}, |
|
|
|
@ -446,7 +562,7 @@
@@ -446,7 +562,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 15, |
|
|
|
|
"execution_count": 18, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [], |
|
|
|
|
"source": [ |
|
|
|
@ -469,7 +585,7 @@
@@ -469,7 +585,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 16, |
|
|
|
|
"execution_count": 19, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -478,7 +594,7 @@
@@ -478,7 +594,7 @@
|
|
|
|
|
"<PackedVectors nvectors=1081, width=306, vdim=2>" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 16, |
|
|
|
|
"execution_count": 19, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -496,7 +612,7 @@
@@ -496,7 +612,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 17, |
|
|
|
|
"execution_count": 20, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -505,7 +621,7 @@
@@ -505,7 +621,7 @@
|
|
|
|
|
"(306, 2, 136)" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 17, |
|
|
|
|
"execution_count": 20, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -523,7 +639,7 @@
@@ -523,7 +639,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 18, |
|
|
|
|
"execution_count": 21, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -532,7 +648,7 @@
@@ -532,7 +648,7 @@
|
|
|
|
|
"'-0--------------------11011111011001100111010101011101----------------------------------00-10111011010110011101110010111010111011101100010000110101111111011010101001010101010101010101001010110101001010101010101010110100000111111111111111011010100100101010010010101101010101001010100111010001010010000011100'" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 18, |
|
|
|
|
"execution_count": 21, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -543,7 +659,7 @@
@@ -543,7 +659,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 19, |
|
|
|
|
"execution_count": 22, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -552,7 +668,7 @@
@@ -552,7 +668,7 @@
|
|
|
|
|
"'--10000010010100010111--------------------------------0101010010101010110101001001010100--011111110011011111000111010101010111011101100010000110101111111011010101001010101010101010101001010110101001010101010101010110100000111111111111111011010100100101010010010101101010101001010101000111111111111111011101'" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 19, |
|
|
|
|
"execution_count": 22, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -570,7 +686,7 @@
@@ -570,7 +686,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 20, |
|
|
|
|
"execution_count": 23, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [], |
|
|
|
|
"source": [ |
|
|
|
@ -583,7 +699,7 @@
@@ -583,7 +699,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 21, |
|
|
|
|
"execution_count": 24, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -592,7 +708,7 @@
@@ -592,7 +708,7 @@
|
|
|
|
|
"'--10000010010100010111--------------------------------0101010010101010110101001001010100--011111110011011111000111010101010111011101100010000110101111111011010101001010101010101010101001010110101001010101010101010110100000111111111111111011010100100101010010010101101010101001010101000111111111111111011101'" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 21, |
|
|
|
|
"execution_count": 24, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -610,7 +726,7 @@
@@ -610,7 +726,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 22, |
|
|
|
|
"execution_count": 25, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -641,7 +757,7 @@
@@ -641,7 +757,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 23, |
|
|
|
|
"execution_count": 26, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [], |
|
|
|
|
"source": [ |
|
|
|
@ -659,7 +775,7 @@
@@ -659,7 +775,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 24, |
|
|
|
|
"execution_count": 27, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -668,7 +784,7 @@
@@ -668,7 +784,7 @@
|
|
|
|
|
"<PackedVectors nvectors=1392, width=306, vdim=3>" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 24, |
|
|
|
|
"execution_count": 27, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -686,7 +802,7 @@
@@ -686,7 +802,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 25, |
|
|
|
|
"execution_count": 28, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -695,7 +811,7 @@
@@ -695,7 +811,7 @@
|
|
|
|
|
"'-0--------------------RRRRRRFRRRRRRRRRRRFFRFRRRRRRRRRR----------------------------------00-00000001110100011111011010000000000000000011001001100101111110101110110001000100010100110111111101101000000111110011100010111000111R1111111111111111111111110001100100000110100000111010101110RFF00F000F0F00F00000FF01F'" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 25, |
|
|
|
|
"execution_count": 28, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -713,7 +829,7 @@
@@ -713,7 +829,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 26, |
|
|
|
|
"execution_count": 29, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [], |
|
|
|
|
"source": [ |
|
|
|
@ -726,7 +842,7 @@
@@ -726,7 +842,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 27, |
|
|
|
|
"execution_count": 30, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -735,7 +851,7 @@
@@ -735,7 +851,7 @@
|
|
|
|
|
"'--F00000F00F0F000F00FF--------------------------------01110101011100000101100000100110R0--0RRRRRRRNNNRNRPRNNNNNRFFRFRRRRRRR000000000011001001100101111110101110110001000100010100110111111101101000000111110011100010111000NNNNNNNNNNNNNNNNNNNNNNNNNNNNP0011001000001101000001110101011101RRRRRRRRRRRRRRRRRRRRP01R'" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 27, |
|
|
|
|
"execution_count": 30, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -753,7 +869,7 @@
@@ -753,7 +869,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 28, |
|
|
|
|
"execution_count": 31, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -791,7 +907,7 @@
@@ -791,7 +907,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 29, |
|
|
|
|
"execution_count": 32, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [], |
|
|
|
|
"source": [ |
|
|
|
@ -811,7 +927,7 @@
@@ -811,7 +927,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 30, |
|
|
|
|
"execution_count": 33, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -820,7 +936,7 @@
@@ -820,7 +936,7 @@
|
|
|
|
|
"(46891, 2, 2)" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 30, |
|
|
|
|
"execution_count": 33, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -838,7 +954,7 @@
@@ -838,7 +954,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 31, |
|
|
|
|
"execution_count": 34, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -847,7 +963,7 @@
@@ -847,7 +963,7 @@
|
|
|
|
|
"119676" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 31, |
|
|
|
|
"execution_count": 34, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -875,7 +991,7 @@
@@ -875,7 +991,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 32, |
|
|
|
|
"execution_count": 35, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [], |
|
|
|
|
"source": [ |
|
|
|
@ -894,7 +1010,7 @@
@@ -894,7 +1010,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 33, |
|
|
|
|
"execution_count": 36, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -933,7 +1049,7 @@
@@ -933,7 +1049,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 34, |
|
|
|
|
"execution_count": 37, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [], |
|
|
|
|
"source": [ |
|
|
|
@ -963,7 +1079,7 @@
@@ -963,7 +1079,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 35, |
|
|
|
|
"execution_count": 38, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -972,7 +1088,7 @@
@@ -972,7 +1088,7 @@
|
|
|
|
|
"(306, 128, 7)" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 35, |
|
|
|
|
"execution_count": 38, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -990,7 +1106,7 @@
@@ -990,7 +1106,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 36, |
|
|
|
|
"execution_count": 39, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -1023,7 +1139,7 @@
@@ -1023,7 +1139,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 37, |
|
|
|
|
"execution_count": 40, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -1032,7 +1148,7 @@
@@ -1032,7 +1148,7 @@
|
|
|
|
|
"2.0610005855560303" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 37, |
|
|
|
|
"execution_count": 40, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -1050,7 +1166,7 @@
@@ -1050,7 +1166,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 38, |
|
|
|
|
"execution_count": 41, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -1059,7 +1175,7 @@
@@ -1059,7 +1175,7 @@
|
|
|
|
|
"0.0" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 38, |
|
|
|
|
"execution_count": 41, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -1077,7 +1193,7 @@
@@ -1077,7 +1193,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 39, |
|
|
|
|
"execution_count": 42, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -1086,7 +1202,7 @@
@@ -1086,7 +1202,7 @@
|
|
|
|
|
"0.0" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 39, |
|
|
|
|
"execution_count": 42, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
@ -1114,7 +1230,7 @@
@@ -1114,7 +1230,7 @@
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
"cell_type": "code", |
|
|
|
|
"execution_count": 40, |
|
|
|
|
"execution_count": 43, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"outputs": [ |
|
|
|
|
{ |
|
|
|
@ -1136,7 +1252,7 @@
@@ -1136,7 +1252,7 @@
|
|
|
|
|
"True" |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
"execution_count": 40, |
|
|
|
|
"execution_count": 43, |
|
|
|
|
"metadata": {}, |
|
|
|
|
"output_type": "execute_result" |
|
|
|
|
} |
|
|
|
|