%global _empty_manifest_terminate_build 0 Name: python-dovado-rtl Version: 0.10.12 Release: 1 Summary: RTL Design Space Exploration on top of Vivado License: MIT URL: https://github.com/DPaletti/dovado Source0: https://mirrors.nju.edu.cn/pypi/web/packages/14/83/6fb9dc791e96c47940ad4e72ac6da035cd436f8831d8ecc7475a52c54f71/dovado_rtl-0.10.12.tar.gz BuildArch: noarch Requires: python3-pathvalidate Requires: python3-BeautifulSoup4 Requires: python3-lxml Requires: python3-pyyaml Requires: python3-pexpect Requires: python3-pymoo Requires: python3-antlr4-python3-runtime Requires: python3-dataclasses Requires: python3-typer Requires: python3-importlib-resources Requires: python3-nacolla Requires: python3-movado Requires: python3-numpy %description # Table of Contents 1. [Installation](#org648fc4e) 2. [Usage](#org4d8ab18) 1. [Defining Custom Metrics](#org023397d) 2. [Examples](#orge369aa6) 1. [neorv32 (VHDL)](#orgcb021dc) 1. [neorv32 with boolean (VHDL)](#neorv32boolean) 2. [corundum (VERILOG)](#org9b66d30) 3. [CICERO (VERILOG/SYSTEM-VERILOG)](#cicero) 4. [cv32e40p (SYSTEM-VERILOG)](#orgbda061b) 3. [RAW'22 Experiments](#raw22experiments) 4. [Associated Publication](#paper_ref) DoVado is a RTL design automation and exploration CLI tool. # Installation DoVado needs python 3.6 or higher. Install it through pip, on many Linux systems use pip3 to force python 3 installation. Dovado has been tested on Vivado 2018.3. pip3 install --user --no-cache dovado-rtl # Usage Dovado has two modes: - points: design automation mode in which a file containing parameter values must be given and a file containing all the evaluations is returned for some given metrics, - space: design exploration mode in which parameters and their ranges must be given together with some target metrics and the pareto set of design points with respect to the given metrics is returned.
parameter | description | mandatory |
---|---|---|
–file-path | path to the target file | yes |
–board | vivado descriptor of a board | yes |
–parameters | parameters to use either for points/space (integers and booleans supported) | yes |
–clock-port | RTL identifier of the clock port | yes |
–implementation | switch to evaluate designs after implementation (default is after synthesis) | no |
–incremental | switch to use incremental synthesis/implementation | no |
–directives | list of directives to pass to synthesis, place and route (default is RuntimeOptimized for all three) | no |
–target-clock | clock (Mhz) to give as a constraint to Vivado (default=1000) | no |
–metrics | list of metrics to target using their integer identifier (default mode is interactive, you will be asked after first synthesis/implementation) | no |
parameter | description | mandatory |
---|---|---|
–power-of-2 | list of ’y/n’ to state whether a parameter must be explored stepping power of 2s | no |
–many-objective | replace default ga implementation (NSGA-II) with AGEMOEA which is a variant better suited for many objective (e.g. >4) optimization | no |
–param-initial-values | parameter values which are guaranteed to be synthesizable to retrieve metric mapping | no |
–optimization-runtime | set as a termination condition a timeout as hh:mm:ss | no |
–read-design-values | read design values from a csv | no |
–disable-approximate | disable approximation | no |
–estimation-model | choose Hoeffding Adaptive Tree (default) or Kernel Ridge regressor or Shadow to not use the controller but log anyways | no |
–controller-model | choose Mab or Distance-based (default) controller | no |
–disable-controller-mab-weight | disable loss weighting in distance controller | no |
–n-controllers | set the number of voting controllers (default is 500, too high for many applications) | no |
parameter | description | mandatory |
---|---|---|
–file-path | path to the target file | yes |
–board | vivado descriptor of a board | yes |
–parameters | parameters to use either for points/space (integers and booleans supported) | yes |
–clock-port | RTL identifier of the clock port | yes |
–implementation | switch to evaluate designs after implementation (default is after synthesis) | no |
–incremental | switch to use incremental synthesis/implementation | no |
–directives | list of directives to pass to synthesis, place and route (default is RuntimeOptimized for all three) | no |
–target-clock | clock (Mhz) to give as a constraint to Vivado (default=1000) | no |
–metrics | list of metrics to target using their integer identifier (default mode is interactive, you will be asked after first synthesis/implementation) | no |
parameter | description | mandatory |
---|---|---|
–power-of-2 | list of ’y/n’ to state whether a parameter must be explored stepping power of 2s | no |
–many-objective | replace default ga implementation (NSGA-II) with AGEMOEA which is a variant better suited for many objective (e.g. >4) optimization | no |
–param-initial-values | parameter values which are guaranteed to be synthesizable to retrieve metric mapping | no |
–optimization-runtime | set as a termination condition a timeout as hh:mm:ss | no |
–read-design-values | read design values from a csv | no |
–disable-approximate | disable approximation | no |
–estimation-model | choose Hoeffding Adaptive Tree (default) or Kernel Ridge regressor or Shadow to not use the controller but log anyways | no |
–controller-model | choose Mab or Distance-based (default) controller | no |
–disable-controller-mab-weight | disable loss weighting in distance controller | no |
–n-controllers | set the number of voting controllers (default is 500, too high for many applications) | no |
parameter | description | mandatory |
---|---|---|
–file-path | path to the target file | yes |
–board | vivado descriptor of a board | yes |
–parameters | parameters to use either for points/space (integers and booleans supported) | yes |
–clock-port | RTL identifier of the clock port | yes |
–implementation | switch to evaluate designs after implementation (default is after synthesis) | no |
–incremental | switch to use incremental synthesis/implementation | no |
–directives | list of directives to pass to synthesis, place and route (default is RuntimeOptimized for all three) | no |
–target-clock | clock (Mhz) to give as a constraint to Vivado (default=1000) | no |
–metrics | list of metrics to target using their integer identifier (default mode is interactive, you will be asked after first synthesis/implementation) | no |
parameter | description | mandatory |
---|---|---|
–power-of-2 | list of ’y/n’ to state whether a parameter must be explored stepping power of 2s | no |
–many-objective | replace default ga implementation (NSGA-II) with AGEMOEA which is a variant better suited for many objective (e.g. >4) optimization | no |
–param-initial-values | parameter values which are guaranteed to be synthesizable to retrieve metric mapping | no |
–optimization-runtime | set as a termination condition a timeout as hh:mm:ss | no |
–read-design-values | read design values from a csv | no |
–disable-approximate | disable approximation | no |
–estimation-model | choose Hoeffding Adaptive Tree (default) or Kernel Ridge regressor or Shadow to not use the controller but log anyways | no |
–controller-model | choose Mab or Distance-based (default) controller | no |
–disable-controller-mab-weight | disable loss weighting in distance controller | no |
–n-controllers | set the number of voting controllers (default is 500, too high for many applications) | no |