blob: 16d6a04a52ea80887f5603a4dcd35d54b3f030b0 [file] [log] [blame]
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Module 1: BAG Workflow Demo\n",
"Welcome to the BAG tutorial! In this module, you will test run a simple demo of a common-source amplifier design to get an idea of generator-based design methodology. This also serves to make sure you setup your workspace properly."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## BAG Workflow\n",
"\n",
"<img src=\"bootcamp_pics/1_flow_demo/flow_demo_1.PNG\" alt=\"Drawing\" style=\"width: 600px\"/>\n",
"\n",
"The above flow diagram outlines how circuit design is typically done with BAG. You will notice that it is largely similar to traditional manual design flow, with two major differences:\n",
"\n",
"* Designer focus on designing schematic/layout/testbench generators, instead of specific circuit instances.\n",
"* Layout is usually done before schematic.\n",
"\n",
"Discussions about the benefits of designing circuit generators instead of instances are outside of the scope of this tutorial, so I will assume you are already convinced. So, why do we design layout generators before schematic generators? There are several reasons:\n",
"\n",
"* Since BAG can easily automates layout and post-extraction simulations, there is almost no need for schematic only simulations.\n",
"* One schematic could correspond to many different layouts (each with a different floorplan strategy), whereas one layout corresponds to exactly one schematic.\n",
"* It is impossible to determine schematic details such as dummy transistors before layout is done.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## BAG Schematic Example\n",
"<img src=\"bootcamp_pics/1_flow_demo/flow_demo_2.PNG\" alt=\"Drawing\" style=\"width: 500px\"/>\n",
"\n",
"The above figure shows the schematic template used for a common-source amplifier schematic generator, you can find this schematic in Virtuoso in library `demo_templates` and cell `amp_cs`. Note that this is just like any other normal schematics, with the following differences:\n",
"\n",
"* Transistors are from the `BAG_prim` library. In this way this schematic can be ported across process by simply changing the `BAG_prim` library.\n",
"* Dummy transistors' ports are connected using wire stubs and net labels. This allows BAG to easy reconnect those ports if necessary.\n",
"\n",
"When BAG generates a new schematic, it will simply copy this schematic to a new library, then perform a set of modifications described by the schematic generator. The modifications could include:\n",
"\n",
"* Delete instances.\n",
"* Create new instances.\n",
"* Change the master of an instance.\n",
"* Reconnect instance terminals.\n",
"* Modify instance parameters.\n",
"* Add/Remove/Rename pins.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Testbench Schematic Example\n",
"<img src=\"bootcamp_pics/1_flow_demo/flow_demo_3.PNG\" alt=\"Drawing\" style=\"width: 400px\"/>\n",
"The above figure shows a schematic template for a DC operating point testbench generator, which can be found in library `bag_testbenches_ec` and cell `amp_tb_dc`. It is just like the schematic template we seen before, but instead of a symbol view it has an ADEXL view. To generate a new testbench, BAG will copy and modify both the schematic and the ADEXL view and returns a `Testbench` object that can be used to control simulations from Python."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Testbench ADEXL Setup\n",
"<img src=\"bootcamp_pics/1_flow_demo/flow_demo_4.PNG\" alt=\"Drawing\" style=\"width: 500px\"/>\n",
"The figure above shows the ADEXL view associated with a testbench template. ADEXL is used to enable parametric/process corner sweeps."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Running Demo Work Flow\n",
"```python\n",
"def run_flow(prj, specs, dsn_name, lay_cls, sch_cls=None, run_lvs=True, lvs_only=False):\n",
" # generate layout, get schematic parameters from layout\n",
" dsn_sch_params = gen_layout(prj, specs, dsn_name, lay_cls)\n",
" # generate design/testbench schematics\n",
" gen_schematics(prj, specs, dsn_name, dsn_sch_params, sch_cls=sch_cls, check_lvs=run_lvs, lvs_only=lvs_only)\n",
"\n",
" if lvs_only:\n",
" # return if we're only running LVS\n",
" print('LVS flow done')\n",
" return\n",
"\n",
" # run simulation and import results\n",
" simulate(prj, specs, dsn_name)\n",
"\n",
" # load simulation results from save file\n",
" res_dict = load_sim_data(specs, dsn_name)\n",
" # post-process simulation results\n",
" plot_data(res_dict)\n",
"\n",
"```\n",
"Now that you have an rough idea of how BAG generates new schematics and testbenches, let's try to run the common-source amplifier design flow. To do so, simple select the code box below and press Ctrl+Enter to evaluate the Python code. If everything works fine, you should see output messages in the dialog box below the code box, and it should end with DC/AC/Transient simulation plots. Schematics, layouts, and testbenches should also be generated in the `DEMO_AMP_CS` library in Virtuoso, so you can take a look over there.\n",
"\n",
"The Python script simply performs the following:\n",
"\n",
"* Read a specification file to get schematic/layout/testbench/simulation parameters.\n",
"* Create a `BagProject` instance to perform various functions.\n",
"* Call the `run_flow()` method defined in Python module `xbase_demo.core` to execute the common source amplifier design flow.\n",
"\n",
"The `xbase_demo.core` module is defined in the file `$BAG_WORK_DIR/BAG_XBase_demo/xbase_demo/core.py`. You can take a look if you're interested, but the `run_flow()` method definition is reproduced above for your convenience. You can see it simply calls other methods to generate layout/schematics, run simulations, and post-process simulation results."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"creating BagProject\n",
"computing layout\n",
"ext_w0 = 1, ext_wend=1, ytop=2592\n",
"final: ext_w0 = 1, ext_wend=1, ytop=2592\n",
"{'s': WireArray(TrackID(layer=3, track=7, num=9, pitch=2), 1109, 1265, 0.001), 'd': WireArray(TrackID(layer=3, track=8, num=8, pitch=2), 1231, 1387, 0.001), 'g': WireArray(TrackID(layer=3, track=8, num=8, pitch=2), 915, 1071, 0.001)}\n",
"WireArray(TrackID(layer=3, track=8, num=8, pitch=2), 915, 1071, 0.001)\n",
"6.5\n",
"creating layout\n",
"layout done\n",
"computing AMP_CS schematics\n",
"creating AMP_CS schematics\n",
"running lvs\n",
"Running tasks, Press Ctrl-C to cancel.\n",
"lvs passed\n",
"lvs log is /users/erichang/projects/bag_gen/BAG2_cds_ff_mpt/pvs_run/lvs_run_dir/DEMO_AMP_CS/AMP_CS/lvsLog_20180906_102350my93d2vr\n",
"computing AMP_CS_tb_dc schematics\n",
"creating AMP_CS_tb_dc schematics\n",
"computing AMP_CS_tb_ac_tran schematics\n",
"creating AMP_CS_tb_ac_tran schematics\n",
"schematic done\n",
"setting up AMP_CS_tb_dc\n",
"running simulation\n",
"Running tasks, Press Ctrl-C to cancel.\n",
"simulation done, load results\n",
"setting up AMP_CS_tb_ac_tran\n",
"running simulation\n",
"Running tasks, Press Ctrl-C to cancel.\n",
"simulation done, load results\n",
"all simulation done\n",
"loading simulation data for AMP_CS_tb_dc\n",
"loading simulation data for AMP_CS_tb_ac_tran\n",
"finish loading data\n",
", gain=-3.822\n",
", f_3db=3.601e+09, f_unity=9.122e+09, phase_margin=107.7\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEWCAYAAACXGLsWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xd4HNXV+PHv2V11ySqWXGVb7t3YWDZgwKGYxAGC6RgIEJJAIAHehJDwS3lTSN43BEKABJJg8hIgVENoIXQwzWBjuffeJBfJki3J6to9vz9mbGRhadfSSrtanc/zzLM7M3funuuyZ2fmzr2iqhhjjDGt8UQ6AGOMMdHPkoUxxpigLFkYY4wJypKFMcaYoCxZGGOMCcqShTHGmKAsWRgTA0TkpyLy90jHYWKXJQsT00TkTRG54yjbZ4nIHhHxtbP+90Xk2+2pI4TPeEhEHj/K9gkiUiciWar6v6raoXGY7s2ShYl1jwJXiYg0234V8KSqNnZ+SMfsUeBCEUlptv1q4FVVLev8kEx3Y8nCxLqXgCzg1EMbRCQTOBd43F1PF5HHRaRERLaLyM9FxOPu+5WIPNHk2DwRURHxicj/uPU+ICIHReSB5h8uIm+IyE3Nti0XkQvFca+IFItIuYisEJFxzetQ1U+BIuCiJnV4gSuAx5rH2STGa0Rkh4jsE5GftfUP0BiwZGFinKrWAHNxfoUfcimwTlWXu+t/BtKBIcCX3LLXhlD3z4CPgJtUNVVVbzpKsaeAyw+tiMgYYBDwH+DLwHRgBJABXAaUtvBxjzdrwwwgDni9lRBPAUYCZwK/EJHRwdpkTEssWZju4DHgEhFJctev5vNf5F6cL+mfqGqlqm4D7sG5TBUOLwITRWSQu34l8IKq1gENQBowChBVXauqu1uo55/Al0Qkt0kbnlLVhlY++9eqWuMmxeXAce1tjOm+LFmYmKeqHwMlwCwRGQJMwfnFD5ANxAPbmxyyHegfps+uxDmLmO1umg086e57D3gAeBDYKyJzRKRHC/XsAD4Evi4iqcD5uAmvFXuavK8GUtvaDmMsWZju4tBlnKuAt1R1r7t9H84v/EFNyg7EuUcAUAUkN9nXp1m9oQzb/DRwuYicBCQB8w4frPonVZ0MjMW5HPWjVup5zG3DRcBWVV0SwmcbExaWLEx38TjOdf7raPKLXFX9OPc0/kdE0tzLRbcCh25qLwOmi8hAEUkHftKs3r049zpa8xpOMroDeFZVAwAiMkVEThCROJykVAv4W6nnX8AA4NcEP6swJqwsWZhuwb0X8QmQArzSbPfNOF/WW4CPcS5RPeIe9zbwLLACWAy82uzY+4GLRWS/iPyphc+uA17ASVZPNdnVA3gY2I9z6asU+EMrbaji84TxZGvtNSbcxCY/MsYYE4ydWRhjjAnKkoUxxpigLFkYY4wJypKFMcaYoNo14mY0yc7O1ry8vEiHYYwxXcrixYv3qWpOsHIxkyzy8vIoKCiIdBjGGNOliMj24KXsMpQxxpgQWLIwxhgTVMxchmqrqrpGTv79e+T1TGFIdgpDclIYkpPKkJwU8nqmkBjnjXSIxhgTcd0+WdQ1Bjh3Ql+2lFTxyeZSXlhadHifCAzITGZ4r1SGucvw3mkM65VKakK3/6MzxnQj3f4bLyslnt+eP/7welVdI1v3VbFlXxWbiw+yueQgm4oP8tHGfdT7A4fL5WYmMapPGiP7pDGyTw9G90ljcHYKPq9d2TPGxJ5unyyaS0nwMa5/OuP6px+xvdEfYOf+GjbsrWTj3krW7alk/Z5K5q0vwR9wxtdK8HkY1SeNMf16MKZvD8b0S2dM3x4kxdulLGNM1xYzAwnm5+drJLrO1jX62Vxcxbo9FazZVcGa3c5yoNqZwMzrEYb3SmV8/3Qm5KYzcUAmo/qmEWdnIMaYKCAii1U1P2g5Sxbhp6rsKq9ldVE5K4vKWVHovJZV1QPOGcj4/ulMHJDB5EGZTM7LpFdaYoSjNsZ0R5YsooyqUnSghmU7D7B0xwGW7TzAyqJy6hud+yCDeiaTPyiLEwZnccKQLAZmJSMiEY7aGBPrQk0Wds+ik4gIuZnJ5GYmc+6EfgDUNwZYtaucgm1lFGzbz/vri/nXkkIA+vRI5KShPZk2tCenDM+mb3pSJMM3xnRzdmYRRVSVTcUHWbC1jAVbSlmwuZRS99LVkJwUpg/P4UsjczhxcE+7aW6MCQu7DBUDAgFl/d5K5m/ax0cb97FgSyl1jQHifR6mDe3JmaN7M2N0LzvrMMa0mSWLGFTb4OezrWXMW1/Me+uK2V5aDcD4/unMHNeHr4ztw7BeqRGO0hjTlViyiHGqyuaSg7y9ppi31uxh6Y4DAIzqk8Y54/vyteP6kZedEuEojTHRzpJFN7OnvJY3Vu3m1RW7Kdi+H4CJAzK48Pj+fG1CPzJT4iMcoTEmGlmy6MaKDtTw6vJdvLi0iHV7Kon3ejhrbG9mTxnAyUOz8XisS64xxmHJwgCwelc5zxUU8tKyIg5UNzCoZzJXnjCQS/MHkJFsZxvGdHdRkSxEZCZwP+AF/q6qdzbbfy9wuruaDPRS1Qx3nx9Y6e7boarntfZZlixaV9vg583Ve3hywQ4+21ZGYpyHCybl8q1TBttNcWO6sYgnCxHxAhuAs4BCYBFwuaquaaH8zcAkVf2mu35QVUP+FrNkEbq1uyt47JNtvLi0iLrGADNG9+LG04YxeVBmpEMzxnSyUJNFR45mNxXYpKpbVLUeeAaY1Ur5y4GnOzAe4xrdtwd3XjSB+f/vDP7rzOEUbN/PRX/9hCseXsDCLaWRDs8YE4U6Mln0B3Y2WS90t32BiAwCBgPvNdmcKCIFIrJARM5v4bjr3TIFJSUl4Yq728hOTeAHZ41g/u1n8PNzRrNh70Eum7OAr/99ISsKD0Q6PGNMFOnIZHG0LjctXfOaDTyvqv4m2wa6p0ZXAPeJyNAvVKY6R1XzVTU/Jyen/RF3UykJPr596hA++vHp/Ozs0azZXcF5D8zne08tYWdZdaTDM8ZEgY5MFoXAgCbrucCuFsrOptklKFXd5b5uAd4HJoU/RNNUUryX66YP4YMfncYtZwzj3bV7OfOeD7jrjXVU1TVGOjxjTAR1ZLJYBAwXkcEiEo+TEF5pXkhERgKZwKdNtmWKSIL7Phs4GTjqjXETfmmJcdz65ZG8f9vpnDuhL395fzMz/vgBr6/cTax0tTbGHJsOSxaq2gjcBLwJrAXmqupqEblDRJp2g70ceEaP/BYaDRSIyHJgHnBnS72oTMfpk57IHy+byL9uPImM5HhufHIJ1z2+mD3ltZEOzRjTyeyhPBOSRn+AR+Zv5Y9vbyDO6+EX547h4sm5NkGTMV1cNHSdNTHE5/Vw/fShvPFf0xndpwc/en4FNzyx+PBUscaY2GbJwhyTvOwUnr7+RH569ijmrSvhq/d/yAJ7NsOYmGfJwhwzr0e4fvpQXvjuNFLifVzx8AIenLeJQCA2LmkaY77omJKFiKS4w3gYw7j+6bxy8ymcO6Efd7+5nu88sZjK2oZIh2WM6QCtJgsR8YjIFSLyHxEpBtYBu0VktYjcLSLDOydME61SE3zcP3siv/zaGN5bV8yFf/mE7aVVkQ7LGBNmwc4s5gFDgZ8AfVR1gKr2Ak4FFgB3isjXOzhGE+VEhGtPHsw/vzWVkoN1nP/gfAq2lUU6LGNMGLXadVZE4lS11esKoZTpDNZ1Njps21fFtY8uouhADX+aPZGZ4/pGOiRjTCvC1XX2RfcyVIuTOUdDojDRIy87hRdunMa4fj248cklPLVwR6RDMsaEQbBk8TDwNWCriDwrIue7Q3cY06LMlHie/PaJnDYih5++uJKHPtgc6ZCMMe3UarJQ1ZdV9XJgEPACcA2wQ0QeEZGzOiNA0zUlxXuZc3U+507oy+9eX8ef3t0Y6ZCMMe3gC6WQqtYAzwLPisgE4DGcxGHdaE2L4rwe7p89iXifhz++vQGAW860DnTGdEUhJQsR6Q1cijNybF/gOeDaDozLxAivR7j74uMADo8rdeNpX5iaxBgT5VpNFiJyHc6osCNxLkP9WFXnd0ZgJnYcShiNfuX3b6wjNcHLVSflRTosY8wxCHZmMQ24E3hHVQOdEI+JUV6PcM+lx1Fd7+cXr6wmPTme847rF+mwjDEhCtYb6teq+lZLiUIcuR0Ql4lBcV4PD1wxiSl5Wfxw7jI+3rgv0iEZY0IULFncLSL/EpGrRWSsiPQSkYEicoaI/AaYjzNRkTEhSYzz8vDV+QzNSeWGJxazdndFpEMyxoQgWNfZS4D/xrln8SDwEfAy8G1gPXCGqr7d0UGa2JKeFMc/rp1CaoKPbz66iL0VNvOeMdHOZsozEbNmVwWX/O0ThuSkMvc7J5EUbz2xjelsNlOeiXpj+vXg/tmTWLWrnNueX06s/HAxJhZ1aLIQkZkisl5ENonI/zvK/m+ISImILHOXbzfZd42IbHSXazoyThM5M8b05vaZo/jPit08OG9TpMMxxrQgpIfy2sKdJOlB4CygEFgkIq+o6ppmRZ9V1ZuaHZsF/BLIBxRY7B67v6PiNZHznelDWLu7gnve3sDYfumcPqpXpEMyxjQT0pmFiLwbyrZmpgKbVHWLqtYDzwCzQozrK8DbqlrmJoi3gZkhHmu6GBHhzgsnMLpPD255ZqlNnmRMFAo2U16i+ys/W0QyRSTLXfKAYE9U9Qd2NlkvdLc1d5GIrBCR50VkwLEcKyLXi0iBiBSUlJQECcdEs6R4Lw9dNRmPCDc8sYTaBn+kQzLGNBHszOI7wGJgFLDEfb8Yp/vsg0GOlaNsa34H899AnqpOAN7BGaAw1GNR1Tmqmq+q+Tk5OUHCMdFuQFYy982eyNrdFfz3S6siHY4xpolgz1ncr6qDgdtUdXCT5ThVfSBI3YXAgCbrucCuZvWXqmqdu/owMDnUY01sOn1kL24+YxjPLS5kbsHO4AcYYzpFqDe4y0Xk6uYbVfXxVo5ZBAwXkcFAEc6ItVc0LSAifVV1t7t6HrDWff8m8L8ikumufxlnHnDTDXx/xggWb9/PL15excQBGYzonRbpkIzp9kLtOjulyXIq8CucL/cWqWojcBPOF/9aYK6qrhaRO0Tk0LG3iMhqEVkO3AJ8wz22DPgNTsJZBNzhbjPdgNcj3Dd7IqkJcXz3ySVU1zdGOiRjur02PcEtIunAP1W11YTRmewJ7tgzf9M+vv5/C7lkci53uXNiGGPCq6Of4K4GbMoz06FOHpbN904bxtyCQl5eVhTpcIzp1kKdKe/ffN4byYsz0uzcjgrKmEO+P2M4C7aU8rMXV3FcbgZ52SmRDsmYbinUM4s/APe4y/8C01X1C8N3GBNuPq+H+2ZPxCNwyzNLqW+0ObiMiYSQkoWqfgCsA9KATKC+I4MypqnczGTuungCKwrLufvNdZEOx5huKdThPi4FPgMuAS4FForIxR0ZmDFNzRzXl6+fOJCHP9rKvPXFkQ7HmG4n1MtQPwOmqOo1qno1zrhP/91xYRnzRT8/Zwyj+qTxw7nLbcIkYzpZqMnCo6pNf86VHsOxxoRFYpyXB644npp6P7c8vZRGv92/MKazhPqF/4aIvOnOP/EN4D/Aax0XljFHN6xXKr89fxwLt5Zx/7sbIx2OMd1GSF1nVfVHInIhcArOIH9zVPXFDo3MmBZcNDmXBVtKeWDeJiYPyuS0kTb/hTEdLdgQ5Q+IyDQAVX1BVW9V1R9YojCRdsescYzsncb3n11G4f7qSIdjTMwLdhlqI3CPiGwTkd+LyMTOCMqYYJLivfz165Px+5Ubbf4LYzpcKEOUnwR8CSgD/iEia0XkFyIyolMiNKYFg7NTuPeyiazaVc7t/1pBW8Y5M8aEJtSH8rar6u9VdRLOMOMX8Plw4sZEzIwxvbntyyN5edkuHnhvU6TDMSZmhfpQXpyIfE1EngReBzYAF3VoZMaE6LunDeWCSf255+0NvLi0MNLhGBOTWu0NJSJnAZcD5+A8wf0McL2qVnVCbMaERES486Lx7Cmv5UfPrSAjKZ7TR1kPKWPCKdiZxU+BT4HRqvo1VX3SEoWJRgk+Lw9dPZlRfdO44YnFzN+0L9IhGRNTgt3gPl1VH7ZZ6kxX0CMxjse/eQKDs1P45qOLbAwpY8LIhuwwMSUrJZ6nrjuRYb1Sue6xAruHYUyYWLIwMScrJZ6nrz+RKXlZ/ODZ5fzhzfX4A9at1pj26NBkISIzRWS9iGwSkS9MliQit4rIGhFZISLvisigJvv8IrLMXV7pyDhN7OmRGMdj35zKZfkDeGDeJr7xj88orrSRao1pqw5LFiLiBR4EvgqMAS4XkTHNii0F8lV1AvA8cFeTfTWqOtFdzuuoOE3sivd5uPOi8fzuwvF8trWMmfd9xKsrdtnDe8a0QUeeWUwFNqnqFlWtx+l2O6tpAVWdp6qHBvZZAOR2YDymGxIRLp86kP/ccgr9M5K46amlXPvoIjaXHIx0aMZ0KR2ZLPoDO5usF7rbWvItnAf+DkkUkQIRWSAi53dEgKb7GNYrjRe/O42fnzOagm37+cq9H/LTF1ey60BNpEMzpksIaYjyNpKjbDvq+b+IfB3IxxmD6pCBqrpLRIYA74nISlXd3Oy464HrAQYOHBieqE3M8nk9fPvUIcya2J/7393As4t28lzBTmZN7M+3ThnM6L49Ih2iMVFLOur6rYicBPxKVb/irv8EQFV/16zcDODPwJeazcbXtMyjwKuq+nxLn5efn68FBQVhit50B4X7q5nz4RaeKyikpsHP5EGZXJY/gLMn9CU1oSN/RxkTPURksarmBy3XgcnChzOG1JlAEbAIuEJVVzcpMwnnxvZMVd3YZHsmUK2qdSKSjfMU+SxVXdPS51myMG11oLqeuQU7eXbRTjaXVBHv83D6yBzOHt+X00b2Ij0pLtIhGtNhIp4s3CDOBu4DvMAjqvo/InIHUKCqr4jIO8B4YLd7yA5VPc+dcOkhIIBzX+U+Vf2/1j7LkoVpL1VlyY79/Hv5bl5buZviyjq8HmHywExOG5XDtKHZjO3XgzivPZ5kYkdUJIvOZMnChFMgoCzduZ9560qYt76Y1bsqAEiO9zJ5UCZT87I4bkAGE3LTyUiOj3C0xrSdJQtjwqi4spbPtpbx2dYyFm4pY/3eysP7BvVMZkJuBqP7pjGydxoj+6TRPyMJkaP18TAmuliyMKYDldc0sKqonOWFB1ixs5yVReUUNemGm5rgY0TvVIbmpJKXncJgd8nrmUJSvDeCkRtzJEsWxnSyitoGNu6tZN2eSjbscV637quiuLLuiHJ9eiQyMCuZ3Mwk+mcm0T/j89d+GUkkxlkyMZ0n1GRh/QONCZMeiXFMHpTF5EFZR2w/WNfItn1VbN1X5byWVlFYVsPCrWXsXlZD8zEOs1Pj6d0j0V0S6JWWSK8eCfRO+3xbz9QEvB67zGU6jyULYzpYaoKPcf3TGdc//Qv7Gv0B9lTUUrS/hqIDNRTtr2FXeQ3FFXXsraxlRWE5pVV1NL8AIAKZyfFkpcTTMyWenqnx9ExJcF/j6ZmaQFZKPNmp8WQkx5OeFGe9uEy7WLIwJoJ8Xg+5mcnkZia3WKbBH2DfwTr2VtSxt6KW4so6SipqKa2qp/RgPWVV9azbU0lZVSkHqhtarCc1wUd6UhwZye6SFE96chwZSUeupyfFkZboo0ei85qa4MNniabbs2RhTJSL83rom55E3/SkoGUb/AH2V3+eRPYdrKO8poED1e5SU095dQMHahpYV15xeF9jkPk+kuO9pCb4SEv0kZZ4ZDJpuu1QmeR4HykJXlISfKTE+0iOd94n+DzWS6yLsmRhTAyJ83qcexxpiSEfo6pU1fvdxOEkk4raRiprG6isbXQX932d81pR20jRgZrD+2obAiF9ltcjTuJokkwOJaLDCSbeR7K7PSnOS9KhV/d9Ylyz7e5rnFcsEXUgSxbGdHMiQmqCc1bQPyP42cvRNPgDhxNHVZ2f6vpGqur9VNU1UlXXSHW9n4N1jc72Ov/hbVX1zv5dB2qprm/koHtsdb3/mGPweoSkODeZxHuOSDBNE01inJdEn5eEOA8JPg8JPi+Jcc5rgs9DQpynyX5nW2Lc5/ualu9OnQwsWRhj2i3O6yErxbnhHg6BgFLb6Kem3k9Ng5/aBj/V9Ueu1zT4qakPNNnfeMT6obI1DX5Kq+qp2e/UUdvgp74xQG2jnwZ/+x4d8HmkWTJp9urzEO/1EO9zF6+HOPc1wd0W5/18X3wr5ePd+uKa7Y/3ugmug7tcW7IwxkQdj0dIjncuTXUkf0CpbwxQ1+intsF5rWsMUNfgJJO6JttqGw7tc1+bbnPL1h6x309lbSMN/gD1jQHq3dcGv3PsoW3heNTtuAEZvPy9k9tfUSssWRhjui2vR5zLVBF6ql5VnYR1KKE0SSpHTS6NARr8Sr3f36S80jNMZ3StsWRhjDERIiL4vILP6yHax6O0ztPGGGOCsmRhjDEmqJgZSFBESoDtIRTNBvZ1cDidydoTvWKpLRBb7YmltkD72jNIVXOCFYqZZBEqESkIZYTFrsLaE71iqS0QW+2JpbZA57THLkMZY4wJypKFMcaYoLpjspgT6QDCzNoTvWKpLRBb7YmltkAntKfb3bMw5liJyEBgDZCuqsc+aFEnEJG/AUWq+ptIx2JiU3c8szDdkIjMFpGFIlIlIsXu++9KCMOUquoOVU2NVKIQkTdF5I6jbJ8lIntExKeqN1iiMB3JkoWJeSLyQ+B+4G6gD9AbuAE4GYjy52YBeBS46iiJ7SrgSVVt7PyQTHdjycLENBFJB+4Avquqz6tqpTqWquqVqlrnljtHRJaKSIWI7BSRXzWpI09EVER87vr7IvIbEZkvIpUi8paIZLfw+WtF5Nwm6z4R2Scix4tIoog8ISKlInJARBaJSO+jVPMSkAWc2qSeTOBc4HF3/VER+a37/jQRKRSRH7pnUbtF5Nr2/Uma7s6ShYl1JwEJwMtBylUBVwMZwDnAjSJyfivlrwCuBXrhnJ3c1kK5p4HLm6x/BdinqkuAa4B0YADQE+dsp6Z5BapaA8x14zvkUmCdqi5v4XP7uHX3B74FPOgmGGPaxJKFiXXZOF/Ohy/ViMgn7i/5GhGZDqCq76vqSlUNqOoKnC/5L7VS7z9UdUOTL/KJLZR7CjhPRA5Nsn2Fuw2gASdJDFNVv6ouVtWKFup5DLhERA7NTnS1u60lDcAdqtqgqq8BB4GRrZQ3plWWLEysKwWyD11CAlDVaaqa4e7zAIjICSIyT0RKRKQc51f+US8tufY0eV8NpB6tkKpuAtYCX3MTxnl8niz+CbwJPCMiu0TkLhGJa6Gej4ESYJaIDAGmNKnnqO1udi+jxRiNCYUlCxPrPgXqgFlByj0FvAIMUNV04G9AuObMPHQpahawxk0guL/6f62qY4BpOPcgrm65Gh53918FvKWqe8MUnzFBWbIwMU1VDwC/Bv4iIheLSKqIeERkIpDSpGgaUKaqtSIyFedyUbg8A3wZuJEmZwMicrqIjBcRL1CBc+mote65jwMzgOto/RKUMWFnycLEPFW9C7gV+DFQDOwFHgJuBz5xi30XuENEKoFf4NyHCNfn78Y5w5kGPNtkVx/geZxEsRb4AHiilXq2ufGm4JwFGdNp7AluY4wxQdmZhTHGmKAsWRhjjAnKkoUxxpigLFkYY4wJyhe8SOSIyEycAeC8wN9V9c6WymZnZ2teXl5nhWaMMTFh8eLF+0KZgztqk4Xb9/xB4CygEFgkIq+o6pqjlc/Ly6OgoKAzQzTGmC5PRLaHUi6aL0NNBTap6hZVrcd5sCnYU7jGGGM6QNSeWeCMlrmzyXohcELTAiJyPXA9wMCBAzsvMmOMCZGq4g8oflUCAfCr4vc76/6AEji0v8l755Uj96sSCHyxrkBASUv0kZ+X1aHtiOZkcbRxeY54glBV5+DOPZufn29PFxoTQwIBpSEQoMGvNDQGaPAHqPcHqG90t7nrDc3XD5cJUN/k2MPr/gD+QNNXxR8I0OhXGt0v48P7Akfuawwoje6+Q++d10P7A/ibvG8MKJ3x3PPEARm89L2TO/QzojlZFOKM839ILrArQrEYY3B+Jdc1Bqiu91NV10h1vZ+DdY1U1zdSVeenur6RmgY/dQ0Bahv91DYEqGt01xv81DU6r0e+d8ocUbbRT4O/Y75l470efF7B6xHivB68HsHnEXxewefx4PM4+5qvJ8V53WPc/Z7P63GOd8o23+4R5/3hRQSPR/AKeD2H3n/+2nSb1wNejwevh8/rOVS2Sd2pCd4O+bNqKpqTxSJguIgMBoqA2YR3cDdjup3aBj/lNQ0cqG5wX+spr2k4vByobqCitoGqus+//A+6SeFQcmgMHNuXeLzPQ6LPQ0Kcl8Q4D4k+Lwnua3K8j8xkD4lxzrYEn1smzku810O8z0O810OcV4jzeYjzeg5vj3O3x3s9zfaJu695eeeLNYRp181RRG2yUNVGEbkJZ7x/L/CIqq6OcFjGRBVVpbymgeLKOoor6iiurP3C+0MJ4UB1A3WNgRbrEoH0pDh6JMaRkuAjNcFLRnI8/TOTSIn3kZLgIzneS0qCj5R4L8kJPne79/C+5HgfSXFHfuF7PPblHAuiNlkAuDN8vRbpOIyJFFVl38F6tpdWsa20+vBr0f5qJylU1lF/lASQHO+lV1oCvdISGZydQkZSPOnJcaQnOUuG+z4jKd7ZlhxHWoLPvthNi6I6WRjTXQQCyvayalYWlbNudwXbS6vZVlrF9tJqDtZ9PuGdRyA3M5nczCSm5GXRKy2BnLQEevVIdJOD8z41wf5rm/Cyf1HGdDJVZXupkxhWFZWzorCcVbvKqax1koLPIwzMSmZQz2Sm5GWR1zOZQdkp5PVMoX9GEvG+aH48ysSqbp8sVJX1eyvJzUy2X2Omw+yvqufDjSV8sL6EDzeWsO9gPeD0zBndN43zjuvHhNx0xvfPYHjvVOK8lhBMdOn23477qxuYed9HAGQmxx0+xR+Q5bwO6pnC4J4p9M9MwmvXc02IVJXVuyp4d20x728oZvnOAwQUMpLjmD48hxOH9GRCbjojeqfZmYLpErqE/K+YAAAZY0lEQVR9skiM8/DAFZPYWVZD4f5qCvfXsH5vJe+uKz7ixmGcVxiQlczgnikMyUlheK80hvVOZVivVHokxkWwBSaaVNY28PKyXTz92Q5W76pABCb0T+emM4Zz2sgcjsvNsB8dpkvq9skiOd7HuRP6fWF7IKDsO1jH1n1VbCutYuu+ara57z/etO+ILoh9eiQyvHcqY/r2YEy/Hozu24Mh2Sn47FJCt7F85wGeWriDV5bvoqbBz6g+adwxayznjO9Lz9SESIdnTLt1+2TREo9HnB4mPRI5YUjPI/b5A0rh/mo27j3IxuKDbCyuZP2eSv4xfxv1fieJxPs8jO7bg4m56Rw3IIPjBmQwuGeKdU2MMRv3VvL7N9bxztpikuK8nHdcPy4/YSDH5abbw18mpoh2xsAlnSA/P18jPUR5gz/AlpIq1uwuZ82uClYWlbOysJyqej8AaYk+Jg/KZEpeFlMHZzEhN50EX8c/pm/Cr7iilnvf2cizi3aQEu/jhtOGcvVJg0izS5KmixGRxaqaH6ycnVmEUZzXw8g+aYzsk8YFk5xt/oCyueQgy3YeYOmO/Szatp/3168HnLOPKXmZnDIsh1OGZTO2Xw8784hyqsqjn2zj7jfX0+APcM20PG4+YzhZKfGRDs2YDmVnFhFQVlXPom1lfLa1jPmb9rFuTyUAWSnxnDYihxljejN9RI515Y0yB6rrue25Fbyzdi9njOrFL782hkE9UyIdljHtEuqZhSWLKFBcWcv8Tfv4YH0J89aXUF7TQLzXw0lDe3LuhL58eWwf0pPs8kYkFWwr45anl1JysI6ffHU0156cZ/ckTEywZNFFNfoDLN6+n3fW7uX1VXso3F9DvNfD9BHZXHR8LmeO7m398jvZK8t38YNnl9E/I4kHrpjEhNyMSIdkTNhYsogBqsrywnJeXb6LV1fsZk9FLZnJcZw/qT9XTB3I8N5pkQ4x5r2wpJDbnltOfl4Wf78m356pMTHHkkWM8QeUjzaW8NziQt5evZd6f4BpQ3tyzbQ8ZozubQ96dYC5i3Zy+wsrmDa0Jw9fnU9yvN1DMrHHkkUMKz1YxzOLdvLkgu3sKq9lcHYK35k+hAuO729dccPktZW7+e6TS5g+Ioc5V00mMc7+XE1ssmTRDTT6A7y5ei9/+2AzK4vK6d0jgZtOH8ZlUwbafY12WL+nkgv+Mp9RfdJ46roTLVGYmGbJohtRVT7etI8/vbuRRdv2k5uZxK1njeD8if3tuY1jVF7TwKwHPqaq3s+rN59C7x6JkQ7JmA4VarJo989PEfGIyCQROUdEzhCR3u2t0xwbEeHU4TnM/c5JPHrtFNKT4rh17nIu+OsnLNmxP9LhdRmqyg/nLqNwfw1/ufJ4SxTGNNHmO3YiMhS4HZgBbARKgERghIhUAw8Bj6lqy5P+mrASEU4b2Yvpw3N4cWkRv39jHRf+5RMuzc/lp2ePJiPZnjJuzYtLi3hnbTE/P2c0U/KyIh2OMVGlzZehRORp4K/AR9qsEhHpBVwB7FfVx9odZQi682WollTVNfKndzfy94+3kpkcx6/PG8c5E/pGOqyotL+qnjP/+AEDs5L5143TrHeZ6TY64zLU1ar6YfNEAaCqxap6X1sThYjcLSLrRGSFiLwoIvYUVBukJPj4ydmjeeWmk+mbnsT3nlrC959ZSnlNQ6RDizr/+9paKmoa+N2F4y1RGHMU7UkWRSLysHufItz/u94GxqnqBGAD8JMw19+tjO2XzovfncYPZozg3yt289X7PrR7GU0s3l7Gc4sL+fapQxjdt0ekwzEmKrUnWYwGCoD/BnaKyH0ickI4glLVt1S10V1dAOSGo97uzOf18F8zhjuXWLzCpX/7lP/7eCux0huuPe5+cz3ZqQnccuawSIdiTNRqc7JQ1VJVfUhVTwemAluB+0Rks4j8T9gihG8Crx9th4hcLyIFIlJQUlISxo+MXRMHZPDqTady+qhe/ObVNfxw7nJqG/yRDitiPtm0jwVbyvje6UPtCW1jWhGWJ7dUdRfwfzg3vCuBbwc7RkTeEZFVR1lmNSnzM6AReLKFz52jqvmqmp+TkxOOpnQL6clxzLlqMreeNYIXlhZx+cMLKD1YF+mwOp2qcs/bG+ibnsjlUwdGOhxjolq7koWIJIrIJSLyArAZOBPn/sIXJ7VuRlVnqOq4oywvu3VfA5wLXHm0m+imfUSEW84czl+vPJ41uyq46K+fsKO0OtJhdar5m0pZvH0/3zt9mD2lbUwQbU4WIvIUsBO4DHgKGKSq16jq66rarusaIjIT5xmO81S1e32DdbKvju/LU9edyIGaBi786yesdydi6g4emb+V7NR4Lsm3W2LGBNOeM4tVwBBVvVhVn1fV2nAFBTwApAFvi8gyEflbGOs2zUwelMnzN0zD64HZcz5lVVF5pEPqcNv2VTFvfTFXnDDIBl80JgTtSRYDgQ9E5BkR+YaI9AlXUKo6TFUHqOpEd7khXHWboxvWK5W53zmJ5HgfV/59Iat3xXbCePzT7XhFuPIEu1dhTCja0xvqBlU9HvgVkAk8KiKfisj/ish0EbGfa13MoJ4pPHP9iaTEe7nq/z5jw97YvCRVXd/Ic4t3cvb4vjb+kzEhandvKFVdp6r3qupM4AzgY+ASYGF76zadb0BWMk9ddyJej3DNI5+x60BNpEMKu7dW76WytpEr7KzCmJC15wb3f0TkShFJObRNVWtU9TVVvTmUsUZMdMrLTuGxa6dysLaRqx/5jPLq2Boe5F9LCsnNTGKqDRZoTMjac2YxB6dr61YReVZEzhcRG9Y0Rozp14OHr8lne2kVNz65mAZ/bAwevKe8lvmb9nHBJJvrw5hj0Z57Fi+r6uXAIOAF4Bpgh4g8IiJnhStAEzknDunJnRdO4JPNpfzyldWRDicsXl5WREDhgkn9Ix2KMV1KOO5Z1Kjqs6p6AfBlYBLwRrsjM1Hhosm53PCloTy1cAdPLdwR6XDa7d8rdnHcgAyG5KRGOhRjupRwzJTXW0RuFpH5wEvAW8DkdkdmosaPvjKSL43I4ZevrGLZzgORDqfNdpZVs6qogrPHha2XtzHdRntucF8nIu8BS4ARwI9VdYiq3q6qy8IWoYk4r0e4f/ZEeqUl8r0nl3Cguj7SIbXJm6v3ADDTkoUxx6w9ZxbTgDuBAW7vp/lhislEoYzkeP5y5fEUV9by4+dXdMmhzd9YtYfRfXswqGdK8MLGmCO0J1n82p134qjdZMRhg+7EkOMGZHD7zFG8tWYvT3ax+xcllXUs3rGfmWPtrMKYtmhPsrhbRP4lIleLyFgR6SUiA92Z834DzMeZIMnEkG+ePJhTh2fz2/+sYUvJwUiHE7IPNpSgCjPG9Ip0KMZ0Se3pOnsJzix5I4EHgY+Al3HmslgPnKGqb4cjSBM9PB7hD5ccR4LPy61zl9PYRZ6/mLeumF5pCYyxaVONaZN29YZS1TWq+jNVPU1VR6rqJFW9QlWfCPMotCaK9O6RyG/PH8eynQf4+8dbIx1OUA3+AB9uLOH0kb0I/3TxxnQPYZkpz3Q/507oy8yxffjj2xvYHOWXo5Zs309lbSOnj7LZFI1pK0sWpk1EhDvOH0uiz8NPXlhJIBC9vaM+3FiC1yNMG5Yd6VCM6bIsWZg265WWyM/OGc1nW8t4bvHOSIfToo837mPigAx6JMZFOhRjuqywJAsR6S8i09x5LKaLyPRw1Gui36X5A5g6OIvfvb6Osqroe1ivvLqBFUXlnGJnFca0SziG+/g9TjfZnwM/cpfb2luv6RpEhN+eP46DtY38/vV1kQ7nCz7ZvA9VOGW4JQtj2sMXhjrOB0aqal0Y6jJd0IjeaXzzlMHM+XALl58wkIkDMiId0mEfb9pHSrw3qmIypisKx2WoLYBdDO7mbj5jGDlpCfzyldVRdbP70y2lTBmcRZzXbs8Z0x7h+B9UDSwTkYdE5E+HljDUi4jcJiIqInYNIcqlJcZx+8xRLN95gJeWFUU6HAD2VtSypaSKk4b0jHQoxnR54bgM9Yq7hJWIDADOArrWIETd2IWT+vP4p9v4/RvrmDmuD8nx4fjn1XYLtpQCcNJQSxbGtFc4Jj967GhLGGK7F/gxED3XNEyrPB7hv88dw96KOh7+MPJPdi/YUkpaoo+x/dIjHYoxXV575rOY676uFJEVzZf2BCUi5wFFqro8SLnrRaRARApKSkra85EmTKbkZTFzbB8e+nAzxZWRHfFl4ZYypuZl4bW5to1pt/ZcJ/gv9/XcthwsIu8ARxsv+mfAT3GmaG2Vqs4B5gDk5+fbGUiUuP2ro3hn7V7uf2cj/3PB+IjEUFxRy5Z9VcyeOiAin29MrGlzslDV3e7r9jYeP+No20VkPDAYWO4O+pYLLBGRqaq6p43hmk40ODuFK04YyJMLd/CtUwZHZL7rhVvLADhhsN2vMCYcwvFQ3okiskhEDopIvYj4RaSirfWp6kpV7aWqeaqaBxQCx1ui6FpuPmM4CT4P97y1ISKfv3BrKSnxXsb2syHJjQmHcHSdfQC4HNgIJOHMZ/HnMNRrurCctAS+feoQ/rNyNysLyzv98z/bWsbkvCx89nyFMWERlv9JqroJ8KqqX1X/AZwejnrduvNUdV+46jOd57pTB5ORHMfdb63v1M8tq6pnw96DnDA4q1M/15hYFpaH8kQkHufBvLtE5AdAShjqNV1cWmIc3z1tKB9uKGGh+8xDZ1i07dD9CksWxoRLOJLFVW49NwFVwADgojDUa2LA1Sfl0SstgXve2oBq53RY+2xrGQk+D+Nz7fkKY8IlHA/lbVfVWlWtUNVfq+qt7mUpY0iM83LzGcP4bFsZH23snKuJC7eWMmlgBgk+b6d8njHdQXseypslIt9rsr5QRLa4y8XhCc/EgkunDKB/RhL3vLW+w88uKmobWLOrwrrMGhNm7Tmz+DFHjgmVAEwBTgNubEe9JsYk+Jyzi+WF5by3rrhDP2vxtv0EFE4YYvcrjAmn9iSLeFVtOpfmx6paqqo7sBvcppmLJucyqGdyh9+7WLCllDivcPzAzA77DGO6o/YkiyP+N6rqTU1Wc9pRr4lBcV4Pt5wxnDW7K3hzdcc9X7lgSymTBmSSGGf3K4wJp/Yki4Uicl3zjSLyHeCzdtRrYtSsif0Ykp3CvW9v7JAJkipqG1hZVM6JdgnKmLBrT7L4AXCtiMwTkXvc5X3gG8D3wxGciS0+r4f/mjGc9Xsr+c/K3WGvf9HWMgIKJ9pkR8aEXZuThaoWq+o04DfANne5Q1VPUtW94QnPxJpzJ/RjeK9U7n1nA43+QFjrnr+plASfh+MH2f0KY8ItHM9ZvKeqf3aX98IRlIldXo9w61kj2FJSxcvLdoW17vmb9jElL8vuVxjTAWyUNdPpvjK2D2P79eC+dzdQ3xies4viylrW761k2jC7BGVMR7BkYTqdxyPc9uWR7CyrYW7BzuAHhOCjDc7T4dOHW0c8YzqCJQsTEaeNzCF/UCZ/encjNfX+dtf3wYYSslMTGNPX5q8wpiNYsjARISL8eOYoiivr+McnW9tVV6M/wIcbS5g+IhuPzbdtTIewZGEiZurgLM4Y1Yu/vr+Z/VX1ba5n8fb9HKhu4KzRvcMYnTGmKUsWJqJunzmKqrpG/vxe2wcqfnvNXuK9Hk4dYfcrjOkolixMRI3sk8al+QN4/NNtbC45eMzHqyqvr9rDKcOzSU3whT9AYwxgycJEgR9+eSSJcV5+8+qaYx5kcMmOAxQdqOHcCX07KDpjDFiyMFEgJy2B788YzvvrS3hn7bENYf7i0kISfB7OGmP3K4zpSJYsTFS4ZloeI3qn8suXV1FV1xjSMbUNfl5ZtouvjutDWmJcB0doTPcWtclCRG4WkfUislpE7op0PKZjxXk9/O7C8eyuqOV3r68N6ZiXlhZRUdvIZVMGdnB0xpioTBYicjowC5igqmOBP0Q4JNMJJg/K4psnD+aJBTuYF2RGPX9AmfPRFsb07WFDkhvTCaIyWeBMy3qnqtaBM8JthOMxneRHXxnJqD5p/GDuMgr3V7dY7l9LCtlSUsXNZwxDxB7EM6ajRWuyGAGcKiILReQDEZlytEIicr2IFIhIQUlJSSeHaDpCYpyXv1x5PP6A8s1HF1F2lIf19h2s487X1zFpYAYzx/WJQJTGdD8RSxYi8o6IrDrKMgvw4UzbeiLwI2CuHOXno6rOUdV8Vc3PybEHsmLFkJxUHrpqMttKq5k951N2lH5+hnGwrpEbn1hMVV0jv7twvJ1VGNNJIvYUk6rOaGmfiNwIvKBOp/vPRCQAZAN2+tBNTBuazaPXTuGGfy7mK/d9yPmT+tMrLYEXlxZRdKCG+2dPZFQfGzTQmM4SrY+8vgScAbwvIiOAeGBfZEMynW3a0Gxe//507nlzPS8tLaKmwc+E3HTuuniCTZ1qTCeTY31itjOISDzwCDARqAduCzYLX35+vhYUFHRGeCYCAgGlIRAgwWez4BkTTiKyWFXzg5WLyjMLVa0Hvh7pOEz08HiEBI8lCmMiJVp7QxljjIkiliyMMcYEFZX3LNpCREqA7SEUzSa2bpZbe6JXLLUFYqs9sdQWaF97Bqlq0GcPYiZZhEpECkK5mdNVWHuiVyy1BWKrPbHUFuic9thlKGOMMUFZsjDGGBNUd0wWcyIdQJhZe6JXLLUFYqs9sdQW6IT2dLt7FsYYY45ddzyzMMYYc4wsWRhjjAkqZpOFiMx0p2XdJCL/r5VyF4uIikhUd6ML1h4R+YaIlIjIMnf5diTiDEUofzcicqmIrHGn1X2qs2M8FiH83dzb5O9lg4gciEScoQqhPQNFZJ6ILBWRFSJydiTiDEUIbRkkIu+67XhfRHIjEWcoROQRESkWkVUt7BcR+ZPb1hUicnxYA1DVmFsAL7AZGIIzYu1yYMxRyqUBHwILgPxIx92e9gDfAB6IdKxhastwYCmQ6a73inTc7f231qT8zcAjkY67nX8/c4Ab3fdjgG2RjrsdbXkOuMZ9fwbwz0jH3Up7pgPHA6ta2H828DogOHMBLQzn58fqmcVUYJOqblFnUMJncOb0bu43wF1AbWcG1wahtqcrCKUt1wEPqup+iPppdY/17+Zy4OlOiaxtQmmPAocmE0kHdnVifMcilLaMAd513887yv6ooaofAmWtFJkFPK6OBUCGiPQN1+fHarLoD+xssl7objtMRCYBA1T11c4MrI2Ctsd1kXv6+byIDOic0I5ZKG0ZAYwQkfkiskBEZnZadMcu1L8bRGQQMBhodbj9CAulPb8Cvi4ihcBrOGdL0SiUtiwHLnLfXwCkiUhXnSwl5H+LbRGryeJoc20e7iMsIh7gXuCHnRZR+7TaHte/gTxVnQC8AzzW4VG1TSht8eFcijoN55f430Uko4PjaqtQ2nPIbOB5VfV3YDztFUp7LgceVdVcnEsf/3T/T0WbUNpyG/AlEVkKfAkoAho7OrAOciz/Fo9ZNP4Fh0Mh0PSXdS5HniqnAeNwZuLbhnN975UovskdrD2oaqmq1rmrDwOTOym2YxW0LW6Zl1W1QVW3Autxkkc0CqU9h8wmui9BQWjt+RYwF0BVPwUScQayizah/L/ZpaoXquok4GfutvLOCzGsjuXf4jGL1WSxCBguIoPdWfdmA68c2qmq5aqarap5qpqHc4P7PFWN1qn2Wm0PQLNrk+cBazsxvmMRtC040+qeDiAi2TiXpbZ0apShC6U9iMhIIBP4tJPjO1ahtGcHcCaAiIzGSRYlnRplaEL5f5Pd5KzoJzgzdHZVrwBXu72iTgTKVXV3uCqPypny2ktVG0XkJuBNnB4Rj6jqahG5AyhQ1S/8Z45mIbbnFhE5D+cUugynd1TUCbEtbwJfFpE1gB/4kaqWRi7qlh3Dv7XLgWfU7bYSrUJszw+Bh0XkBziXOb4Rje0KsS2nAb8TEcXpGfm9iAUchIg8jRNvtnu/6JdAHICq/g3n/tHZwCagGrg2rJ8fhX/HxhhjokysXoYyxhgTRpYsjDHGBGXJwhhjTFCWLIwxxgRlycIYY0xQliyMCcIdjfQrzbZ9X0T+IiL9ROT5NtT5vIgMEZFHReQ7zfadLyKviUi8iHwoIjHZxd10LZYsjAnuaZwHupqaDTztPgF88bFUJiJjAa+qbglSdz3OIHeXtS1sY8LHkoUxwT0PnCsiCQAikgf0Az4WkbxD8wuIM6fICyLyhohsFJG7WqjvSuBl9/07wKhDT+CLSDIwA+cpdtzXKzugTcYcE0sWxgThPj3+GXBo9NvZwLMtPLU8EedMYDxwWQuj/54MLHbr9gMvAJe6+84D5qlqpbu+CpgSjnYY0x6WLIwJTdPLRa0NCPiuO/ZYLbAGGHSUMn05ciylFut2k0m9iKS1I3Zj2s2ShTGheQk4052qMklVl7RQrq7Jez9HH3+tBmfwvUPmA31F5DhgGs4YP00lEP0TdJkYZ8nCmBCo6kHgfZxRSds7zPhaYFiTuhVnyO/HgNfcsxIA3Il4SlS1oZ2faUy7WLIwJnRPA8fhTM/ZHv/BGT00lLpP54tnGsZ0Oht11phOJiJJOPM9nxxs1jwReQH4iaqu75TgjGmBnVkY08lUtQZnLoJW50d2J+x5yRKFiQZ2ZmGMMSYoO7MwxhgTlCULY4wxQVmyMMYYE5QlC2OMMUFZsjDGGBPU/wfK4aCNOtcKoQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"import os\n",
"\n",
"# import bag package\n",
"import bag\n",
"from bag.io import read_yaml\n",
"\n",
"# import BAG demo Python modules\n",
"import xbase_demo.core as demo_core\n",
"import xbase_demo.demo_layout.core as layout_core\n",
"\n",
"# load circuit specifications from file\n",
"spec_fname = os.path.join(os.environ['BAG_WORK_DIR'], 'specs_demo/demo.yaml')\n",
"top_specs = read_yaml(spec_fname)\n",
"\n",
"# obtain BagProject instance\n",
"local_dict = locals()\n",
"if 'bprj' in local_dict:\n",
" print('using existing BagProject')\n",
" bprj = local_dict['bprj']\n",
"else:\n",
" print('creating BagProject')\n",
" bprj = bag.BagProject()\n",
"\n",
"demo_core.run_flow(bprj, top_specs, 'amp_cs', layout_core.AmpCS, run_lvs=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" ## Conclusion\n",
" Congratulations! You successfully walk through a BAG design flow. In the following modules we will learn how to write simple layout and schematic generators in BAG."
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 1
}