| # synth |
| |
| The _synth_ module is meant to be used to execute YOSYS synthesis. |
| |
| The module should guarantee the following outputs: |
| * `eblif` |
| * `fasm_extra` (can be empty) |
| * `json` |
| * `synth_json` |
| * `synth_log` (on demand) |
| |
| For detailed information about these targets, please refer to |
| `docs/common targets and variables.md` |
| |
| What files and how are they generated is dependent on TCL scripts executed |
| withing YOSYS and the script vary depending on the target platform. Due to this |
| design choice it is required for the author of the flow definition to parameterize |
| the `synth` module in a way that will **GUARANTEE** the targets mentioned above |
| will be generated upon a successful YOSYS run. |
| |
| The setup of the synth module follows the following specifications: |
| |
| ## Parameters |
| |
| The `params` section of a stage configuration may contain a `produces` list. |
| The list should specify additional targets that will be generated |
| (`?` qualifier is allowed). |
| |
| ## Values |
| |
| The `synth` module requires the following values: |
| |
| * `tcl_scripts` (string, required): A path to a directory containing `synth.tcl` |
| and `conv.tcl` scripts that will be used by YOSYS. |
| * `read_verilog_args` (list[string | number], optional) - If specified, the Verilog |
| sources will be read using the `read_verilog` procedure with options contained in |
| this value. |
| * `yosys_tcl_env` (dict[string -> string | list[string], required) - A mapping that |
| defines environmental variables that will be used within the TCL scripts. This |
| should contain the references to module's inputs and outputs in order to guarantee |
| the generation of the desired targets. |