whitequark[m] changed the topic of #nmigen to: nMigen hardware description language · code https://github.com/nmigen · logs https://freenode.irclog.whitequark.org/nmigen
FFY00_ has quit [Remote host closed the connection]
FFY00_ has joined #nmigen
Degi_ has joined #nmigen
emeb has quit [Quit: Leaving.]
Degi has quit [Ping timeout: 252 seconds]
Degi_ is now known as Degi
pftbest has quit [Remote host closed the connection]
revolve has quit [Read error: Connection reset by peer]
revolve has joined #nmigen
pftbest has joined #nmigen
lambda has quit [*.net *.split]
Sarayan has quit [*.net *.split]
carlomaragno has quit [*.net *.split]
ktemkin has quit [*.net *.split]
nspaced has quit [*.net *.split]
carlomaragno has joined #nmigen
ktemkin has joined #nmigen
lambda has joined #nmigen
nspaced has joined #nmigen
pftbest has quit [Ping timeout: 268 seconds]
vnksnkr has joined #nmigen
Bertl_oO is now known as Bertl_zZ
vnksnkr has quit [Quit: vnksnkr]
pftbest has joined #nmigen
jeanthom has joined #nmigen
fdsa has joined #nmigen
fdsa has quit [Client Quit]
emeb_mac has quit [Quit: Leaving.]
jeanthom has quit [Ping timeout: 260 seconds]
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
revolve has quit [Read error: Connection reset by peer]
revolve has joined #nmigen
samlittlewood has quit [Ping timeout: 268 seconds]
vnksnkr has joined #nmigen
samlittlewood has joined #nmigen
vnksnkr has quit [Client Quit]
vnksnkr has joined #nmigen
<d1b2> <twam> Is there some yield x to get the current time in a sync process?
gekh has joined #nmigen
<cesar[m]1> Not yet. See https://github.com/nmigen/nmigen/issues/443, in particular the last comment.
<cesar[m]1> You could also just use a counter.
<cesar[m]1> ... that increments every clock cycle.
cr1901_modern1 has joined #nmigen
cr1901_modern has quit [Read error: Connection reset by peer]
<_whitenotifier-5> [nmigen] cr1901 opened issue #604: In ECP5 and MachXO2 backends, is the `-forceAll` option necessary? - https://git.io/JYyUc
vnksnkr has quit [Quit: vnksnkr]
Sarayan has joined #nmigen
pepijndevos has quit [Ping timeout: 246 seconds]
<d1b2> <twam> That's the hack I'm currently using but was hoping for something 'proper'. But then I'll stick with it for now.
pepijndevos has joined #nmigen
slan has quit [Remote host closed the connection]
pftbest has quit [Remote host closed the connection]
<agg> cr1901_modern1: re your issue about the ecp5: i've noticed this too, it's really slow and does way more work than it seems like should be necessary, would be amazing to suddenly have all those builds be loads faster
<agg> I hadn't looked in to why beyond a vague feeling that it was duplicating stuff from some output sections appearing multiple times, though
pftbest has joined #nmigen
jeanthom has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
revolve has quit [Read error: Connection reset by peer]
jeanthom has quit [Ping timeout: 260 seconds]
<cr1901_modern1> agg: I think the idea behaind -forceAll is to complement how the Diamond GUI does things (if an output artifact already exists, you can double click on it to rerun the build up to that point to refresh it)
<cr1901_modern1> I don't think it's necessary for nmigen, but wq/others are free to override
<agg> nmigen builds are all from scratch every time though, right?
<cr1901_modern1> yes
<agg> like, nothing should be being cached between runs anyway
<agg> so what's the difference in having forceAll or not? in practice it seems like it causes a bunch of steps to get rerun?
<gatecat> I think if you wanted to use -forceAll you would only call bitgen, not all the steps before it
<agg> got it
<agg> is it sort of doing an accidentally quadratic thing
<gatecat> yeah exactly
<gatecat> each step force-re-runs all the steps before it
<agg> i just assumed the yosys+nextpnr chain was just that much faster :p
<agg> probably not the only accidentally quadratic thing in all of diamond anyway
revolve has joined #nmigen
<cr1901_modern1> although Diamond complains if it doesn't have an empty work dir, I've never seen any indication that it changes the output
<cr1901_modern1> (wrt to "nmigen builds are all from scratch every time")
<agg> the script tells it to run each step so i assume all the outputs will be generated anyway, doesn't seem like it has a chance to reuse anything
<cr1901_modern1> Yea that seems to be the case. You'll still get a warning tho, b/c why not?
<agg> synthesis tools love warnings right
<cr1901_modern1> https://twitter.com/cr1901/status/1378644183754420225 This came from a warning that was saying "my sel signal had no load"
<cr1901_modern1> What Diamond actually meant was "my sel signal was completely optimized out"
<cr1901_modern1> And I didn't notice until gatecat made the observation in the tweet
<agg> you'd think it might manage to not warn about "no load" when in fact it optimised out the load
<cr1901_modern1> When have the vendor tools ever done what we want them to do?
<agg> once i finally found the right magic incantation i was quite pleased that bstool gives you a name for almost every config bit, that was helpful
<cr1901_modern1> I haven't seen that yet, tbh. EPIC is nice tho. Would like nextpnr-machxo2 to have a GUI sooner or later, but it seems a bit off for now
cr1901_modern1 has quit [Quit: Leaving.]
cr1901_modern has joined #nmigen
<sensille> is the roundrobin scheduler from the lib ready to use? is there an example somewhere how to use it? i don't get the 'enableinserter' part
jeanthom has joined #nmigen
jeanthom has quit [Ping timeout: 252 seconds]
vnksnkr has joined #nmigen
jeanthom has joined #nmigen
revolve has quit [Read error: Connection reset by peer]
revolve has joined #nmigen
<_whitenotifier-5> [nmigen] whitequark commented on issue #604: In ECP5 and MachXO2 backends, is the `-forceAll` option necessary? - https://git.io/JYy7Z
jeanthom has quit [Ping timeout: 268 seconds]
Bertl_zZ is now known as Bertl
<sensille> looks like my first module ported to nmigen takes up twice as many FFs. in the verilog version yosys inferred distributed RAM (DPR16X4) with 12 read ports for some registers. is the only way to get that back with by explicitely instantiating memory (with transparent read port)?
<d1b2> <DX-MON> you should be able to use Memory primitive to get that
DaKnig has quit [Ping timeout: 240 seconds]
<sensille> x = Memory( ... )?
<sensille> or is there also some other syntax?
DaKnig has joined #nmigen
DaKnig has joined #nmigen
<d1b2> <dub_dub_11> Yep Memory ()
<d1b2> <4o> distributed ram could be generated from arrays
<sensille> in verilog it did, but with the 1:1 translation to nmigen it somehow failed to do so
<d1b2> <4o> failed in what way?
<sensille> failed to recognize it as distributed RAM and fully expanded it to FFs
<d1b2> <4o> ok, so all slices could act as ram in lattice devices. nice
<d1b2> <4o> so ram could be mapped to block ram, luts and ffs on ecp devices. how Memory will know my intention?
<sensille> i think block ram can't be transparent
<sensille> i would think Memory() just passed that decision on to yosys
bvernoux has joined #nmigen
Bertl is now known as Bertl_oO
<whitequark[m]> block RAM can be transparent
<whitequark[m]> yosys adds soft logic if necessary
<sensille> on ecp5?
<sensille> i probably misunderstood transparent :-/
<sensille> what i meant is: block ram can't be async on ecp5
<whitequark[m]> yes
<whitequark[m]> or other FPGAs really
<whitequark[m]> that i know of
jeanthom has joined #nmigen
jeanthom has quit [Ping timeout: 240 seconds]
<agg> 4o: the synthesis tool guesses basic on the size of the memory and so forth whether to use FFs, dist ram, or block ram, or you can tell it specifically by using a ram_style attribute (block or distributed for example)
<agg> sensille: what syntax are you using in nmigen to construct your 12-port memory? Array?
<sensille> i used an array of signal(n). i wasn't aware that yosys implemented it as dist ram until i investigated where the diff in size comes from
<agg> as in nmigen.Array?
<sensille> on_ticks = Array([Signal(pwm_bits) for _ in range(npwm)])
<agg> ah yea
<whitequark[m]> arrays do not generally become memories
<whitequark[m]> * arrays do not generally become block RAM
emeb_mac has joined #nmigen
<cr1901_modern> whitequark[m]: Is the matrix acct your primary acct now? I need to privmsg
vnksnkr has quit [Quit: vnksnkr]
bvernoux has quit [Read error: Connection reset by peer]
jeanthom has joined #nmigen
roamingr1 has quit [Ping timeout: 260 seconds]
roamingr1 has joined #nmigen
roamingr1 has quit [Ping timeout: 265 seconds]
revolve has quit [Read error: Connection reset by peer]
revolve has joined #nmigen
GenTooMan has quit [Quit: Leaving]
bgs has quit [Quit: WeeChat 3.0]
bgs has joined #nmigen
GenTooMan has joined #nmigen
jeanthom has quit [Ping timeout: 240 seconds]
lf has quit [Ping timeout: 245 seconds]
lf has joined #nmigen
balrog has quit [Quit: Bye]
balrog has joined #nmigen