Document SpinalHDL facilities used across the org (NaxRiscv, VexiiRiscv, VexRiscv)#294
Document SpinalHDL facilities used across the org (NaxRiscv, VexiiRiscv, VexRiscv)#294
Conversation
…ndle, and missing BusSlaveFactory methods Co-authored-by: Readon <3614708+Readon@users.noreply.github.com>
|
please tell us here, where did the added facilities is used? in which repos? and where? @copilot |
Here is the breakdown of where each documented facility is used:
If you'd like some of these sections to be removed or deferred, happy to do that. |
|
@copilot Ok, we just need to document the facilities used in SpinalHDL organization exclude SpinalHDL/SpinalHDL repository. |
…e StreamAccessibleFifo, StreamShiftChain, PackedBundle page, and undocumented BusSlaveFactory methods Co-authored-by: Readon <3614708+Readon@users.noreply.github.com>
Done in commit
Removed: |
| outputCount = 3 | ||
| ) | ||
|
|
||
| StreamPipe |
There was a problem hiding this comment.
@copilot this seems more a function called pipeline than a class. is StreamPipe just a enum?
There was a problem hiding this comment.
You're right. StreamPipe is a Scala trait — not an enum and not a class. Its companion object StreamPipe provides named singleton instances (NONE, M2S, S2M, FULL, HALF) that are each callable (they implement apply). The primary usage is passing them to stream.pipelined().
Updated in ceceab1 to correctly describe it as a trait with named callable singleton instances, and updated the table column header from "Value" to "Instance".
There was a problem hiding this comment.
if so, how about document on pipelined method of Stream but StreamPipe? @copilot
There was a problem hiding this comment.
Good point. Restructured in 626fd52 — the section is now titled pipelined (the Stream method users actually call) with StreamPipe explained as the argument type. The section now shows both call styles: pipelined(StreamPipe.FULL) and pipelined(m2s = true, s2m = true), with a table mapping each boolean combination to its StreamPipe equivalent.
There was a problem hiding this comment.
how about merge pipelined into stream.rst#functions part? @copilot
There was a problem hiding this comment.
Done in 96e48e7. The pipelined content is now part of the Functions table in stream.rst — both call styles (pipelined(pipe: StreamPipe) and pipelined(m2s, s2m, halfRate)) are listed as a single row alongside the other Stream methods. The standalone Utils section has been removed.
…es, not an enum or class Co-authored-by: Readon <3614708+Readon@users.noreply.github.com>
…ll styles Co-authored-by: Readon <3614708+Readon@users.noreply.github.com>
…tion Co-authored-by: Readon <3614708+Readon@users.noreply.github.com>
Documents SpinalHDL library facilities that are confirmed to be in active use in SpinalHDL organization repositories outside of SpinalHDL/SpinalHDL itself.
stream.rst — Functions table updated
pipelined(Stream method) — Added as a row in the existingstream.rstFunctions table. Documentsstream.pipelined(...), which returns a registered version of the stream to cut combinatorial paths for timing closure. Covers both call styles:pipelined(StreamPipe.FULL)using namedStreamPipeconstants (NONE,M2S,S2M,FULL,HALF), andpipelined(m2s, s2m, halfRate)using boolean flags. Used in NaxRiscv (NaxSoc.scala,SocDemo.scala) and VexiiRiscv (MicroSoc.scala,SocSim.scala) for timing closure in large designs.bus_slave_factory.rst — 1 missing method added
setOnSet(that, address, bitOffset)— Set bits ofthatwhen the corresponding write bit is1; used in VexRiscv (doc/gcdPeripheral/.../Apb3GCDCtrl.scala)Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.