*** tpb has joined #litex | 00:00 | |
*** lf has quit IRC | 00:07 | |
*** lf has joined #litex | 00:07 | |
*** ranzbak has quit IRC | 00:28 | |
*** ranzbak has joined #litex | 00:33 | |
*** scientes has quit IRC | 00:52 | |
*** scientes has joined #litex | 00:53 | |
*** Degi has quit IRC | 01:26 | |
*** Degi has joined #litex | 01:28 | |
*** CarlFK has joined #litex | 03:07 | |
*** m4ssi has joined #litex | 04:47 | |
*** Dolu_ has quit IRC | 04:52 | |
*** scanakci has quit IRC | 05:27 | |
*** davidlattimore has quit IRC | 05:27 | |
*** _florent_ has quit IRC | 05:27 | |
*** scanakci has joined #litex | 05:27 | |
*** _florent_ has joined #litex | 05:28 | |
*** sorear has quit IRC | 05:28 | |
*** davidlattimore has joined #litex | 05:29 | |
*** sorear has joined #litex | 05:30 | |
*** m4ssi has quit IRC | 05:44 | |
*** SpaceCoaster has quit IRC | 05:46 | |
*** SpaceCoaster has joined #litex | 05:47 | |
*** CarlFK has quit IRC | 06:11 | |
*** CarlFK has joined #litex | 07:00 | |
*** kgugala_ has joined #litex | 07:13 | |
*** kgugala has quit IRC | 07:14 | |
*** kgugala has joined #litex | 07:15 | |
*** kgugala_ has quit IRC | 07:20 | |
*** Bertl_zZ is now known as Bertl | 07:37 | |
*** m4ssi has joined #litex | 07:43 | |
joseng | Hi all, | 07:52 |
---|---|---|
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. | 07:52 |
joseng | https://gist.github.com/Wardstein/4d3004c2a91f8fbb9594f49d8f3aea57 | 07:52 |
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? | 07:52 |
acathla | _florent_, good, removing the line 937 of soc.py fixed the reboot (I still have to understand how's everything is connected) | 09:53 |
acathla | and flash works now! | 09:54 |
acathla | with vexriscv or serv! | 09:57 |
acathla | well, uploading worked, flashing...not yet | 10:27 |
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) | 10:34 |
_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 | 10:47 |
_florent_ | Hoping it will be useful for those who want to use it as a FPGA development board | 10:49 |
_florent_ | acathla: thanks for the feedback, I'll try to fix the reset today | 10:50 |
*** Dolu_ has joined #litex | 11:05 | |
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 | 11:11 |
zyp | trabucayre, which acorn? the cle-215? it gets all the power it needs from the m.2 slot | 11:25 |
trabucayre | zyp: yep cle-215+ | 11:26 |
trabucayre | argg :-/ | 11:29 |
trabucayre | power supply for m.2 m key is only 3.3V no? | 11:32 |
zyp | yes | 11:32 |
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 | 11:35 |
zyp | ah, it probably is but I can check the schematic | 11:36 |
zyp | yeah, the pico-ezmates are connected directly to the same 3.3V rail as the m.2 edge | 11:38 |
trabucayre | yes!!! | 11:38 |
trabucayre | thanks | 11:39 |
*** Bertl is now known as Bertl_oO | 12:36 | |
*** lkcl has quit IRC | 13:47 | |
*** lkcl has joined #litex | 14:00 | |
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". | 14:32 |
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? | 14:33 |
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? | 14:34 |
daveshah | it's called extract in yosys: https://github.com/YosysHQ/yosys/blob/master/kernel/rtlil.h#L660-L666 | 14:35 |
daveshah | I'm not sure about a good term for the other way round though | 14:35 |
*** lkcl has quit IRC | 14:42 | |
st-gourichon-fid | thanks daveshah, interesting. We are open to using any wording, it's best if we follow some existing common practice. | 14:42 |
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 | 14:52 |
tpb | Title: 3.7 Packing and Unpacking Data | The Art of Assembly Language (at flylib.com) | 14:52 |
st-gourichon-fid | I guess "get" and "set" suggested by _florent_ may feel familiar, like setting and getting variables in an object, something lightweight? | 14:53 |
_florent_ | st-gourichon-fid, daveshah: thanks, I was also going to suggest extract/insert | 14:53 |
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. | 14:55 |
*** lkcl has joined #litex | 14:56 | |
_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 | 14:56 |
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. | 14:59 |
st-gourichon-fid | How about "extract"/"set"? | 15:00 |
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. ¯\_(ツ)_/¯ | 15:04 |
st-gourichon-fid | s/food/good/ | 15:04 |
_florent_ | if we use set, then I have preference for get /set :) | 15:05 |
_florent_ | in fact I think the context is a bit different than Yosys here | 15:05 |
st-gourichon-fid | https://www.wordreference.com/definition/inject When injecting something, it's inside but you don't see obvious displacement. | 15:05 |
tpb | Title: inject - WordReference.com Dictionary of English (at www.wordreference.com) | 15:05 |
* st-gourichon-fid is interested in difference of context with Yosys. | 15:06 | |
_florent_ | because we are creating C functions for each CSR registers and then here CSR fields | 15:06 |
_florent_ | so it's a bit equivalent to the function we could write in Python for a class | 15:07 |
_florent_ | reg.write(), reg.read() | 15:07 |
_florent_ | field.set(), field.get() | 15:08 |
_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 | 15:11 |
*** kgugala has quit IRC | 15:28 | |
*** kgugala has joined #litex | 15:29 | |
*** Melkhior has joined #litex | 15:51 | |
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 | 15:52 |
Melkhior | so extract/deposit could be an appropriate terminology ? | 15:52 |
st-gourichon-fid | Thanks Melkhior for the reference. | 16:16 |
_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. | 16:16 |
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.. | 16:16 |
st-gourichon-fid | We can live with that and call "deposit" what we do, still. | 16:16 |
st-gourichon-fid | https://en.wikipedia.org/wiki/Bit_manipulation_instruction_set#Parallel_bit_deposit_and_extract | 16:19 |
tpb | Title: Bit manipulation instruction set - Wikipedia (at en.wikipedia.org) | 16:19 |
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. | 16:22 |
st-gourichon-fid | "Extract" exactly matches existing bit manipulation terminology, "deposit" is lower level. | 16:25 |
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. | 16:25 |
_florent_ | st-gourichon-fid: I like it, this is indeed representative to what we are doing here | 16:27 |
st-gourichon-fid | I like it too. I can adjust the PR now if it suits you. | 16:28 |
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"). | 16:30 |
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) | 16:30 |
st-gourichon-fid | Same terminology in question and answer here: https://stackoverflow.com/questions/63967399/extract-certain-bits-from-a-and-replace-only-those-extracted-bits-in-b-at-a-cert | 16:31 |
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) | 16:31 |
st-gourichon-fid | Same here https://stackoverflow.com/questions/42755704/bits-manipulation-mips-assembly | 16:32 |
tpb | Title: Bits Manipulation MiPS Assembly - Stack Overflow (at stackoverflow.com) | 16:32 |
_florent_ | st-gourichon-fid: if @daveshah @Melkhior are also fine with this, let's use extract/replace | 16:36 |
daveshah | sgtm | 16:36 |
Melkhior | works for me | 16:46 |
st-gourichon-fid | PR updated https://github.com/enjoy-digital/litex/pull/725 | 16:46 |
_florent_ | thanks all | 16:47 |
*** m4ssi has quit IRC | 17:21 | |
*** jevinskie[m] has joined #litex | 17:25 | |
*** key2 has quit IRC | 18:23 | |
*** key2 has joined #litex | 18:23 | |
*** Melkhior has quit IRC | 22:27 | |
*** lkcl has quit IRC | 22:51 | |
*** lkcl has joined #litex | 23:05 | |
*** lkcl has quit IRC | 23:18 | |
*** lkcl has joined #litex | 23:31 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!