<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chiselX/core, branch master</title>
<subtitle>Chisel with SFC compatibility</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/'/>
<entry>
<title>Promote ChiselEnum user APIs from experimental (backport #2929) (#2931)</title>
<updated>2023-01-11T22:40:32+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2023-01-11T22:40:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=d4570fb9d29371c35641ba79b76662f99677f192'/>
<id>d4570fb9d29371c35641ba79b76662f99677f192</id>
<content type='text'>
* Promote ChiselEnum user APIs from experimental (#2929)

They are commonly used and if we were ever to change them, we will need
to go through a deprecation process anyway.

Note that the EnumAnnotations remain in chisel3.experimental because,
like all Chisel annotation support, they are slated to be deprecated and
removed.

(cherry picked from commit 424e9446f1675fe0168e22bdfbbe85db997376e6)

# Conflicts:
#	docs/src/cookbooks/verilog-vs-chisel.md
#	docs/src/explanations/chisel-enum.md

* Maintain binary compatbility, use aliases in chisel3 package

* Deprecate the actual classes in chisel3.experimental
* Also fix backport conflicts

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Promote ChiselEnum user APIs from experimental (#2929)

They are commonly used and if we were ever to change them, we will need
to go through a deprecation process anyway.

Note that the EnumAnnotations remain in chisel3.experimental because,
like all Chisel annotation support, they are slated to be deprecated and
removed.

(cherry picked from commit 424e9446f1675fe0168e22bdfbbe85db997376e6)

# Conflicts:
#	docs/src/cookbooks/verilog-vs-chisel.md
#	docs/src/explanations/chisel-enum.md

* Maintain binary compatbility, use aliases in chisel3 package

* Deprecate the actual classes in chisel3.experimental
* Also fix backport conflicts

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Check for Vec subaccess in NamedComponent and throw a nicer error. (backport #2907) (#2928)</title>
<updated>2023-01-10T07:19:45+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2023-01-10T07:19:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=9a7945fd86fcad02da0556d8f4a30daa4b005f9d'/>
<id>9a7945fd86fcad02da0556d8f4a30daa4b005f9d</id>
<content type='text'>
* Check for Vec subaccess in NamedComponent and throw a nicer error. (#2907)

This would previously end up throwing an exception later, when trying
to create a component name and realizing that it was invalid. Instead,
this detects Vec subaccesses early, and gives a more precise error and
suggestion.

(cherry picked from commit d8c30961c7b293ee19024a487698630367ee71c6)

# Conflicts:
#	core/src/main/scala/chisel3/internal/Builder.scala

* Resolve backport conflicts

Co-authored-by: Mike Urbach &lt;mikeurbach@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Check for Vec subaccess in NamedComponent and throw a nicer error. (#2907)

This would previously end up throwing an exception later, when trying
to create a component name and realizing that it was invalid. Instead,
this detects Vec subaccesses early, and gives a more precise error and
suggestion.

(cherry picked from commit d8c30961c7b293ee19024a487698630367ee71c6)

# Conflicts:
#	core/src/main/scala/chisel3/internal/Builder.scala

* Resolve backport conflicts

Co-authored-by: Mike Urbach &lt;mikeurbach@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Improve performance of ChiselEnum annotations (#2923) (#2927)</title>
<updated>2023-01-09T22:57:22+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2023-01-09T22:57:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=12785c6b2b8e378a5aa9db1833df7486d8f2a486'/>
<id>12785c6b2b8e378a5aa9db1833df7486d8f2a486</id>
<content type='text'>
ChiselEnums check if they should create annotations every time an
instance of them is bound. Because so many annotations would be created,
they check to see if an equivalent annotation has already been added to
the annotations. Previously, this used a linear search of the
annotations, now it uses a HashSet.

(cherry picked from commit 96bde092e449281dc70ebdb05f21695468c3e5fa)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ChiselEnums check if they should create annotations every time an
instance of them is bound. Because so many annotations would be created,
they check to see if an equivalent annotation has already been added to
the annotations. Previously, this used a linear search of the
annotations, now it uses a HashSet.

(cherry picked from commit 96bde092e449281dc70ebdb05f21695468c3e5fa)

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Replay changes on 3.5.x (#2865)</title>
<updated>2022-12-08T22:17:33+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-12-08T22:17:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=294bf10510b2dc55312be2e87f9bed556c68afc5'/>
<id>294bf10510b2dc55312be2e87f9bed556c68afc5</id>
<content type='text'>
Co-authored-by: Aditya Naik &lt;aditya.naik@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Aditya Naik &lt;aditya.naik@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Make PriorityMux stack safe (backport #2854) (#2855)</title>
<updated>2022-12-07T00:41:55+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-12-07T00:41:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=41d0d4cd075130cb6b4e41a7c7b6183830b5b9bc'/>
<id>41d0d4cd075130cb6b4e41a7c7b6183830b5b9bc</id>
<content type='text'>
* Make PriorityMux stack safe (#2854)

It used to be implemented with recursion, now it's implemented with a
stack safe reverse and foldLeft.

Also there were no tests for PriorityMux so I added one which helps
prove the change is functionally correct.

(cherry picked from commit 269ce472e9aa0c242fc028871a1fd5b045c82f83)

# Conflicts:
#	src/test/scala/chiselTests/util/PipeSpec.scala

* Resolve backport conflicts

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&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>
* Make PriorityMux stack safe (#2854)

It used to be implemented with recursion, now it's implemented with a
stack safe reverse and foldLeft.

Also there were no tests for PriorityMux so I added one which helps
prove the change is functionally correct.

(cherry picked from commit 269ce472e9aa0c242fc028871a1fd5b045c82f83)

# Conflicts:
#	src/test/scala/chiselTests/util/PipeSpec.scala

* Resolve backport conflicts

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;
Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Implement compressed Namespace (backport #2856) (#2860)</title>
<updated>2022-11-29T17:24:38+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-11-29T17:24:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=c21f31d09f2511497cea5cb03bd6ddba440c55fe'/>
<id>c21f31d09f2511497cea5cb03bd6ddba440c55fe</id>
<content type='text'>
* Implement compressed Namespace (#2856)

The namespace disambiguates requests for the same name with _&lt;idx&gt;.
Rather than storing every disambiguated name in the underlying HashMap,
it now only stores the base along with the "next available" index. This
makes the logic for checking if a name is already contained in the
namespace slightly more sophisticated because users can name things in a
way that will collide with disambiguated names from a common substring.

For example, in naming the sequence "foo", "foo", "foo_1", the 2nd "foo"
takes the name "foo_1" so the following "foo_1" gets disambiguated to
"foo_1_1". But since we compressed that original "foo_1" into the same
HashMap entry as just "foo", we have to do a form of "prefix checking"
whenever naming something that ends in "_&lt;idx&gt;".

In practice, the saved memory allocations more than make up for the more
complicated logic to disambiguate names because the common case is still
fast.

(cherry picked from commit 1654d87a02ca799bf12805a611a91e7524d49843)

# Conflicts:
#	core/src/main/scala/chisel3/internal/Builder.scala

* Resolve backport conflicts

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Implement compressed Namespace (#2856)

The namespace disambiguates requests for the same name with _&lt;idx&gt;.
Rather than storing every disambiguated name in the underlying HashMap,
it now only stores the base along with the "next available" index. This
makes the logic for checking if a name is already contained in the
namespace slightly more sophisticated because users can name things in a
way that will collide with disambiguated names from a common substring.

For example, in naming the sequence "foo", "foo", "foo_1", the 2nd "foo"
takes the name "foo_1" so the following "foo_1" gets disambiguated to
"foo_1_1". But since we compressed that original "foo_1" into the same
HashMap entry as just "foo", we have to do a form of "prefix checking"
whenever naming something that ends in "_&lt;idx&gt;".

In practice, the saved memory allocations more than make up for the more
complicated logic to disambiguate names because the common case is still
fast.

(cherry picked from commit 1654d87a02ca799bf12805a611a91e7524d49843)

# Conflicts:
#	core/src/main/scala/chisel3/internal/Builder.scala

* Resolve backport conflicts

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>fullModulePorts + Opaque Types Fix and Test (#2845) (#2846)</title>
<updated>2022-11-15T05:28:10+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-11-15T05:28:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=b169f6db95f9778cf8968cc1042b7f810f9d8123'/>
<id>b169f6db95f9778cf8968cc1042b7f810f9d8123</id>
<content type='text'>
(cherry picked from commit 49feb083c69066988ca0666ea4249a86570e2589)

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(cherry picked from commit 49feb083c69066988ca0666ea4249a86570e2589)

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Change RawModule._commands to a VectorBuilder (backport #2839) (#2841)</title>
<updated>2022-11-11T01:40:53+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-11-11T01:40:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=c8046636a25474be4c547c6fe9c6d742ea7b1d13'/>
<id>c8046636a25474be4c547c6fe9c6d742ea7b1d13</id>
<content type='text'>
* Change RawModule._commands to a VectorBuilder (#2839)

* Change RawModule._commands to a VectorBuilder

Use the resulting Vector to build the underlying Component's commands
and then use those instead of copying the original ArrayBuffer when
iterating on commands. Previously, the Component was using a List to
hold the commands which is particularly memory inefficient, especially
for large modules.

* Optimize Converter's handling of Seq[Command]

It previously converted the Commands to a List (which, while not
captured in the type system, they were already a List) and then used
head and tail iteration. This is less efficient with the new underlying
Vector implementation.

(cherry picked from commit 48a1ef0a3872c6b68d46145764d977926923a270)

* Waive false binary compatibility failures

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&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>
* Change RawModule._commands to a VectorBuilder (#2839)

* Change RawModule._commands to a VectorBuilder

Use the resulting Vector to build the underlying Component's commands
and then use those instead of copying the original ArrayBuffer when
iterating on commands. Previously, the Component was using a List to
hold the commands which is particularly memory inefficient, especially
for large modules.

* Optimize Converter's handling of Seq[Command]

It previously converted the Commands to a List (which, while not
captured in the type system, they were already a List) and then used
head and tail iteration. This is less efficient with the new underlying
Vector implementation.

(cherry picked from commit 48a1ef0a3872c6b68d46145764d977926923a270)

* Waive false binary compatibility failures

Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;
Co-authored-by: mergify[bot] &lt;37929162+mergify[bot]@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title> Warn on S-interpolator usage for assert, assume and printf (backport #2751) (#2757)</title>
<updated>2022-11-10T21:41:00+00:00</updated>
<author>
<name>Aditya Naik</name>
</author>
<published>2022-11-10T21:41:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=c51fcfea32b6c73e623657442460fb782ff0733b'/>
<id>c51fcfea32b6c73e623657442460fb782ff0733b</id>
<content type='text'>
* Add internal methods to maintain binary compatibility

Co-authored-by: Megan Wachs &lt;megan@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>
* Add internal methods to maintain binary compatibility

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;
Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Add unit tests and fix for #2794 , add unit tests for #2773  (backport #2792) (#2834)</title>
<updated>2022-11-10T21:11:55+00:00</updated>
<author>
<name>mergify[bot]</name>
</author>
<published>2022-11-10T21:11:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=17c04998d8cd5eeb4eff9506465fd2d6892793d2'/>
<id>17c04998d8cd5eeb4eff9506465fd2d6892793d2</id>
<content type='text'>
* Fixup and unit tests for D/I of IOs without explicit Input/Output (#2792)

(cherry picked from commit f24a624863f0fc460fd862238688ea8612ffdf5e)

# Conflicts:
#	core/src/main/scala/chisel3/Module.scala

* Resolve backport conflicts

Co-authored-by: Megan Wachs &lt;megan@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>
* Fixup and unit tests for D/I of IOs without explicit Input/Output (#2792)

(cherry picked from commit f24a624863f0fc460fd862238688ea8612ffdf5e)

# Conflicts:
#	core/src/main/scala/chisel3/Module.scala

* Resolve backport conflicts

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;
Co-authored-by: Jack Koenig &lt;koenig@sifive.com&gt;</pre>
</div>
</content>
</entry>
</feed>
