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 · IRC meetings each Monday at 1800 UTC · next meeting November 2nd
samlittlewood has quit [Ping timeout: 268 seconds]
samlittlewood has joined #nmigen
samlittlewood_ has joined #nmigen
samlittlewood has quit [Ping timeout: 265 seconds]
samlittlewood_ is now known as samlittlewood
<_whitenotifier-f> [YoWASP/yosys] whitequark pushed 1 commit to develop [+0/-0/±1] https://git.io/JTdAt
<_whitenotifier-f> [YoWASP/yosys] whitequark 6373280 - Update dependencies.
<lsneff> Has anyone tried getting nmigen running in a python interpreter compiled to wasm?
a314 has quit [Ping timeout: 260 seconds]
a314 has joined #nmigen
Degi has quit [Ping timeout: 258 seconds]
Degi has joined #nmigen
_whitelogger has joined #nmigen
samlittlewood has quit [Ping timeout: 258 seconds]
samlittlewood has joined #nmigen
<lsneff> I'm uploading code to a tinyfpga bx and I'm able to upload the code and it seems to work, but the uploading fails after success with an error code returned by tinyprog
samlittlewood has quit [Ping timeout: 268 seconds]
samlittlewood_ has joined #nmigen
_whitelogger has joined #nmigen
<lsneff> Fixed by catching boot timeouts
electronic_eel has quit [Ping timeout: 260 seconds]
electronic_eel_ has joined #nmigen
PyroPeter_ has joined #nmigen
PyroPeter has quit [Ping timeout: 240 seconds]
PyroPeter_ is now known as PyroPeter
jeanthom has joined #nmigen
emeb_mac has quit [Quit: Leaving.]
jeanthom has quit [Ping timeout: 256 seconds]
chipmuenk has joined #nmigen
electronic_eel_ is now known as electronic_eel
chipmuenk1 has joined #nmigen
chipmuenk has quit [Ping timeout: 240 seconds]
chipmuenk1 is now known as chipmuenk
Asu has joined #nmigen
<_whitenotifier-f> [nmigen] anuejn opened pull request #524: lib.fifo: fix level on fifo full - https://git.io/JTFuk
<_whitenotifier-f> [nmigen] codecov[bot] commented on pull request #524: lib.fifo: fix level on fifo full - https://git.io/JTFuB
<_whitenotifier-f> [nmigen] codecov[bot] edited a comment on pull request #524: lib.fifo: fix level on fifo full - https://git.io/JTFuB
<_whitenotifier-f> [nmigen] codecov[bot] edited a comment on pull request #524: lib.fifo: fix level on fifo full - https://git.io/JTFuB
<_whitenotifier-f> [nmigen] whitequark closed pull request #524: lib.fifo: fix level on fifo full - https://git.io/JTFuk
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±2] https://git.io/JTFuD
<_whitenotifier-f> [nmigen/nmigen] anuejn c7014f8 - lib.fifo: fix level on fifo full
<_whitenotifier-f> [nmigen] whitequark commented on pull request #524: lib.fifo: fix level on fifo full - https://git.io/JTFuS
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±18] https://git.io/JTFuN
<_whitenotifier-f> [nmigen/nmigen] whitequark 8054e9c - Deploying to gh-pages from @ c7014f84ea0c9df988a7eb76f98e29cded6998b0 🚀
<_whitenotifier-f> [nmigen] anuejn synchronize pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTgbP
<_whitenotifier-f> [nmigen] codecov[bot] edited a comment on pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTgbd
<_whitenotifier-f> [nmigen] anuejn synchronize pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTgbP
<_whitenotifier-f> [nmigen] codecov[bot] edited a comment on pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTgbd
<_whitenotifier-f> [nmigen] anuejn synchronize pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTgbP
<_whitenotifier-f> [nmigen] codecov[bot] edited a comment on pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTgbd
<_whitenotifier-f> [nmigen] codecov[bot] edited a comment on pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTgbd
<_whitenotifier-f> [nmigen] codecov[bot] edited a comment on pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTgbd
<_whitenotifier-f> [nmigen] codecov[bot] edited a comment on pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTgbd
<_whitenotifier-f> [nmigen] codecov[bot] edited a comment on pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTgbd
<_whitenotifier-f> [nmigen] whitequark closed issue #485: {r,w}_level is broken on AsyncFIFO{Buffered,} - https://git.io/JUfOp
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±2] https://git.io/JTFgG
<_whitenotifier-f> [nmigen/nmigen] anuejn b15f056 - lib.fifo: fix {r,w}_level in AsyncFIFOBuffered
<_whitenotifier-f> [nmigen] whitequark commented on pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTFgZ
<_whitenotifier-f> [nmigen] whitequark closed pull request #512: Fix {r,w}_level in AsyncFIFOBuffered - https://git.io/JTgbP
<anuejn> nice :)
<anuejn> having that done makes me really happy :D
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±13] https://git.io/JTFgW
<_whitenotifier-f> [nmigen/nmigen] whitequark 9cc82d8 - Deploying to gh-pages from @ b15f0562a62ebbd48b87f2d662cd01845c857c62 🚀
<whitequark> anuejn: me too, since it was something i wanted in 0.3
<_whitenotifier-f> [nmigen] whitequark closed issue #519: Xilinx Zynq: generated bitstreams do not work with (recent?) FPGA Manager - https://git.io/JT7pG
<_whitenotifier-f> [nmigen] whitequark closed pull request #523: vendor.xilinx_7series: byte swap generated bitstream - https://git.io/JTd9t
<_whitenotifier-f> [nmigen/nmigen] whitequark pushed 1 commit to master [+0/-0/±1] https://git.io/JTFgS
<_whitenotifier-f> [nmigen/nmigen] nfbraun 14a5c42 - vendor.xilinx_7series: byte swap generated bitstream
<_whitenotifier-f> [nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±13] https://git.io/JTFgQ
<_whitenotifier-f> [nmigen/nmigen] whitequark 185afbe - Deploying to gh-pages from @ 14a5c42a8bd425a4882ba566b26e11bd6d1e1721 🚀
<_whitenotifier-f> [nmigen] whitequark commented on issue #328: Add `r_level` and `w_level` to AsyncFIFO - https://git.io/JTFgb
<_whitenotifier-f> [nmigen] whitequark closed issue #328: Add `r_level` and `w_level` to AsyncFIFO - https://git.io/JvVnm
<whitequark> uh, i think *all of us* collectivelly forgotten about the meeting yesterday
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 · IRC meetings each Monday at 1800 UTC · next meeting November 9th
<whitequark> ahwell, it happens
<lkcl> i implemented DMI (which is a very similar protocol to how SRAMs operate) which might be a suitable candidate for the inter-CSR communication, is why i ask
<lkcl> it's a lot simpler than wishbone.
jeanthom has joined #nmigen
jeanthom has quit [Ping timeout: 256 seconds]
jeanthom has joined #nmigen
<jfng> lkcl: i haven't been working on nmigen-soc for the past month due to lack of time, sorry
<whitequark> it's not such a bad thing in the grand scheme of things as it leaves me a bit more time to finish cxxsim
<whitequark> speaking of which, i'm currently implementing the $display cell in yosys
<lkcl> jfng: no problem, that's good to hear as well
<lkcl> whitequark: niiice. the MMU and I/D cache code is such a complex FSM (ported from microwatt) that we can't do without $display / Display() and have a "try import except ImportError" wrapper around Display at the moment
<whitequark> sure
emeb_mac has joined #nmigen
emeb_mac has quit [Quit: Leaving.]
<lkcl> (whitequark, translation: i'm saying thank you :) )
daveshah has quit [*.net *.split]
daveshah has joined #nmigen
jfng has quit [Ping timeout: 272 seconds]
gkelly has quit [Ping timeout: 244 seconds]
whitequark[m] has quit [Ping timeout: 240 seconds]
cesar[m]1 has quit [Ping timeout: 244 seconds]
emily has quit [Ping timeout: 244 seconds]
chipmuenk1 has joined #nmigen
chipmuenk has quit [Ping timeout: 256 seconds]
chipmuenk1 is now known as chipmuenk
jfng has joined #nmigen
whitequark[m] has joined #nmigen
cesar[m]1 has joined #nmigen
cesar[m]1 has quit [Quit: Bridge terminating on SIGTERM]
jfng has quit [Quit: Bridge terminating on SIGTERM]
whitequark[m] has quit [Quit: Bridge terminating on SIGTERM]
jfng has joined #nmigen
emeb_mac has joined #nmigen
cesar[m] has joined #nmigen
emily has joined #nmigen
whitequark[m] has joined #nmigen
gkelly has joined #nmigen
emeb_mac has quit [Ping timeout: 240 seconds]
emeb_mac has joined #nmigen
peeps[zen] has joined #nmigen
peepsalot has quit [Ping timeout: 260 seconds]
Asuu has joined #nmigen
Asu has quit [Ping timeout: 256 seconds]
chipmuenk has quit [Quit: chipmuenk]
<jfng> does the encoding of FSM states belong to the public API ? (i.e. can I write code that depends on it ?)
<whitequark> jfng: very much no at the moment
<whitequark> but it is planned to be more user-exposed than it is now after the FSM rework that me and awygle want to do
<jfng> okay, i'll avoid depending on it in the meantime
FFY00 has quit [Read error: Connection reset by peer]
FFY00 has joined #nmigen
<awygle> pyrope is gonna confuse somebody when they go looking for a data structure for text
jeanthom has quit [Ping timeout: 260 seconds]
<whitequark> yep
<awygle> new rule, all package names are a 6-digit base-36 number
emeb has joined #nmigen
<agg> is there anything public about pyrope except that one presentation from 2018?
<agg> it seems like they maybe have https://pypi.org/project/pyrope though it points to a 404'd github repo and is an empty package
<agg> github finds some people with pyrope syntax files in their vim config and a treesitter parser for it even
<agg> it seems a shame to use # as the 'register' operator and then use a syntax highlighter that treats it as a comment, but maybe that's why they're writing vim syntax files :p
Chips4Makers has quit [Remote host closed the connection]
Chips4Makers has joined #nmigen
jeanthom has joined #nmigen
<EmilJ> awygle: what did you mean by the text data structure thing? Isn't it, like, an HDL that doesn't need strings?
jeanthom has quit [Ping timeout: 240 seconds]
<d1b2> <OmniTechnoMancer> A rope is a text data structure, py is a common prefix for making a python thing, so one may assume a pyrope were a python impl of the rope data structure
<EmilJ> oh! Thank you
Chips4Makers has quit [Quit: Leaving.]
Chips4Makers has joined #nmigen
jeanthom has joined #nmigen
<_whitenotifier-f> [nmigen] Ravenslofty opened issue #525: [RFC] Add InstanceResource to use Instance I/O as Platform I/O - https://git.io/JTbXD
<Lofty> Crappy RFC is crappy, but whatever
<Lofty> Here you go, kbeckmann
<kbeckmann> oh, thanks.
<kbeckmann> i'm currently struggling trying to create an instance of the altera_int_osc IP
<kbeckmann> or is this one of those encrypted IPs that i have to generate and include somehow?
<kbeckmann> (for context, i am trying to create an instance of the internal oscillator in a Cyclon V design)
<kbeckmann> hm is there any examples for how to generate "megafunctions" on the fly in nMigen + quartus? in this case i think i need to generate a altera_int_osc megafunction, include it in the design and create an instance of it
<Lofty> kbeckmann: you just instantiate it
<kbeckmann> > Node instance "intosc" instantiates undefined entity "altera_int_osc".
<kbeckmann> i am probably doing something very wrong but i'm not sure what :)
<Lofty> Hmm
<Lofty> How about `cyclonev_oscillator`?
<kbeckmann> i did like this m.submodules.intosc = Instance("altera_int_osc", i_oscena = Const(1), o_clkout = ClockSignal("intosc"))
<Lofty> Yep
<Lofty> Try replacing `altera_int_osc` with `cyclonev_oscillator`
<kbeckmann> magic! i have a blinky
<kbeckmann> thanks so much..
<Lofty> Yet another secret of Mistral :P
<kbeckmann> how did you find cyclonev_oscillator ?
<Lofty> I instantiated the megafunction, and asked it to also generate a third-party file
<kbeckmann> ah nice
<Lofty> And inside the altera_int_osc was a cyclonev_oscillator
<kbeckmann> ohhh now i found that too
<Lofty> Really do think all the Altera IP library cells are pain, but
<kbeckmann> is there a way to learn the names and parameters in a sane way?
<Lofty> Nope
<kbeckmann> using quartus, instantiate, export, seems a bit like a pain
<kbeckmann> i see
<Lofty> Unless you go through the simulation library I guess
<kbeckmann> ah
<Lofty> They have black boxes of things
<Lofty> Which maybe I should extract
<Lofty> I'm curious, do you have any way of measuring the variance on the clock?
<kbeckmann> not right now
<kbeckmann> i could set something up though.. as in using an SDR
<kbeckmann> i have a GPSDO and a bunch of FPGA boards,
<kbeckmann> i guess i could tune the GPSDO to the same frequency and then measure the variance with some gateware. but i have never done that before.
jeanthom has quit [Ping timeout: 256 seconds]
<agg> Lofty: just curious about accuracy of the cyclone-v internal osc?
<Lofty> Well, daveshah is, actually, but yeah
<agg> kbeckmann: it's so annoying! i went though that same exercise to get all the SoC instance names
<agg> like why can't they just document the underlying names...
<Lofty> agg: I'll get there ^^;
<agg> Lofty: I've got a de0-nano-soc and a de0-nano (cyclone iv) and a timer/counter, probably wouldn't take long
<kbeckmann> i am sure a lot of people will be happy for that documentation!
<agg> are there parameters to sweep or anything?
<Lofty> Hmm, give me a bit
<kbeckmann> there is an extra signal in the quartus generated code, .clkout1(). not sure what that is. the normal clock output is .clkout()
<Lofty> Doesn't look like it
<Lofty> kbeckmann: I'm wondering if it's ~clock
<kbeckmann> ah
<Lofty> agg: yeah, I can't find any parameters for it, but I think Quartus itself might have some that I can't find
<Lofty> (taking a break from my computer rn)
<Lofty> I'm expecting hell to break out over the next few hours, so it's probably best not to look at Twitter
<agg> yea... happy to play with a timer/counter to avoid twitter, heh
<agg> also I basically haven't touched the de0-nano-soc board since getting it as i mostly swapped to lattice fpgas after that
<Lofty> Well, Project Mistral is doing fairly well
<Lofty> Sarayan thinks he understands the entire bitstream
<Lofty> Unfortunately he hasn't written any documentation on it yet, so *I* don't :P
<agg> hah
<agg> everything I hear about the xilinx SoCs sounds pretty terrible whereas I mostly found the altera ones pretty ok once i found the magic instance names
<agg> haven't tried anything since like 2017 or something though
<Lofty> The way I'm probably going to go with the Intel flow is to define a mutually intelligible subset of modules which doesn't go through monstrosities like altsyncram or altera_pll
<Lofty> To be fair even the native modules are a bit of a mess, but it's this or break compatibility externally
<agg> incredible, i found 'soc.py' from dec 2017 and ran it and now the led is flashing on the de0-nano-soc
<Lofty> Huh, wow
Asu has joined #nmigen
<agg> sadly it looks like nmigen-boards never got a de0-nano-soc board
Asuu has quit [Ping timeout: 272 seconds]
<Lofty> Yet
<kbeckmann> Lofty: the frequency seems to be 100MHz
<Lofty> Huh. It's part of the bitstream config, as I understand it
jeanthom has joined #nmigen
<agg> 84.5MHz here, if I just instantiate the cyclonev_oscillator
<kbeckmann> oh ok
<kbeckmann> it was at least not 12.5
<kbeckmann> let me measure more precisely
<agg> no apparent complaints from quartus
<agg> these gpio headers were not meant to see 84MHz, the ringing is insane
<Lofty> Ahahaha
<agg> https://imgur.com/a/gFSWZAo my counter says 9.4Vpp
<agg> this is with some 50R coax going directly onto the pin headers of the board, lol
<Lofty> Hmm.
<agg> not a board that has much of a clock output
<agg> let me use a high impedance probe instead, this is a bit unfair
<agg> yea, still 7.5Vpp, lol
jeanthom has quit [Ping timeout: 260 seconds]
<agg> well, it's not great
<agg> across 25 batches of 10k random periods, the avg freq varies by 42kHz (500ppm on 84MHz), peak-peak jitter is 206ps or so
<kbeckmann> i wonder if temperature matters
<kbeckmann> my chip gets Quite hot
<kbeckmann> as in i don't want to hold my finger against it for more than 2 seconds.
<agg> mine has a stupid acrylic cover to stop me touching it, heh
<agg> and even that is quite warm, this is sucking 4W or so
<kbeckmann> ir thermometer says 51C
<agg> annoyingly the acrylic is opaque to IR
<kbeckmann> uhh now it says 59C
<kbeckmann> it is at least definitely quite hot.
<agg> underside of the pcb is at 54C though
<Lofty> Yeah, I think the chips are meant to have heatsinks
<agg> not seeing much long-term drift in average frequency but the short term variation is so high that i'm not surprised
<agg> it could be like 100ppm/degC and I'd probably not notice it on top of the jitter
jeanthom has joined #nmigen
<kbeckmann> nice. i am measuring a counter with a crappy multimeter and it seems it's closer to 78 on my unit. but it might just be the crappy meter.
<agg> i could totally believe it varies by that much between units
<agg> your multimeter goes up to 78MHz of counter?
<agg> https://i.imgur.com/PMmmy4g.png is 1/period for 10k random periods, all taken within half a second or so
<agg> for comparison, a 20MHz crystal on roughly the same scale: https://imgur.com/a/pRwN9Qw