2023-12-06 18:04:46 -06:00
|
|
|
Synthesis in detail
|
|
|
|
-------------------
|
|
|
|
|
2024-01-25 18:06:02 -06:00
|
|
|
Synthesis can generally be broken down into coarse-grain synthesis, and
|
|
|
|
fine-grain synthesis. We saw this in :doc:`/getting_started/example_synth`
|
|
|
|
where a design was loaded and elaborated and then went through a series of
|
|
|
|
coarse-grain optimizations before being mapped to hard blocks and fine-grain
|
|
|
|
cells. Most commands in Yosys will target either coarse-grain representation or
|
|
|
|
fine-grain representation, with only a select few compatible with both states.
|
|
|
|
|
2024-05-02 20:38:01 -05:00
|
|
|
Commands such as `proc`, `fsm`, and `memory` rely on the additional information
|
|
|
|
in the coarse-grain representation, along with a number of optimizations such as
|
|
|
|
`wreduce`, `share`, and `alumacc`. `opt` provides optimizations which are
|
|
|
|
useful in both states, while `techmap` is used to convert coarse-grain cells to
|
|
|
|
the corresponding fine-grain representation.
|
2024-01-25 18:06:02 -06:00
|
|
|
|
|
|
|
Single-bit cells (logic gates, FFs) as well as LUTs, half-adders, and
|
|
|
|
full-adders make up the bulk of the fine-grain representation and are necessary
|
2024-05-02 20:38:01 -05:00
|
|
|
for commands such as `abc`\ /`abc9`, `simplemap`, `dfflegalize`, and
|
|
|
|
`memory_map`.
|
2023-12-11 17:05:45 -06:00
|
|
|
|
2023-12-06 18:04:46 -06:00
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 3
|
|
|
|
|
|
|
|
synth
|
|
|
|
proc
|
2023-12-06 22:14:21 -06:00
|
|
|
fsm
|
|
|
|
memory
|
|
|
|
opt
|
2023-12-17 22:49:15 -06:00
|
|
|
techmap_synth
|
2024-01-25 18:06:02 -06:00
|
|
|
extract
|
2023-12-06 22:14:21 -06:00
|
|
|
abc
|
2023-12-13 15:08:46 -06:00
|
|
|
cell_libs
|
2023-12-06 22:14:21 -06:00
|
|
|
|