_florent_ changed the topic of #litex to: LiteX FPGA SoC builder and Cores / Github : https://github.com/enjoy-digital, https://github.com/litex-hub / Logs: https://freenode.irclog.whitequark.org/litex
tpb has quit [Remote host closed the connection]
tpb has joined #litex
lf has quit [Ping timeout: 260 seconds]
lf has joined #litex
ranzbak has quit [Ping timeout: 272 seconds]
ranzbak has joined #litex
scientes has quit [Quit: ZNC 1.8.2+deb1+b1 - https://znc.in]
scientes has joined #litex
Degi has quit [Ping timeout: 240 seconds]
Degi has joined #litex
CarlFK has joined #litex
m4ssi has joined #litex
Dolu_ has quit [Ping timeout: 258 seconds]
scanakci has quit [Read error: Connection reset by peer]
davidlattimore has quit [Read error: Connection reset by peer]
_florent_ has quit [Read error: Connection reset by peer]
scanakci has joined #litex
_florent_ has joined #litex
sorear has quit [Ping timeout: 264 seconds]
davidlattimore has joined #litex
sorear has joined #litex
m4ssi has quit [Remote host closed the connection]
SpaceCoaster has quit [Quit: ZNC 1.7.2+deb3 - https://znc.in]
SpaceCoaster has joined #litex
CarlFK has quit [Ping timeout: 240 seconds]
CarlFK has joined #litex
kgugala_ has joined #litex
kgugala has quit [Ping timeout: 240 seconds]
kgugala has joined #litex
kgugala_ has quit [Ping timeout: 258 seconds]
Bertl_zZ is now known as Bertl
m4ssi has joined #litex
<joseng> Hi all,
<joseng> can anybody help me to understand the Streams in litex? I have a gateware design with classic FIFOs and now I wanted to try to move over to Streams between my modules and therefore use the stream.AsyncFIFO.
<joseng> This is what I currently have. But I get never any data at the output side of the FIFO. Did I get the sources/sinks the wrong way round? Can't I pass an endpoint as a parameter? Or did I connect the FIFO wrong?
<acathla> _florent_, good, removing the line 937 of soc.py fixed the reboot (I still have to understand how's everything is connected)
<acathla> and flash works now!
<acathla> with vexriscv or serv!
<acathla> well, uploading worked, flashing...not yet
<zyp> joseng, I think you've got lines 27-28 the wrong way around, IIRC it should be sink.connect(source), not source.connect(sink)
<_florent_> Hi, I just tried to write a new LiteX's Wiki guide to prepare the Acorn CLE 215+ and use it with LiteX: https://github.com/enjoy-digital/litex/wiki/Use-LiteX-on-the-Acorn-CLE-215
<_florent_> Hoping it will be useful for those who want to use it as a FPGA development board
<_florent_> acathla: thanks for the feedback, I'll try to fix the reset today
Dolu_ has joined #litex
<trabucayre> _florent_: I've received my acorn. I've just a question about power supply: 3.3V is enough or an external one (PCIe) is required
<zyp> trabucayre, which acorn? the cle-215? it gets all the power it needs from the m.2 slot
<trabucayre> zyp: yep cle-215+
<trabucayre> argg :-/
<trabucayre> power supply for m.2 m key is only 3.3V no?
<zyp> yes
<trabucayre> in fact I've received the cle-215 but forgot to order m.2 <-> PCIe so if it's possible to provide 3.3V through Pico-ZEMate it's allow me to start before receiving adapter
<zyp> ah, it probably is but I can check the schematic
<zyp> yeah, the pico-ezmates are connected directly to the same 3.3V rail as the m.2 edge
<trabucayre> yes!!!
<trabucayre> thanks
Bertl is now known as Bertl_oO
lkcl has quit [Ping timeout: 256 seconds]
lkcl has joined #litex
<st-gourichon-fid> Quick survey (re regarding https://github.com/enjoy-digital/litex/pull/725 I guess you _florent_ replied ): we chose "extract" and "inject" rather than "get" and "set" that seemed "generic"/"vague".
<st-gourichon-fid> Can anyone provide kind of "prior art" where a convenience function would extract an integer value from a multi-field words? How is it typically called?
<st-gourichon-fid> Same question for a convenience function that takes a word and an integer, and returns the word with some bit range changed from the integer value. How it this typically called?
<daveshah> I'm not sure about a good term for the other way round though
lkcl has quit [Ping timeout: 240 seconds]
<st-gourichon-fid> thanks daveshah, interesting. We are open to using any wording, it's best if we follow some existing common practice.
<st-gourichon-fid> In book "The Art of Assembly Language" Randall Hyde uses "extract" and "insert" https://flylib.com/books/en/1.330.1.30/1/ . https://www.plantation-productions.com/Webster/www.artofasm.com/Windows/HTML/BitManipulationa2.html
<tpb> Title: 3.7 Packing and Unpacking Data | The Art of Assembly Language (at flylib.com)
<st-gourichon-fid> I guess "get" and "set" suggested by _florent_ may feel familiar, like setting and getting variables in an object, something lightweight?
<_florent_> st-gourichon-fid, daveshah: thanks, I was also going to suggest extract/insert
<st-gourichon-fid> "Insert" did not come to mind because it usually suggests moving existing things (e.g. insert in list), not changing in-place.
lkcl has joined #litex
<_florent_> st-gourichon-fid: I think extract was fine on my side but can't explain why I was not satisfied by inject. set/get are maybe indeed too generic and vague
<st-gourichon-fid> To be fair, the meaning of "inject" also kind-of suggests displacement. It just avoids "insert" which already has a specific meaning of moving existing thing to make room for the new thing.
<st-gourichon-fid> How about "extract"/"set"?
<st-gourichon-fid> Or "field2int"/"int2field"? All seem kind of awkward. Perhaps "set" and "get" are food after all. Choose what you wish, I will adjust the PR according to your preference. ¯\_(ツ)_/¯
<st-gourichon-fid> s/food/good/
<_florent_> if we use set, then I have preference for get /set :)
<_florent_> in fact I think the context is a bit different than Yosys here
<st-gourichon-fid> https://www.wordreference.com/definition/inject When injecting something, it's inside but you don't see obvious displacement.
<tpb> Title: inject - WordReference.com Dictionary of English (at www.wordreference.com)
* st-gourichon-fid is interested in difference of context with Yosys.
<_florent_> because we are creating C functions for each CSR registers and then here CSR fields
<_florent_> so it's a bit equivalent to the function we could write in Python for a class
<_florent_> reg.write(), reg.read()
<_florent_> field.set(), field.get()
<_florent_> in Yosys, with the extract function, the offset and len are argument, here the offset/len will not be arguments since will be provided as part of the function
kgugala has quit [Quit: -a- Connection Timed Out]
kgugala has joined #litex
Melkhior has joined #litex
<Melkhior> Not sure but I think this is similar to "2.5 Bit Extract/Deposit (bext, bdep)" in B ? https://raw.githubusercontent.com/riscv/riscv-bitmanip/master/bitmanip-draft.pdf
<Melkhior> so extract/deposit could be an appropriate terminology ?
<st-gourichon-fid> Thanks Melkhior for the reference.
<_florent_> Melkhior: thanks that's indeed interesting. set/get is simple but it's not clear if it's operating directly on the hardware or a value. Inject/Insert sounds like something cumulative (if you inject/insert twice you expect result to be different), so yes it could be extract/deposit.
<st-gourichon-fid> This is interesting. I read the C-equivalent code. Factually, "extract" is capable of doing exactly what we are talking about. But "deposit" only does the "bit shifting" part, not "inserting" the shifted bit in the existing word value. To say it another way, "deposit" produces a word where all bits outside of the mask are zero, which is not what "inject" does..
<st-gourichon-fid> We can live with that and call "deposit" what we do, still.
<tpb> Title: Bit manipulation instruction set - Wikipedia (at en.wikipedia.org)
<st-gourichon-fid> What about "extract" and "replace" ? We "extract" an integer from a specific field in the word, and we "replace" the field in the word with the value of an integer.
<st-gourichon-fid> "Extract" exactly matches existing bit manipulation terminology, "deposit" is lower level.
<st-gourichon-fid> "replace" fixes the issue "if you inject/insert twice you expect result to be different". Indeed, if you replace something twice, the result is expected to be the same.
<_florent_> st-gourichon-fid: I like it, this is indeed representative to what we are doing here
<st-gourichon-fid> I like it too. I can adjust the PR now if it suits you.
<st-gourichon-fid> That's the exact terminology used in this question https://stackoverflow.com/questions/39684162/how-to-extract-values-in-bits-from-a-register-and-use-them-to-replace-bits-in-a (answer says "merge").
<tpb> Title: mips32 - How to extract values in bits from a register and use them to replace bits in a different register? (MIPs assembly language) - Stack Overflow (at stackoverflow.com)
<tpb> Title: c - Extract certain bits from A and replace only those extracted bits in B at a certain position - Stack Overflow (at stackoverflow.com)
<tpb> Title: Bits Manipulation MiPS Assembly - Stack Overflow (at stackoverflow.com)
<_florent_> st-gourichon-fid: if @daveshah @Melkhior are also fine with this, let's use extract/replace
<daveshah> sgtm
<Melkhior> works for me
<_florent_> thanks all
m4ssi has quit [Remote host closed the connection]
jevinskie[m] has joined #litex
key2 has quit [Ping timeout: 272 seconds]
key2 has joined #litex
Melkhior has quit [Remote host closed the connection]
lkcl has quit [Ping timeout: 240 seconds]
lkcl has joined #litex
lkcl has quit [Ping timeout: 256 seconds]
lkcl has joined #litex