From 6156716876f521a43ef59f1eb78c6ae0fb066d58 Mon Sep 17 00:00:00 2001 From: Colin Schmidt Date: Thu, 25 Jul 2019 07:59:21 -0700 Subject: [PATCH 1/3] hammer docs outline --- docs/VLSI/HAMMER.rst | 35 ++++++++++++++++++++++++++++++++++- docs/VLSI/index.rst | 8 ++++---- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/docs/VLSI/HAMMER.rst b/docs/VLSI/HAMMER.rst index a206fe93..ffd880be 100644 --- a/docs/VLSI/HAMMER.rst +++ b/docs/VLSI/HAMMER.rst @@ -1,7 +1,40 @@ -HAMMER +Core HAMMER ================================ `HAMMER `__ is a physical design generator that wraps around vendor specific technologies and tools to provide a single API to create ASICs. HAMMER allows for reusability in ASIC design while still providing the designers leeway to make their own modifications. For more information, read the `HAMMER paper `__ and see the `GitHub repository `__. + +Actions +------- + +Actions are the top-level tasks Hammer is capable of executing (e.g. synthesis, place-and-route, etc.) + +Steps +------- + +Steps are the sub-components of actions that individually addressable in Hammer (e.g. placement in the place-and-route action). + +Hooks +------- + +Hooks are modifications to steps or actions that are programmaticly defined in a Hammer configuration. + +Tool Plugins +============ + +Hammer supports separatly managed plugins for different CAD tool vendors. + +Technology Plugins +================== + +Hammer supports separately managed plugins for different technologies. + + +Configuration +============= + +To configure a hammer flow the user needs to supply a yaml or json configuration file the chooses the tool and technology plugins and versions as well as any design specific configuration APIs. + +You can see the current set of all avaialable Hammer APIs `here `. diff --git a/docs/VLSI/index.rst b/docs/VLSI/index.rst index 464d9828..259966d8 100644 --- a/docs/VLSI/index.rst +++ b/docs/VLSI/index.rst @@ -1,11 +1,11 @@ -VLSI Production +VLSI Flow ================================ -The Chipyard framework aim to provide wrappers to a general VLSI flow. -In particular, we aim to support the HAMMER flow. +The Chipyard framework aims to provide wrappers for a general VLSI flow. +In particular, we aim to support the HAMMER physical deisgn generator flow. .. toctree:: :maxdepth: 2 - :caption: VLSI Production: + :caption: VLSI Flow: HAMMER From 80b6976be9beb13329cbd9bd5792ee00bd70cd63 Mon Sep 17 00:00:00 2001 From: Colin Schmidt Date: Thu, 8 Aug 2019 08:01:24 -0700 Subject: [PATCH 2/3] Add start of tool-plugin section. --- docs/VLSI/HAMMER.rst | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/VLSI/HAMMER.rst b/docs/VLSI/HAMMER.rst index ffd880be..162b703c 100644 --- a/docs/VLSI/HAMMER.rst +++ b/docs/VLSI/HAMMER.rst @@ -25,6 +25,26 @@ Tool Plugins ============ Hammer supports separatly managed plugins for different CAD tool vendors. +The types of tools(in there hammer names) supported currently include: + +* synthesis +* par +* drc +* lvs +* sram_generator +* pcb + +In order to configure your tool plugin of choice you will need to set several configuration variables. +First you should select which specific tool you want to use by setting ``vlsi.core._tool`` to the name of your tool. +For example ``vlsi.core.par_tool: "innovus"``. +You will also need to point hammer to the folder that contains your tool plugin by setting ``vlsi.core._tool_path``. +This directory should include a folder with the name of the tool as specified previously, which itself includes a python file ``__init__.py`` and a yaml file ``defaults.yml`` specifing the default values for any tool specific variables. +In addition you can also customize the version of the tools you use by setting ``..version`` to a tool specific string. +Looking at the tools ``defaults.yml`` will inform you if there are other variables you would like to set for your use of this tool. + +The ``__init__.py`` file should contain a variable, ``tool``, that points to the class implementing this tools Hammer support. +This class should be a subclass of ``HammerTool``, which will be a subclass of ``HammerTool``. + Technology Plugins ================== @@ -37,4 +57,4 @@ Configuration To configure a hammer flow the user needs to supply a yaml or json configuration file the chooses the tool and technology plugins and versions as well as any design specific configuration APIs. -You can see the current set of all avaialable Hammer APIs `here `. +You can see the current set of all avaialable Hammer APIs `here `__. From 9538257be14e421d171c5e35e8d262f12cc94ec9 Mon Sep 17 00:00:00 2001 From: abejgonzalez Date: Thu, 8 Aug 2019 11:19:57 -0700 Subject: [PATCH 3/3] grammer + spell check --- docs/VLSI/HAMMER.rst | 16 +++++++--------- docs/VLSI/index.rst | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/VLSI/HAMMER.rst b/docs/VLSI/HAMMER.rst index 162b703c..c0c77824 100644 --- a/docs/VLSI/HAMMER.rst +++ b/docs/VLSI/HAMMER.rst @@ -19,13 +19,13 @@ Steps are the sub-components of actions that individually addressable in Hammer Hooks ------- -Hooks are modifications to steps or actions that are programmaticly defined in a Hammer configuration. +Hooks are modifications to steps or actions that are programmatically defined in a Hammer configuration. Tool Plugins ============ -Hammer supports separatly managed plugins for different CAD tool vendors. -The types of tools(in there hammer names) supported currently include: +Hammer supports separately managed plugins for different CAD tool vendors. +The types of tools (in there hammer names) supported currently include: * synthesis * par @@ -34,27 +34,25 @@ The types of tools(in there hammer names) supported currently include: * sram_generator * pcb -In order to configure your tool plugin of choice you will need to set several configuration variables. -First you should select which specific tool you want to use by setting ``vlsi.core._tool`` to the name of your tool. +In order to configure your tool plugin of choice, you will need to set several configuration variables. +First, you should select which specific tool you want to use by setting ``vlsi.core._tool`` to the name of your tool. For example ``vlsi.core.par_tool: "innovus"``. You will also need to point hammer to the folder that contains your tool plugin by setting ``vlsi.core._tool_path``. -This directory should include a folder with the name of the tool as specified previously, which itself includes a python file ``__init__.py`` and a yaml file ``defaults.yml`` specifing the default values for any tool specific variables. +This directory should include a folder with the name of the tool as specified previously, which itself includes a python file ``__init__.py`` and a yaml file ``defaults.yml`` specifying the default values for any tool specific variables. In addition you can also customize the version of the tools you use by setting ``..version`` to a tool specific string. Looking at the tools ``defaults.yml`` will inform you if there are other variables you would like to set for your use of this tool. The ``__init__.py`` file should contain a variable, ``tool``, that points to the class implementing this tools Hammer support. This class should be a subclass of ``HammerTool``, which will be a subclass of ``HammerTool``. - Technology Plugins ================== Hammer supports separately managed plugins for different technologies. - Configuration ============= To configure a hammer flow the user needs to supply a yaml or json configuration file the chooses the tool and technology plugins and versions as well as any design specific configuration APIs. -You can see the current set of all avaialable Hammer APIs `here `__. +You can see the current set of all available Hammer APIs `here `__. diff --git a/docs/VLSI/index.rst b/docs/VLSI/index.rst index 259966d8..f8bdb7a8 100644 --- a/docs/VLSI/index.rst +++ b/docs/VLSI/index.rst @@ -2,7 +2,7 @@ VLSI Flow ================================ The Chipyard framework aims to provide wrappers for a general VLSI flow. -In particular, we aim to support the HAMMER physical deisgn generator flow. +In particular, we aim to support the HAMMER physical design generator flow. .. toctree:: :maxdepth: 2