<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chiselX/src/main/scala/chisel3/util/random, branch scala3-support-chisel6</title>
<subtitle>Chisel with SFC compatibility</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/'/>
<entry>
<title>Culprit is the map in random/LFSR.scala. Delete it</title>
<updated>2024-06-04T09:32:00+00:00</updated>
<author>
<name>Aditya Naik</name>
</author>
<published>2024-06-04T09:32:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=c60561c8e7c58939e53b5a955f646900139d9c67'/>
<id>c60561c8e7c58939e53b5a955f646900139d9c67</id>
<content type='text'>
+ compiler rewrites
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
+ compiler rewrites
</pre>
</div>
</content>
</entry>
<entry>
<title>Apply scalafmt</title>
<updated>2022-01-10T23:53:55+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2022-01-10T18:39:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=3131c0daad41dea78bede4517669e376c41a325a'/>
<id>3131c0daad41dea78bede4517669e376c41a325a</id>
<content type='text'>
Command:
sbt scalafmtAll
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Command:
sbt scalafmtAll
</pre>
</div>
</content>
</entry>
<entry>
<title>Add field grouping ScalaDoc for other subclasses of Bundle  (#2214)</title>
<updated>2021-11-03T04:56:37+00:00</updated>
<author>
<name>Abongwa Bonalais</name>
</author>
<published>2021-11-03T04:56:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=a79f57565e7157d137628d1aaeae750f98e3d88b'/>
<id>a79f57565e7157d137628d1aaeae750f98e3d88b</id>
<content type='text'>
* Add field grouping scaladocs for DecoupledIo

* Added groupdesc to DecoupledIO

* Added groupings for IrrevocableIO

* Add groupings for ValidIO

* Add field grouping scaladoc for PRNGIO

* Add field grouping scaladoc for QueueIO

* Added groupings for PipeIO

* Update src/main/scala/chisel3/util/Decoupled.scala

Commited Sugestion

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Decoupled.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Decoupled.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Decoupled.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Decoupled.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Valid.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Valid.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Valid.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add field grouping scaladocs for DecoupledIo

* Added groupdesc to DecoupledIO

* Added groupings for IrrevocableIO

* Add groupings for ValidIO

* Add field grouping scaladoc for PRNGIO

* Add field grouping scaladoc for QueueIO

* Added groupings for PipeIO

* Update src/main/scala/chisel3/util/Decoupled.scala

Commited Sugestion

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Decoupled.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Decoupled.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Decoupled.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Decoupled.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Valid.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Valid.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

* Update src/main/scala/chisel3/util/Valid.scala

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;

Co-authored-by: Megan Wachs &lt;megan@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Fix GaloisLFSR comments (#2178)</title>
<updated>2021-10-12T21:25:55+00:00</updated>
<author>
<name>Nic McDonald</name>
</author>
<published>2021-10-12T21:25:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=ffa0831c736c7d5296964bc65536ac256220dcaa'/>
<id>ffa0831c736c7d5296964bc65536ac256220dcaa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add nullary .fire to Valid and deprecate dummy version (#2156)</title>
<updated>2021-10-08T16:07:04+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2021-10-08T16:07:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=7930544e9c8047f27285420204d25f78c753ea57'/>
<id>7930544e9c8047f27285420204d25f78c753ea57</id>
<content type='text'>
Also replace all uses of .fire() with .fire</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also replace all uses of .fire() with .fire</pre>
</div>
</content>
</entry>
<entry>
<title>Move Chisel3 to SPDX license conventions (#1604)</title>
<updated>2020-10-01T18:42:29+00:00</updated>
<author>
<name>Chick Markley</name>
</author>
<published>2020-10-01T18:42:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=aa2c62248002de97b95523c08d7788e9715e1313'/>
<id>aa2c62248002de97b95523c08d7788e9715e1313</id>
<content type='text'>
Change source and other relevant files to use SPDX license
LICENSE file moved from src/ to ./
Changed license file to refer to this per recommendation
using_spdx_license_list_short_identifiers

WARNING: Tests fail with as of yet undiagnosed error
```
[error] Failed: Total 691, Failed 19, Errors 0, Passed 672, Ignored 15
[error] Failed tests:
[error] 	chiselTests.QueueSpec
[error] 	examples.VendingMachineGeneratorSpec
[error] 	chiselTests.HarnessSpec
[error] 	chiselTests.ConnectSpec
[error] 	chiselTests.aop.SelectSpec
[error] 	chiselTests.PopCountSpec
[error] 	chiselTests.CloneModuleSpec
[error] (Test / test) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 379 s (06:19), completed Sep 30, 2020 12:38:17 AM
sbt:chisel3&gt;
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change source and other relevant files to use SPDX license
LICENSE file moved from src/ to ./
Changed license file to refer to this per recommendation
using_spdx_license_list_short_identifiers

WARNING: Tests fail with as of yet undiagnosed error
```
[error] Failed: Total 691, Failed 19, Errors 0, Passed 672, Ignored 15
[error] Failed tests:
[error] 	chiselTests.QueueSpec
[error] 	examples.VendingMachineGeneratorSpec
[error] 	chiselTests.HarnessSpec
[error] 	chiselTests.ConnectSpec
[error] 	chiselTests.aop.SelectSpec
[error] 	chiselTests.PopCountSpec
[error] 	chiselTests.CloneModuleSpec
[error] (Test / test) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 379 s (06:19), completed Sep 30, 2020 12:38:17 AM
sbt:chisel3&gt;
```</pre>
</div>
</content>
</entry>
<entry>
<title>Delete outdated scalastyle configuration comments from source</title>
<updated>2020-07-21T20:06:53+00:00</updated>
<author>
<name>Albert Magyar</name>
</author>
<published>2020-07-20T19:11:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=7e9f424fb7dcd11c894ceb9f6f049fd9eda80632'/>
<id>7e9f424fb7dcd11c894ceb9f6f049fd9eda80632</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid when(reset) construct in LFSR</title>
<updated>2019-08-06T21:44:37+00:00</updated>
<author>
<name>Andrew Waterman</name>
</author>
<published>2019-08-06T20:47:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=62daa09c61886bfeddfbaf2463d3cc08dbd15b71'/>
<id>62daa09c61886bfeddfbaf2463d3cc08dbd15b71</id>
<content type='text'>
Muxes and resets are only isomorphic with synchronous reset.  Use a reset
instead of a conditional to make this async-reset-safe.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Muxes and resets are only isomorphic with synchronous reset.  Use a reset
instead of a conditional to make this async-reset-safe.
</pre>
</div>
</content>
</entry>
<entry>
<title>PRNG state UInt-&gt;Vec[Bool], make async reset safe</title>
<updated>2019-05-09T23:45:25+00:00</updated>
<author>
<name>Schuyler Eldridge</name>
</author>
<published>2019-05-09T20:48:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=356d5c99c233540e4d993ccc365a7069d9d2beaa'/>
<id>356d5c99c233540e4d993ccc365a7069d9d2beaa</id>
<content type='text'>
Changes the internal state of PRNG to use Vec[Bool] instead of UInt.
This fixes an @aswaterman identified future problem with asynchronous
reset.

A register with an asynchronous reset can only be reset to a literal.
Previously, an LFSR would store state as a UInt. If it was not
parameterized with a seed it should have its least significant bit
reset to something to avoid locking up. It's ideal to not reset the
full UInt (better test coverage, decreased reset fanout). However,
it's difficult to only reset one bit of a UInt. Conversely, it's
trivial to reset one bit of a Vec[Bool]. This also moves PRNG/LFSR
closer to a canonical representation of their internal state, i.e.,
it's natural to think of generalizing Vec[Bool] to arbitrary finite
fields (Vec[A &lt;: Field]) whereas UInt is tightly coupled to GF2.

Minor updates:

- Updates/fixes to some scaladoc
- Add assertion to period test to make sure LFSR is changing

Signed-off-by: Schuyler Eldridge &lt;schuyler.eldridge@ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Changes the internal state of PRNG to use Vec[Bool] instead of UInt.
This fixes an @aswaterman identified future problem with asynchronous
reset.

A register with an asynchronous reset can only be reset to a literal.
Previously, an LFSR would store state as a UInt. If it was not
parameterized with a seed it should have its least significant bit
reset to something to avoid locking up. It's ideal to not reset the
full UInt (better test coverage, decreased reset fanout). However,
it's difficult to only reset one bit of a UInt. Conversely, it's
trivial to reset one bit of a Vec[Bool]. This also moves PRNG/LFSR
closer to a canonical representation of their internal state, i.e.,
it's natural to think of generalizing Vec[Bool] to arbitrary finite
fields (Vec[A &lt;: Field]) whereas UInt is tightly coupled to GF2.

Minor updates:

- Updates/fixes to some scaladoc
- Add assertion to period test to make sure LFSR is changing

Signed-off-by: Schuyler Eldridge &lt;schuyler.eldridge@ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add chisel3.util.random lib w/ LFSR generator</title>
<updated>2019-05-09T16:47:32+00:00</updated>
<author>
<name>Schuyler Eldridge</name>
</author>
<published>2019-05-07T03:44:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=7ce0f10f6c4723b99e6fdf20b37b706c8ae51c2e'/>
<id>7ce0f10f6c4723b99e6fdf20b37b706c8ae51c2e</id>
<content type='text'>
Builds out PRNG and LFSR type hierarchy. PRNG is the base class of
LFSR of which Galois and Fibonacci are concrete implementations.

PRNGs contain state (a UInt) and an update (delta) function. They have
a compile-time optional seed to set the PRNG state. The seed/state can
also be set at run-time. PRNGs can be run-time parameterized based on
how many updates they should do per cycle and whether or not to send
the seed through step-count state updates before loading it. (h/t
@jwright6323)

LFSRs are parameterized in a reduction operation (XOR or XNOR). An
LFSR that does NOT have a seed will be automatically initialized to a
minimally safe state (set/reset one bit) based on their reduction
operation. (h/t @aswaterman)

Adds Galois and Fibonacci LFSRs that define appropriate update
functions. Companion objects provide helpers to automatically generate
maximal period variants. Taps are provide for a very large set of
widths. The LFSR companion object provides an apply method to generate
a Fibonacci LFSR random variable (like the old LFSR16).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Builds out PRNG and LFSR type hierarchy. PRNG is the base class of
LFSR of which Galois and Fibonacci are concrete implementations.

PRNGs contain state (a UInt) and an update (delta) function. They have
a compile-time optional seed to set the PRNG state. The seed/state can
also be set at run-time. PRNGs can be run-time parameterized based on
how many updates they should do per cycle and whether or not to send
the seed through step-count state updates before loading it. (h/t
@jwright6323)

LFSRs are parameterized in a reduction operation (XOR or XNOR). An
LFSR that does NOT have a seed will be automatically initialized to a
minimally safe state (set/reset one bit) based on their reduction
operation. (h/t @aswaterman)

Adds Galois and Fibonacci LFSRs that define appropriate update
functions. Companion objects provide helpers to automatically generate
maximal period variants. Taps are provide for a very large set of
widths. The LFSR companion object provides an apply method to generate
a Fibonacci LFSR random variable (like the old LFSR16).
</pre>
</div>
</content>
</entry>
</feed>
