3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-08 18:31:51 +00:00
yosys/passes/memory
whitequark e0def9e4d9 memory_map: add -attr option, to respect inference attributes.
Before this commit, memory_map (which is always a part of a synth
script) would always pick up any $mem cell that was not processed
by a preceding pass and lower it down to $dff/$mux cells.
This is undesirable for two reasons:
  * If there is an explicit inference attribute set on a $mem cell,
    e.g. (* ram_block *), then it is arguably incorrect to map such
    a memory to $dff/$mux cells.
  * If memory_map tries to lower a memory that was intended to
    be mapped to a large BRAM, it often takes extraordinarily long
    time to finish, produces an extremely large log file, and outputs
    an unusable design.

After this commit, properly invoked memory_map will not map any
memory that has an explicit inference attribute specified, solving
the first issue, and alleviating the second. The default behavior
is not changed.
2020-04-03 05:51:40 +00:00
..
Makefile.inc Add "memory_nordff" pass 2018-03-06 23:31:51 +01:00
memory.cc Add "opt_mem" pass 2019-11-22 17:45:22 +01:00
memory_bram.cc memory_bram: add attr_icase option. 2020-02-06 14:58:20 +00:00
memory_collect.cc memory_collect: Copy attr from RTLIL::Memory to cell 2019-11-18 13:58:03 +00:00
memory_dff.cc Make liberal use of IdString.in() 2019-08-06 16:18:18 -07:00
memory_map.cc memory_map: add -attr option, to respect inference attributes. 2020-04-03 05:51:40 +00:00
memory_memx.cc Consistent use of 'override' for virtual methods in derived classes. 2018-07-20 23:51:06 -07:00
memory_nordff.cc Consistent use of 'override' for virtual methods in derived classes. 2018-07-20 23:51:06 -07:00
memory_share.cc Make liberal use of IdString.in() 2019-08-06 16:18:18 -07:00
memory_unpack.cc Consistent use of 'override' for virtual methods in derived classes. 2018-07-20 23:51:06 -07:00