<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sfcX/src/main/scala/firrtl/passes/memlib, branch master</title>
<subtitle>Scala FIRRTL Compiler for chiselX</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/'/>
<entry>
<title>Fix invalid references generated by VerilogMemDelays (#2588)</title>
<updated>2023-02-03T07:38:07+00:00</updated>
<author>
<name>Alan L</name>
</author>
<published>2023-02-03T07:38:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=94d425f0f48e84bbae1be9d44d64615a37d960d8'/>
<id>94d425f0f48e84bbae1be9d44d64615a37d960d8</id>
<content type='text'>
Transformation of mem readwriters whose address contain references to
readwriters of mems declared before it would contain invalid references
to untransformed memory readwriter, as the connection is not transformed.
This commit fixes this issue.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Transformation of mem readwriters whose address contain references to
readwriters of mems declared before it would contain invalid references
to untransformed memory readwriter, as the connection is not transformed.
This commit fixes this issue.</pre>
</div>
</content>
</entry>
<entry>
<title>Make MemConf's MemPort serialization deterministic (#2508)</title>
<updated>2022-04-08T00:07:48+00:00</updated>
<author>
<name>Chick Markley</name>
</author>
<published>2022-04-08T00:07:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=f7b4aa8a3a759c94e0de8e1aeeacc69d3d702945'/>
<id>f7b4aa8a3a759c94e0de8e1aeeacc69d3d702945</id>
<content type='text'>
Problem: MemConf serialization of MemPorts was not deterministic
and the ordering seems to have changed as we move projects to 2.13
Downstream project can be adversely affected by changes in ordering
This changes specifies as specific ordering that should be compatible with
the historical one.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: MemConf serialization of MemPorts was not deterministic
and the ordering seems to have changed as we move projects to 2.13
Downstream project can be adversely affected by changes in ordering
This changes specifies as specific ordering that should be compatible with
the historical one.</pre>
</div>
</content>
</entry>
<entry>
<title>Deprecate all mutable methods on RenameMap (#2444)</title>
<updated>2021-12-17T18:07:25+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2021-12-17T18:07:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=37c8528cfed4395924820b54498ef761ded17393'/>
<id>37c8528cfed4395924820b54498ef761ded17393</id>
<content type='text'>
* Add renamemap.MutableRenameMap which includes these methods without
  deprecation
* Deprecate Stringly typed RenameMap APIs which were accidentally
  undeprecated a while ago

Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add renamemap.MutableRenameMap which includes these methods without
  deprecation
* Deprecate Stringly typed RenameMap APIs which were accidentally
  undeprecated a while ago

Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Hotfix for Vector Reg Init LegalizeConnects Bug</title>
<updated>2021-10-05T02:24:51+00:00</updated>
<author>
<name>Schuyler Eldridge</name>
</author>
<published>2021-10-05T02:24:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=527eba4966513bcfd1453fd76cfb241272fe602c'/>
<id>527eba4966513bcfd1453fd76cfb241272fe602c</id>
<content type='text'>
Add a private pass, LegalizeConnectsOnly, that behaves like
LegalizeConnects, but only pads connects instead of connects and
register inits.  Padding is necessary for ReplSeqMem, but ReplSeqMem
runs before LowerTypes and vector registers can still exist at this
point.  Connects, conversely, are all blown out by ExpandConnects and
can be safely, blindly treated as ground type.

Fixes #2379.

Signed-off-by: Schuyler Eldridge &lt;schuyler.eldridge@sifive.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a private pass, LegalizeConnectsOnly, that behaves like
LegalizeConnects, but only pads connects instead of connects and
register inits.  Padding is necessary for ReplSeqMem, but ReplSeqMem
runs before LowerTypes and vector registers can still exist at this
point.  Connects, conversely, are all blown out by ExpandConnects and
can be safely, blindly treated as ground type.

Fixes #2379.

Signed-off-by: Schuyler Eldridge &lt;schuyler.eldridge@sifive.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove BlackBoxSourceHelper from ReplaceMemTransform (#2355)</title>
<updated>2021-09-11T07:29:10+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2021-09-11T07:29:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=beb5bc9850fd69adff36f38fb00a1f68bb1918fe'/>
<id>beb5bc9850fd69adff36f38fb00a1f68bb1918fe</id>
<content type='text'>
BlackBoxSourceHelper should only run late in compilation to allow
transforms to tweak its behavior (eg. changing BlackBoxTargetDirAnno).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
BlackBoxSourceHelper should only run late in compilation to allow
transforms to tweak its behavior (eg. changing BlackBoxTargetDirAnno).</pre>
</div>
</content>
</entry>
<entry>
<title>MemConf: Do not add another new line when serializing (#2354)</title>
<updated>2021-09-10T18:04:43+00:00</updated>
<author>
<name>Megan Wachs</name>
</author>
<published>2021-09-10T18:04:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=c7917c88f8e8aaa93255a731c75f3e0e6901e2fb'/>
<id>c7917c88f8e8aaa93255a731c75f3e0e6901e2fb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add emitter for optimized low firrtl (#2304)</title>
<updated>2021-08-02T20:46:29+00:00</updated>
<author>
<name>Kevin Laeufer</name>
</author>
<published>2021-08-02T20:46:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=e04f1e7f303920ac1d1f865450d0e280aafb58b3'/>
<id>e04f1e7f303920ac1d1f865450d0e280aafb58b3</id>
<content type='text'>
* rearrange passes to enable optimized firrtl emission

* Support ConstProp on padded arguments to comparisons with literals

* Move shr legalization logic into ConstProp

Continue calling ConstProp of shr in Legalize.

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* rearrange passes to enable optimized firrtl emission

* Support ConstProp on padded arguments to comparisons with literals

* Move shr legalization logic into ConstProp

Continue calling ConstProp of shr in Legalize.

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Fix VerilogMemDelays use before declaration (#2278)</title>
<updated>2021-06-22T16:52:53+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2021-06-22T16:52:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=11128d93ea5412508b2616fda862abf05a59b435'/>
<id>11128d93ea5412508b2616fda862abf05a59b435</id>
<content type='text'>
The pass injects pipe registers immediately after the declaration of the
memory. This can be problematic if the clock for the associated memory
port is defined after the declaration of the memory. For any memory port
clocks that are driven by non-ports, we now inject a wire before the
pipe register declarations to be sure there are no
use-before-declaration issues.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The pass injects pipe registers immediately after the declaration of the
memory. This can be problematic if the clock for the associated memory
port is defined after the declaration of the memory. For any memory port
clocks that are driven by non-ports, we now inject a wire before the
pipe register declarations to be sure there are no
use-before-declaration issues.</pre>
</div>
</content>
</entry>
<entry>
<title>Replace mem macros renaming (#2243)</title>
<updated>2021-06-03T21:56:23+00:00</updated>
<author>
<name>Albert Chen</name>
</author>
<published>2021-06-03T21:56:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=62fdb87e0897e582bbbec1e29ee4598f40343d09'/>
<id>62fdb87e0897e582bbbec1e29ee4598f40343d09</id>
<content type='text'>
* ReplaceMemMacros: add target rename test case

* ReplaceMemMacros: rename references to instances

* fix renaming for deduped mems

* use grouped DummyAnnos to preserve order

* Apply suggestions from code review

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;

* run scalafmt

* flatten targets

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* ReplaceMemMacros: add target rename test case

* ReplaceMemMacros: rename references to instances

* fix renaming for deduped mems

* use grouped DummyAnnos to preserve order

* Apply suggestions from code review

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;

* run scalafmt

* flatten targets

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Rewrite vlsi_mem_gen into a Firrtl Transform (#2202)</title>
<updated>2021-05-22T07:16:32+00:00</updated>
<author>
<name>sinofp</name>
</author>
<published>2021-05-22T07:16:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sfcX/commit/?id=8bca41522cdc4b8ff69734cd159ce29f984d3290'/>
<id>8bca41522cdc4b8ff69734cd159ce29f984d3290</id>
<content type='text'>
* Add GenVerilogMemBehaviorModelAnno &amp; vlsiMemGen

* Add CLI support for GenVerilogMemBehaviorModelAnno

* Add simple test for GenVerilogMemBehaviorModelAnno

* Fix for review

1. rename case class Port(prefix, `type`) to Port(prefix, portType)
2. fix AnnotatedMemoriesAnnotation collect function.
3. fix bug that ModuleName is not correct.

* Format DumpMemoryAnnotations &amp; ReplSeqMemTests

* Fix for review

1. Inline genDecl, genPortSpec, genSequential, genCombinational
2. Add DefAnnotatedMemory informations in header
3. Change helpText
4. Check output Verilog by Verilator, the code is from FirrtlRunners#lintVerilog

* Fix ReadWritePort mask name

Co-authored-by: Jiuyang Liu &lt;liu@jiuyang.me&gt;
Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add GenVerilogMemBehaviorModelAnno &amp; vlsiMemGen

* Add CLI support for GenVerilogMemBehaviorModelAnno

* Add simple test for GenVerilogMemBehaviorModelAnno

* Fix for review

1. rename case class Port(prefix, `type`) to Port(prefix, portType)
2. fix AnnotatedMemoriesAnnotation collect function.
3. fix bug that ModuleName is not correct.

* Format DumpMemoryAnnotations &amp; ReplSeqMemTests

* Fix for review

1. Inline genDecl, genPortSpec, genSequential, genCombinational
2. Add DefAnnotatedMemory informations in header
3. Change helpText
4. Check output Verilog by Verilator, the code is from FirrtlRunners#lintVerilog

* Fix ReadWritePort mask name

Co-authored-by: Jiuyang Liu &lt;liu@jiuyang.me&gt;
Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
</feed>
