memory_share - consolidate memory ports¶
yosys> help memory_share¶
memory_share [-nosat] [-nowiden] [selection]
This pass merges share-able memory ports into single memory ports. The following methods are used to consolidate the number of memory ports: - When multiple write ports access the same address then this is converted to a single write port with a more complex data and/or enable logic path. - When multiple read or write ports access adjacent aligned addresses, they are merged to a single wide read or write port. This transformation can be disabled with the "-nowiden" option. - When multiple write ports are never accessed at the same time (a SAT solver is used to determine this), then the ports are merged into a single write port. This transformation can be disabled with the "-nosat" option. Note that in addition to the algorithms implemented in this pass, the $memrd and $memwr cells are also subject to generic resource sharing passes (and other optimizations) such as "share" and "opt_merge".