<d1b2>
<gatin00b> I've been reading more on the Array class and my understanding is that I could reduce the mux size by first slicing the array to a portion of what would be indexable by a Value. Same if I have an offset, riht?
<d1b2>
<gatin00b> Otherwise, Amaranth assumes worst case scenario with the full size of the Array.
<d1b2>
<gatin00b> Ok, it needs to be "typecasted" back into an array first, but that seems to work.
<d1b2>
<gatin00b> It reduces the size of the proxy which should reduce the size of the mux (if I understand correctly)
bentomo has joined #amaranth-lang
<bentomo>
Is there a way to to adjust the style of the amaranth.back.verilog.convert function? I see that it calls yosys under the covers but when it converts back from rtlil there are a lot of \$num stand-ins and I'm wondering if it's possible to omit these.
<tpw_rules>
you can reduce them by naming more of your signals iir
<tpw_rules>
c
<bentomo>
Ah, -norename is right there in the yosys documentation
<bentomo>
So what's the best way to comply with the second clause of the amaranth BSD? How do I get the generated binary to reproduce the copyright license if I'm just using it to generate verilog? Do I need to include a BRAM somewhere that the license can be read out of? How do I comply with that, other than documentation?
<whitequark>
I don't think anything Amaranth does results in "redistribution in binary form"
<whitequark>
though I'm also not a lawyer
bentomo has quit [Quit: Client closed]
<whitequark>
in any case, what you are distributing is e.g. a bitstream, or a product, or something like that, right?
<whitequark>
in that case, you could put LICENSE.txt next to the bitstream file, or in a (probably rather long) list of licenses you ship with the product, or the like
<RobertJrdens[m]>
I think the intention would be that analogously to [other compilers](https://www.gnu.org/licenses/gpl-faq.en.html#CanIUseGPLToolsForNF) the amaranth ("compiler") license doesn't cover the code you write. Using the amaranth library (e.g. its `SyncFIFO`) however does produce things that would be covered by its license. But it's sufficient to include the license with the "distribution", i.e. distribute the license text file
<RobertJrdens[m]>
together with the binary file as Catherine says. It doesn't need to be embedded into the binary. (IANAL)
d1b2 has quit [Read error: Connection reset by peer]
d1b24 has joined #amaranth-lang
d1b24 is now known as d1b2
bentomo has joined #amaranth-lang
<bentomo>
Ok thanks! I wanted to make sure there wasn't an extra technical baggage component just because of obscure licensing. Real legal stuff I'd reach out to a lawyer for.
<tpw_rules>
i think this is actually language lawyering :)
<tpw_rules>
IANAL either, but it's saying the redistribution must reproduce the notices in the documentation, not that the binary must somehow autonomously reproduce it
<tpw_rules>
lots of software does the latter these days but you can simply include the license with the bitstream or other product documentation like whitequark said
<bentomo>
Right that makes sense. It's just a lot harder to include the license if I build a really simple module that uses amaranth, but was required to include a bram and a bus since there was no FW included to print it out. Trying to explain open source to old hardware codgers is difficult... it's not hard to be compliant
RossMotley[m] has joined #amaranth-lang
<tpw_rules>
i guess i'm not sure why you would ever need to include a system to print out the license from the bitstream. you just need to make sure that instead of putting the bitstream up for download or whatever, you instead put a zip file of the bitstream and the license
<d1b2>
<dragonmux> or, iwrc, clearly display the license to get to the download, if you prefer
bentomo has quit [Ping timeout: 260 seconds]
bentomo has joined #amaranth-lang
<d1b2>
<bob_twinkles> Just don't make people "accept" the BSD license like it's a ToS 🙂
<d1b2>
<j4cbo> so i'm learning Amaranth and working on a small design that will need to use DDR I/O (not like DDR SDRAM, just setting an ice40 SB_IO in DDR mode)... it looks like the stdlib Pin object will do this for me, I don't need to instantiate an SB_IO by hand, but I can't find any examples of doing so
<d1b2>
<j4cbo> relatedly, I want to get a better understanding of the relationship between Resource, Record, Pin, Pins, etc., and what exactly platform.request returns, but the docs are sparse there 😦
<adamgreig[m]>
if you request something with sub-signals, you can use xdr={"sub": 2} instead, and if it's an input there's i_clk and i0 and i1, or all six and also oe for bidi pins
KiranShila[m] has left #amaranth-lang [#amaranth-lang]