ChanServ changed the topic of #nmigen to: nMigen hardware description language · code at https://github.com/nmigen · logs at https://freenode.irclog.whitequark.org/nmigen
mwk has quit [Ping timeout: 246 seconds]
cr1901_modern1 has joined #nmigen
cr1901_modern has quit [Ping timeout: 260 seconds]
mwk has joined #nmigen
cr1901_modern1 has quit [Quit: Leaving.]
cr1901_modern has joined #nmigen
<cr1901_modern> whitequark: https://insights.sigasi.com/opinion/jan/vhdls-crown-jewel/ I probably misunderstood this article then. It opens with "VHDL’s delta cycle algorithm in action". Made me think it's a VHDL thing.l
<whitequark> VHDL uses different delta cycles than Verilog
<whitequark> but both of them use delta cycles in the same technical sense
<whitequark> what differs is the way they resolve race conditions
proteus-guy has quit [Remote host closed the connection]
<whitequark> kbeckmann: lemme dm re: pergola
Degi has quit [Ping timeout: 240 seconds]
Degi has joined #nmigen
cr1901_modern has quit [Quit: Leaving.]
cr1901_modern has joined #nmigen
cr1901_modern has quit [Read error: Connection reset by peer]
chipmuenk has joined #nmigen
_whitelogger has joined #nmigen
_whitelogger has joined #nmigen
<Sarayan> How do I write to a single-wire debug_item? And where should I read from?
jeanthom has joined #nmigen
chipmuenk1 has joined #nmigen
chipmuenk has quit [Ping timeout: 256 seconds]
chipmuenk1 is now known as chipmuenk
lkcl__ has quit [Ping timeout: 260 seconds]
lkcl__ has joined #nmigen
<whitequark> read from .curr, write to .next
<Sarayan> thanks, found the info in the capi header
<Sarayan> I should change signals when clk is 0 or 1?
<Sarayan> I'm never sure
<Sarayan> oh sad, I can't copy-construct a debug_item
<Sarayan> oh well
<Sarayan> yay, nothing works, but since the code is reasonably easy to read I should be able to debug it :-)
<Sarayan> fairly certain it's all my fault
<Sarayan> ok, I'm fucking up the EnableInserter and friends
<whitequark> why do you need to copy-construct a debug_item?
<whitequark> regarding changing signals: you should not do it at the same time that your logic runs
<whitequark> i.e. if your logic runs at posedge, you have two step() calls
<whitequark> one does clk 0->1, another clk 1->0
<whitequark> you need to change inputs at the second call
<Sarayan> ok, so when clock is 1
<Sarayan> I'm doing pure nmigen without specifying, so that means posedge, right?
<whitequark> yes
<Sarayan> good, it's intuitive
<Sarayan> Are EnableInserter/DomainRenamer documented somewhere? I probably have some stupid syntax error
<Sarayan> and I'd like to stop annoying you all the time
<Sarayan> fwiw https://github.com/galibert/retrofpga/tree/master/m68000 is what I'm trying with the domains in m68000.py and most of their use in gen.py. The generated c++ code shows the nclk domain doesn't really exist
<Sarayan> only pclk
<Sarayan> s/gen.py/eclock.py/
<Sarayan> corry
<Sarayan> as for the copy-construct, I was thinking about having global objects (not pointers) for the main signals like the clocks and the phases. So it's not copy-construct either, sorry I'm kinda tired, it's default constructor and operator =
<Sarayan> it removes one indirect access
lkcl__ has quit [Ping timeout: 258 seconds]
Asu has joined #nmigen
lkcl has joined #nmigen
nurelin has quit [Ping timeout: 256 seconds]
proteus-guy has joined #nmigen
<Sarayan> ok, the domains are working and I'm dumb, weee
hitomi2501 has joined #nmigen
hitomi2500 has quit [Read error: Connection reset by peer]
chipmuenk1 has joined #nmigen
chipmuenk has quit [Ping timeout: 260 seconds]
chipmuenk1 is now known as chipmuenk
<Sarayan> yay it works
<Sarayan> As expected, I was stupid, not nmigen :-)
hitomi2502 has joined #nmigen
hitomi2501 has quit [Read error: Connection reset by peer]
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
<Sarayan> I'm looking for a design recommendation: I have some instruction decode PLAs that take a 16-bits instruction and gives out a 10-bit microcode address. They're nand/nor in design, and mostly run on the 16 bits and their negations, with sometimes some other lines procomputed (like is it a 32 bits instruction). How should I write that?
<Sarayan> roughly 50 matches each time
<Lofty> I'd consider a Memory for that, using the init value as a ROM
<whitequark> yep
<Sarayan> Three 65536x10 memories?
<Sarayan> that's a lot
<Lofty> What's the name for the ".template" part of C++ "a.template blah<foo>()" syntax?
<Lofty> Where you need to use the template keyword to get it to compile
<Sarayan> you need more than the template keyword though
<Sarayan> it's typename you tend to have to sprinkle around
<Lofty> Here it's very specifically template
<Sarayan> youcan see the two of them at the bottom, the bottomest one generates one 10-bits address, the one on top of it two more
<Lofty> Thank you, whitequark
chipmuenk1 has joined #nmigen
chipmuenk has quit [Ping timeout: 260 seconds]
chipmuenk1 is now known as chipmuenk
Bernhard2 has joined #nmigen
Bernhard2 has quit [Remote host closed the connection]
<whitequark> awygle: name idea for the wasm toolchain: "Wasp"
<whitequark> Web Assembly Synthesis Package
jeanthom has quit [Ping timeout: 260 seconds]
<ktemkin> accompanied by HORNET, the Horribly Overengineerined Runtime for Netlist Elaboration and Translation
<ktemkin> s/Runtime/Redistributable, if you like
<whitequark> that's vtr right
jeanthom has joined #nmigen
<ktemkin> lol, it definitely fits vtr
<whitequark> in general, do y'all find the project useful?
<ktemkin> the wasm toolchain?
<Sarayan> the wasm toolchain or nmigen in general?
chipmuenk has quit [Ping timeout: 256 seconds]
chipmuenk has joined #nmigen
hitomi2502 has quit [Quit: Nettalk6 - www.ntalk.de]
nengel has quit [Ping timeout: 256 seconds]
<awygle> "wasp" is pretty good
<awygle> i like the project a lot
<awygle> idk how much i'm personally gonna use it, but i could see it being great for e.g. glasgow
<kbeckmann> i can see it being very useful during workshops where peple show up without any preparation at all and can start generating bitstreams almost immediately.
<anuejn> yup
<awygle> mhm
<awygle> plus i like it just like... philosophically
<anuejn> also for really having a web toolchain it might be quite handy
<kbeckmann> yeah, tie it together with webusb and you can deploy your bitstream on a board too
<awygle> not enough projects provide "slow and portable" and "fast and native" as _options_ instead of just picking one
<awygle> and this seems like a good way to do that without doubling your overheads
<smkz> mayb prepend something like "unitary" or "unified" to the name to make it clear that it's All The Stuff packed into one package; also "UWASP" is a lot easier to disambiguate vs a common English word when searching etc
<awygle> micro-wasp
chipmuenk has quit [Quit: chipmuenk]
<agg> It seems like a really nice enabler for even higher level projects like ktemkin's sdr idea where I imagine requiring your sdr users have yosys master and nextpnr installed on the system is a pretty big jump over just python
lkcl_ has joined #nmigen
lkcl__ has joined #nmigen
lkcl has quit [Ping timeout: 260 seconds]
lkcl_ has quit [Ping timeout: 260 seconds]
lkcl_ has joined #nmigen
lkcl__ has quit [Ping timeout: 265 seconds]
FFY00 has quit [Remote host closed the connection]
FFY00 has joined #nmigen
<ktemkin> it's definitely going to be nice for stuff like USB-analyzer-hardware-triggering; and maybe next-generation-facedancer, where asking users to install a whole toolchain is non-ideal
<Sarayan> if I do a Cat(self.i_ird, self.l, self.bw) in a switch, and a m.Case('----------011----1'), should it match on ird == 0x61 ?
<Sarayan> maybe what I'm asking is cat is the bit order on a Cat
<Sarayan> ah, found the answer
<Sarayan> the other way around than what I expected
jeanthom has quit [Ping timeout: 260 seconds]
Asuu has joined #nmigen
Asu has quit [Ping timeout: 246 seconds]
Asuu has quit [Remote host closed the connection]
lkcl__ has joined #nmigen
lkcl_ has quit [Ping timeout: 246 seconds]