whitequark[m] changed the topic of #nmigen to: nMigen hardware description language · code https://github.com/nmigen · logs https://freenode.irclog.whitequark.org/nmigen
pftbest has quit [Ping timeout: 245 seconds]
revolve has quit [Read error: Connection reset by peer]
revolve has joined #nmigen
<_whitenotifier-5> [YoWASP/nextpnr] whitequark pushed 1 commit to develop [+0/-0/±2] https://git.io/JqUSX
<_whitenotifier-5> [YoWASP/nextpnr] whitequark 243d94a - Update dependencies.
pftbest has joined #nmigen
pftbest has quit [Ping timeout: 276 seconds]
FFY00_ has joined #nmigen
<_whitenotifier-5> [YoWASP/yosys] whitequark pushed 1 commit to develop [+0/-0/±1] https://git.io/JqUHT
<_whitenotifier-5> [YoWASP/yosys] whitequark ab547fe - Update dependencies.
lf has quit [Ping timeout: 260 seconds]
lf has joined #nmigen
pftbest has joined #nmigen
pftbest has quit [Ping timeout: 245 seconds]
pftbest has joined #nmigen
pftbest has quit [Ping timeout: 260 seconds]
Degi has quit [Ping timeout: 245 seconds]
Degi has joined #nmigen
revolve has quit [Read error: Connection reset by peer]
revolve has joined #nmigen
lkcl has quit [Ping timeout: 240 seconds]
lkcl has joined #nmigen
PyroPeter_ has joined #nmigen
PyroPeter has quit [Ping timeout: 276 seconds]
PyroPeter_ is now known as PyroPeter
lkcl has quit [Ping timeout: 265 seconds]
lkcl has joined #nmigen
revolve has quit [Read error: Connection reset by peer]
revolve has joined #nmigen
jeanthom has joined #nmigen
lkcl has quit [Ping timeout: 246 seconds]
pftbest has joined #nmigen
lkcl has joined #nmigen
emeb_mac has quit [Quit: Leaving.]
lkcl has quit [Ping timeout: 260 seconds]
lkcl has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Ping timeout: 264 seconds]
Bertl is now known as Bertl_zZ
bvernoux has joined #nmigen
pftbest has joined #nmigen
lkcl has quit [Ping timeout: 245 seconds]
lkcl has joined #nmigen
_whitelogger has joined #nmigen
revolve has quit [Ping timeout: 260 seconds]
revolve has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
<_whitenotifier-5> [YoWASP/yosys] whitequark pushed 6 commits to release [+0/-0/±7] https://git.io/JqT8g
<_whitenotifier-5> [YoWASP/yosys] whitequark 9a530f4 - Update dependencies.
<_whitenotifier-5> [YoWASP/yosys] whitequark 53ba7a7 - Update dependencies.
<_whitenotifier-5> [YoWASP/yosys] whitequark 1067225 - Inject local part into version when packaging dirty work tree.
<_whitenotifier-5> [YoWASP/yosys] ... and 3 more commits.
<_whitenotifier-5> [YoWASP/nextpnr] whitequark pushed 6 commits to release [+0/-0/±11] https://git.io/JqT82
<_whitenotifier-5> [YoWASP/nextpnr] whitequark ba83221 - Update dependencies.
<_whitenotifier-5> [YoWASP/nextpnr] whitequark 1f6530e - Update dependencies.
<_whitenotifier-5> [YoWASP/nextpnr] whitequark a95c5db - Fix variable names. NFC.
<_whitenotifier-5> [YoWASP/nextpnr] ... and 3 more commits.
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Remote host closed the connection]
bvernoux1 has joined #nmigen
bvernoux has quit [Ping timeout: 245 seconds]
pftbest has joined #nmigen
pftbest has quit [Read error: Connection reset by peer]
pftbest has joined #nmigen
Bertl_zZ is now known as Bertl
pftbest has quit [Remote host closed the connection]
pftbest has joined #nmigen
pftbest has quit [Ping timeout: 258 seconds]
emeb has joined #nmigen
pftbest has joined #nmigen
lkcl has quit [Ping timeout: 246 seconds]
lkcl has joined #nmigen
slan has joined #nmigen
<slan> Hey, I'm wondering if I'm doing something in my simulation code here: https://github.com/slan/hartysoc/blob/8f4c78778f1310db67cdab864792c58c6a81d4cd/hdl/kitchensink/mig.py#L113 I wish I could just use self.app_addr[1:3] but it looks like I cannot, any idea why?
<miek> what goes wrong when you try?
<agg> you should `app_addr = yield self.app_addr[1:3]`
<agg> after you've yielded, app_addr is just an integer, not a signal
<agg> you could use (yield self.app_addr[1:3]) there
<agg> slan: ^
slan has quit [Quit: Connection closed]
slan has joined #nmigen
<slan> Well that's the thing... either I yeild and get an integer that works in word_select, or I use self.app_addr[1:3] (a signal) but then it doesn't work
<agg> yield self.app_rd_data.eq(mem_rp.data.word_select((yield self.app_addr[1:3]), 32))
<agg> that should work I expect?
<slan> No it does not (and it shouldn't IMO) : TypeError: Received unsupported command ((slice (sig app_addr) 1:3), 32)
<agg> I think the brackets might be mismatched
<agg> it looks like it's yielding (self.app_addr[1:3], 32) but should just be (self.app_addr[1:3])
<agg> (the line I posted has correct brackets I think)
<agg> why don't you think it should work?
<GenTooMan> hmm I found out how to get version information from nmigen about it's version and the yosys it's using.
<slan> I was assuming the whole expression had to be in the "non-python" real (if that maskes sense). Now I see I probably had some fundamental misunderstanding... this works as expected.
<slan> Now time to figure out why :) esp. why not mem_rp.data.word_select(self_app_addr[1:3]), 32) directly as I would write in non-simulation code...
<slan> Thanks agg!
<slan> (reason for the "non-python" idea is I do a signal.eq(...) in the first place...
<agg> No problem, glad it worked :) the latter doesn't work because word_select in simulation needs a constant and you're giving it a signal, it doesn't know how to request it from the simulator
<slan> Yeah, makes sense
<slan> also note I have liberally put some yield Settle() here and there, guessing I need to give the sim some breathing room to propage my almost-entirely combinatorial design
<slan> thos have been put there mostly by trial-and-error, but as a rule of thumb, anything you signal.eq(...) and expect to get some result needs a Settle(). Am I on the right mindset?
<agg> Someone better informed as to the workings of the simulator could give a better answer but yes, that's my understanding, you can yield Settle to trigger an update of all the combinatorial logic after you update some inputs
<slan> Cool! I'm having a blast exploring nmigen (and hardware design), props to @whitequark and the community to lower the barrier and make it available to software devs
<agg> (for synchronous logic testing I basically never use settle and instead I'm setting inputs to take effect next cycle, so just use plain yield, but for combinatorial logic testing you need settle)
<slan> I see. For my experiments, I'm actually trying to do as much in combinatorial as possible. Feels like I can always draw some line later on with clocks. Doing it the other way around seemed a bit more tricky (for me).
<slan> (as in: I don't think I have a good intuition on where to impose a clock cycle, so by letting evrything go combinatorial and ask my impl tool to show me the critical path I am better informed on how to partition my design)
chipmuenk has joined #nmigen
revolve has quit [Read error: Connection reset by peer]
revolve has joined #nmigen
emeb_mac has joined #nmigen
bvernoux1 has quit [Read error: Connection reset by peer]
jeanthom has quit [Ping timeout: 265 seconds]
chipmuenk has quit [Remote host closed the connection]
nelgau has quit []
sorear has quit [Ping timeout: 240 seconds]
sorear has joined #nmigen
emeb has quit [Quit: Leaving.]