whitequark changed the topic of #amaranth-lang to: Amaranth hardware definition language · code https://github.com/amaranth-lang · logs https://libera.irclog.whitequark.org/amaranth-lang
lf has quit [Ping timeout: 246 seconds]
lf has joined #amaranth-lang
<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
<_whitenotifier> [YoWASP/yosys] whitequark pushed 1 commit to develop [+0/-0/±1] https://github.com/YoWASP/yosys/compare/8b1bc9b30bed...ffe8ccfaacc6
<_whitenotifier> [YoWASP/yosys] whitequark ffe8ccf - Update dependencies.
Degi has quit [Ping timeout: 260 seconds]
Degi_ has joined #amaranth-lang
Degi_ is now known as Degi
bentomo has quit [Quit: Client closed]
bentomo has joined #amaranth-lang
<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 🙂
bentomo has quit [Ping timeout: 260 seconds]
smkz has quit [Quit: smkz]
Lilian has quit [Quit: ZNC 1.8.2 - https://znc.in]
Lilian has joined #amaranth-lang
smkz has joined #amaranth-lang
<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]> something like: pin = platform.request("my_pin", xdr=2); m.d.comb += pin.o_clk.eq(ClockSignal()), pin.o0.eq(1), pin.o1.eq(0)
<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]