-
-
Notifications
You must be signed in to change notification settings - Fork 303
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ethernet udp tx/rx module #1010
base: dev
Are you sure you want to change the base?
Conversation
lib/src/main/scala/spinal/lib/ethernet/Axi4StreamConditionalJoin.scala
Outdated
Show resolved
Hide resolved
|
||
import UserConfiguration._ | ||
|
||
object rotateLeftByte { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rotate operation could be added to the Bits data type directly :)
Maybe in a more general form ?
data: Bits, bias: UInt, sliceWidth : BitCount ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ummm...
Actually, there is rotateLeft()
in BitVector,
def rotateLeft(that: UInt): T = {
...
}
I wonder if it would be better to use switch
instead of bits shift
one by one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if it would be better to use switch instead of bits shift one by one.
Hmm, the main challenge is to ensure the synthesis tool can infer a proper barrel shifter using log2up(width) stages, that's why it is done in shifts sequence.
I would say the main limitation of the current implementation is that there is now parameter to specify how many bits to rotate per unit.
Hi ^^ So, i think for the doc, as it is a specific thing with quite a few abstraction, it would need to have some on the RTD |
Sorry for the late reply. The doc will be added with more details of implementation in the next commit |
I'm sorry for waiting on this document for a long time. The following link is the doc about this module design. https://github.com/jjyy-Huang/SpinalHDL-ethernet/blob/udp/README.md |
Thanks :) |
Hi, Sorry for the delay, i'm running with toooo many thing on hands XD So, in some ways, i a bit scared integrating too much things in the spinal.lib, especialy fresh things. This maybe more scalable in terms of project management ? That way, poeple have the freedom to do things without having to worry to much about SpinalHDL upstream, while still having some visibility via the documentation pointers. One thing, is that in your repo, you can extends the already existing spinal.lib package, for instance : That way, it provide a forward way for easy integration when things are very stable / extended :) Let's me know if that sounds good for you ? |
Hi, Sorry for the late reply, I changed my email and can't receive news from GitHub. I appreciate your suggestion. I will integrate it into my work process and continue to make improvements as I move forward. Thanks again for your input, and please let me know if you have any further suggestions or feedback. |
Context, Motivation & Description
The udp project is here.
The goal of this PR is to create a UDP/IP Tx/Rx module with SpinalHDL for Xilinx 100GbE Ethernet-Subsystem (MRMAC/CMAC).
the module support following features:
Impact on code generation
Zero
Checklist
/** */
?TODO