Analog design using KLayout tool ================================ `KLayout `_ is an open source layout viewer and editor. It provides a graphical interface for creating and editing GDSII and OASIS layout files. The IHP Open PDK includes KLayout technology files, PyCells, DRC rules, LVS rules and layer properties for the SG13G2 process. * Download: https://www.klayout.de/build.html * Source: https://github.com/KLayout/klayout Klayout can be easily installed using debian package manager ``dpkg`` using the following scheme (please choose the OS and the version according to your requirements). For the exact location refer to the official `Klayout website `_. .. code-block:: bash wget https://www.klayout.org/downloads/Ubuntu-24/klayout_version.deb sudo dpkg -i klayout_version.deb The basic configuration of Klayout includes setting the environmental variables in your ``/home/$USER/.bashrc`` file as follows: .. code-block:: bash export KLAYOUT_PATH="/home/$USER/.klayout:$PDK_ROOT/$PDK/libs.tech/klayout" export KLAYOUT_HOME=/home/$USER/.klayout .. warning:: Please note that the ``PDK_ROOT`` and ``PDK`` variables have to be exported earlier Klayout configuration is stored in ``/home/$USER/.klayout/klayoutrc`` file. Here we provide some useful sections the user can add to its own configuration. Grid configuration (minimal grid size 5 nm) .. code-block:: xml 0.1,0.05,0.025,0.01,0.005 Key bindings: .. code-block:: xml '@secrets.duplicate_interactive':C; '@secrets.paste_interactive':H; '@secrets.sel_move_interactive':M; edit_menu.clear_all_rulers:'Shift+K'; edit_menu.edit_options:F3; edit_menu.mode_menu.box:B; edit_menu.mode_menu.instance:I; edit_menu.mode_menu.partial:S; edit_menu.mode_menu.path:P; edit_menu.mode_menu.polygon:'Shift+P'; edit_menu.mode_menu.ruler:R; edit_menu.mode_menu.text:X; edit_menu.redo:'Ctrl+Z'; edit_menu.select_menu.select_all:'Ctrl+Shift+A'; edit_menu.select_menu.unselect_all:'Ctrl+D'; edit_menu.selection_menu.align:A; edit_menu.selection_menu.change_layer:'Shift+L'; edit_menu.selection_menu.flatten_insts:'Alt+Shift+F'; edit_menu.selection_menu.make_cell:'Alt+Shift+M'; edit_menu.selection_menu.sel_flip_x:'Shift+H'; edit_menu.selection_menu.sel_flip_y:'Shift+V'; edit_menu.selection_menu.sel_move:'['; edit_menu.selection_menu.sel_move_to:']'; edit_menu.selection_menu.sel_rot_ccw:'Shift+R'; edit_menu.selection_menu.sel_rot_cw:'Ctrl+Shift+R'; edit_menu.selection_menu.tap:T; edit_menu.selection_menu.union:'Shift+M'; edit_menu.undo:U; file_menu.new_layout:'Ctrl+N'; file_menu.open_same_panel:'Ctrl+Shift+O'; file_menu.save:'Ctrl+S'; file_menu.save_as:'Ctrl+Shift+S'; file_menu.reload:'Ctrl+Shift+R'; help_menu.assistant:F1; view_menu.crosshair_cursor:'Shift+C'; zoom_menu.ascend:'Ctrl+E'; zoom_menu.descend:'Shift+E'; zoom_menu.descend_into:E; zoom_menu.max_hier:'Shift+F'; zoom_menu.redraw:'Ctrl+R'; zoom_menu.select_cell:'Shift+S'; zoom_menu.select_current_cell:'Shift+T'; zoom_menu.zoom_fit:F; zoom_menu.zoom_fit_sel:'Ctrl+F'; zoom_menu.zoom_in:Return; zoom_menu.zoom_out:'Shift+Return'; zoom_menu.max_hier_0:0; zoom_menu.max_hier_1:9; '@lcp_context_menu.hide_empty_layers':4; '@lcp_context_menu.invvalid':6; '@lcp_context_menu.show_all':1; '@lcp_context_menu.show_only':2; '@lcp_context_menu.toggle_visibility':3; '@lcp_context_menu.valid':5