Fix accidental blocking assignment in always_ff for read buffering storage elements
This commit is contained in:
@@ -33,7 +33,7 @@ Install from `PyPi`_ using pip
|
|||||||
|
|
||||||
Example
|
Example
|
||||||
-------
|
-------
|
||||||
The easiest way is to use the `PeakRDL command line tool <https://peakrdl.readthedocs.io/>`_:
|
The easiest way to use PeakRDL-regblock is via the `PeakRDL command line tool <https://peakrdl.readthedocs.io/>`_:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
|||||||
@@ -41,19 +41,19 @@ class RBufLogicGenerator(RDLForLoopGenerator):
|
|||||||
for field in node.fields():
|
for field in node.fields():
|
||||||
if bidx < field.low:
|
if bidx < field.low:
|
||||||
# zero padding before field
|
# zero padding before field
|
||||||
s.append(f"{data}[{field.low-1}:{bidx}] = '0;")
|
s.append(f"{data}[{field.low-1}:{bidx}] <= '0;")
|
||||||
|
|
||||||
value = self.exp.dereferencer.get_value(field)
|
value = self.exp.dereferencer.get_value(field)
|
||||||
if field.msb < field.lsb:
|
if field.msb < field.lsb:
|
||||||
# Field gets bitswapped since it is in [low:high] orientation
|
# Field gets bitswapped since it is in [low:high] orientation
|
||||||
value = f"{{<<{{{value}}}}}"
|
value = f"{{<<{{{value}}}}}"
|
||||||
s.append(f"{data}[{field.high}:{field.low}] = {value};")
|
s.append(f"{data}[{field.high}:{field.low}] <= {value};")
|
||||||
|
|
||||||
bidx = field.high + 1
|
bidx = field.high + 1
|
||||||
|
|
||||||
regwidth = node.get_property('regwidth')
|
regwidth = node.get_property('regwidth')
|
||||||
if bidx < regwidth:
|
if bidx < regwidth:
|
||||||
# zero padding after last field
|
# zero padding after last field
|
||||||
s.append(f"{data}[{regwidth-1}:{bidx}] = '0;")
|
s.append(f"{data}[{regwidth-1}:{bidx}] <= '0;")
|
||||||
|
|
||||||
return "\n".join(s)
|
return "\n".join(s)
|
||||||
|
|||||||
Reference in New Issue
Block a user