amaranth/nmigen/hdl
whitequark a02e3750bf hdl.mem: remove WritePort(priority=) argument.
The write port priority in Yosys is derived directly from the order
in which the ports are declared in the Verilog frontend. It is being
removed for several reasons:
  1. It is not clear if it works correctly for all cases (FFRAM,
     LUTRAM, BRAM).
  2. Although it is roundtripped via Verilog with correct simulation
     semantics, the resulting code has a high chance of being
     interpreted incorrectly by Xilinx tools.
  3. It cannot be roundtripped via FIRRTL, which is an alternative
     backend that is an interesting future option. (FIRRTL leaves
     write collision completely undefined.)
  3. It is a niche feature that, if it is needed, can be completely
     replaced using an explicit comparator, priority encoder, and
     write enable gating circuit. (This is what Xilinx recommends
     for handling this case.)

In the future we should extend nMigen's formal verification to assert
that a write collision does not happen.
2019-09-28 01:29:56 +00:00
..
__init__.py hdl.xfrm: CEInserter→EnableInserter. 2019-08-12 13:39:26 +00:00
ast.py hdl.ast: cast Mux() selector to bool if it is not a 1-bit value. 2019-09-23 13:39:31 +00:00
cd.py hdl.cd: add negedge clock domains. 2019-08-31 22:05:48 +00:00
dsl.py hdl.ast: rename nbits to width. 2019-09-20 15:36:25 +00:00
ir.py build.plat, hdl.ir: coordinate missing domain creation. 2019-08-19 22:52:01 +00:00
mem.py hdl.mem: remove WritePort(priority=) argument. 2019-09-28 01:29:56 +00:00
rec.py hdl.rec: fix using Enum subclass as shape if direction is specified. 2019-09-22 17:23:32 +00:00
xfrm.py hdl.ast: rename nbits to width. 2019-09-20 15:36:25 +00:00