<kbeckmann>
I'm using AsyncFIFOBuffered on ECP5, 16b wide, 4096+1 words deep, and my design is struggling to get above 100MHz. Is this simply the harsh reality of the ECP5 BRAM or can I do something to speed up the design?
<daveshah>
ECP5 bram is pretty slow for non 5G parts
<daveshah>
5-6ns clock to out
<kbeckmann>
i see..
<lkcl_>
daveshah: really? they put faster RAM on the ECP5G?
hitomi2505 has quit [Read error: Connection reset by peer]
hitomi2505 has joined #nmigen
cr1901_modern1 has quit [Quit: Leaving.]
cr1901_modern has joined #nmigen
jeanthom has quit [Read error: Connection reset by peer]
jeanthom has joined #nmigen
hitomi2505 has quit [Read error: Connection reset by peer]
hitomi2505 has joined #nmigen
<ktemkin>
whitequark: btw, is there a place to talk about things like Yumewatari/related PCIe things and things like your eeprom hacking without taking up the nMigen or similar channels?
<whitequark>
for the former, there's ##openfpga
<ktemkin>
mm; I guess that goes unused enough to host specific-project discussions without blocking general FPGA conversation (and serdes stuff is relevant)
emeb has joined #nmigen
hitomi2505 has quit [Read error: Connection reset by peer]
hitomi2505 has joined #nmigen
jeanthom has quit [Ping timeout: 265 seconds]
alexhw has quit [Remote host closed the connection]
alexhw has joined #nmigen
hitomi2505 has quit [Read error: Connection reset by peer]
hitomi2505 has joined #nmigen
emeb1 has joined #nmigen
emeb1 has quit [Client Quit]
emeb has quit [Ping timeout: 240 seconds]
<cr1901_modern>
ktemkin: wq has been talking about eprom hacking in ##yamahasynths, which is my channel where I really don't enforce on-topic (basically derails into any obsolete computer tech)
<cr1901_modern>
But the primary topic is _supposed_ to be about the old FM sound chips you'd find in the Sega Genesis or arcade boards of late 80s/early 90s (b/c FM is screwy)
<d1b2>
<emeb> FM is fun!
<cr1901_modern>
Been meaning to make a discord/matrix bridge but... not enough bandwidth to focus
<_whitenotifier-b>
[nmigen] GravesJake commented on pull request #452: Convert tests to regex versions - https://git.io/JJutp
<_whitenotifier-b>
[nmigen] GravesJake deleted a comment on pull request #452: Convert tests to regex versions - https://git.io/JJutp
<d1b2>
<emeb> a couple years ago I did an FM multivoice synth in an ice40 ultra. kinda modeled on OPL stuff, but with lots of changes to allow more crazy algorithm and operator linkage.
<d1b2>
<emeb> basically 256 operators that could be hooked up in arbitrary ways.
<cr1901_modern>
256 operators cascaded together... bet that sounds like a disaster :)
<cr1901_modern>
emeb: Anyways, do you have an IRC nick or are you discord/matrix only?
<d1b2>
<emeb> Well, I never bothered to hook them all up in a single algorithm.
<_whitenotifier-b>
[nmigen] GravesJake commented on pull request #452: Convert tests to regex versions - https://git.io/JJuqk
<d1b2>
<emeb> Yeah - I should get on via IRC instead of this link
* cr1901_modern
would rather keep the FM talk in ##yamahasynths
<_whitenotifier-b>
[nmigen] GravesJake edited a comment on pull request #452: Convert tests to regex versions - https://git.io/JJuqk
emeb has joined #nmigen
<_whitenotifier-b>
[nmigen] GravesJake edited a comment on pull request #452: Convert tests to regex versions - https://git.io/JJuqk
<_whitenotifier-b>
[nmigen] whitequark commented on pull request #452: Convert tests to regex versions - https://git.io/JJuqn
<_whitenotifier-b>
[nmigen] whitequark commented on pull request #452: Convert tests to regex versions - https://git.io/JJuqW
jeanthom has joined #nmigen
hitomi2505 has quit [Read error: Connection reset by peer]
<DaKnig>
am I the only one having trouble with long lines?
<DaKnig>
I try hard to avoid long lines (say 80 or 120 chars) but with HDL, including nmigen, its p hard
Asu has quit [Quit: Konversation terminated!]
<DaKnig>
with my small screen this really is catastrophic as I am forced to split the screen vertically instead of horizontally, so I see much less stuff
<whitequark>
awygle: tbh, "tabs for nmigen code, 4 stops for people with huge displays, 2 stops for people with tiny displays" is something I could live with
<whitequark>
I would probably not *recommend* it as it's fairly heterodox, but it doesn't seem unreasonable
<awygle>
the solution to "if you change the width of tabs other things will end up misaligned" is "don't align things with tabs"
<whitequark>
decent editors should let you either configure that or use a plugin
<awygle>
but sadly that... doesn't seem doable, for whatever reason
<whitequark>
i think sublime is ... somewhat capable of it?
<whitequark>
ah right
<hell__>
well, if you have to break a function signature because it's too long, and you need to align the parameters with spaces, you might need lots of them
<DaKnig>
there's a linux command for expanding tabs
<DaKnig>
with given width
<d1b2>
<TiltMeSenpai> <insert sed joke>
<whitequark>
awygle: it works fine, but you have to let go of pressing tab as a way to align things faster
<whitequark>
you have to either hit space a lot, or let it insert the spaces
<whitequark>
might be configurable
<DaKnig>
whitequark: did you get to use emacs?
<jeanthom>
let's forget code indentation for a while and use justified text instead
* hell__
runs away
<whitequark>
Degi: never tried
<whitequark>
er, sorry, DaKnig
<hell__>
reminds me that in GNAT GPS, tab doesn't insert anything
<DaKnig>
in emacs, tab means "auto allign this line"
<hell__>
oh
<DaKnig>
then it scrolls through other allignment options
<d1b2>
<TiltMeSenpai> oh what
<d1b2>
<TiltMeSenpai> that's weird
<DaKnig>
the phylosophy is "let the editor do it for you
<DaKnig>
coz you gonna screw it up eventually"
<DaKnig>
makes total sense
<whitequark>
hell__: if you press enter inside `with foo(bar, <HERE>baz):` in sublime, it'll insert tabs up to the location of `with`, and then spaces
<awygle>
that seems not like what i want
<hell__>
yes, that works well if tabs are fixed width
<DaKnig>
you can control the configs for this... ofc
<awygle>
i want one or possibly two more tabs, and no spaces
<DaKnig>
I even wrote the function for indenting python stuff because the default one didnt make sense to me
<whitequark>
awygle: oh i see, i tend to align arguments to the same column (though less in python than elsewhere)
<whitequark>
and *there* it makes a lot of sense
<whitequark>
lemme see
<awygle>
yeah, i getcha. it's just not what i'd prefer. if was gonna do that i'd also press enter between `(` and `bar`.
<awygle>
but i've basically given up on this discussion since it's clear spaces hold the day
<ktemkin>
I figured out an elegant solution to this problem years ago
<awygle>
i do wish somebody would explain to me why the CSS/HTML split is good but the spaces/tabs split is bad, though
<ktemkin>
I've just learned to accept unhappiness~
<whitequark>
awygle: so with `"indent_to_bracket": false` it does what *you* want here
<awygle>
ktemkin: i have therapy in 20 minutes, i wonder what would happen if i said "i've just learned to accept unhappiness" to my shrink :p
<awygle>
(could go either way tbh)
<whitequark>
awygle: anyway my point is less "sublime is cool" and more "this seems to be solved to a significant extent by the thing i happen to run"
<awygle>
whitequark: gotcha. it's more about the collaboration aspect though (as you know)
<whitequark>
yeah, that's true
<whitequark>
collaboration is intractable
<ktemkin>
awygle: it's a net-happiness thing; you get more happy overall by accepting that lots of coding styles will make you unhappy and rolling with them anyways~
<ktemkin>
~~I assume your therapist will understand if you take out a pen and paper and start solving utility calculus~~
<whitequark>
i feel like "unhappy" is one thing and "resentful" is another
<hell__>
I dislike two spaces on C code because I then can't differentiate scopes
<hell__>
and lack of a defined style altogether
<awygle>
ktemkin: i genuinely think it is not unlikely that i will end up working on a GANTT chart during therapy today.
<awygle>
(my therapist is fairly cool)
<whitequark>
the only thing that makes me happy after looking at binutils code is contributing to lld
<whitequark>
anyway, this is so silly
<ktemkin>
there came a point in my life where I started enjoying eating foods I dislike, because there was a certain level of interest in experiencing the adverse flavor itself
<ktemkin>
I think I feel the same way about bad code, at this point
chipmuenk has quit [Quit: chipmuenk]
<ktemkin>
as well as bad coding styles
<hell__>
O_O
<awygle>
for me it's all about choice
<awygle>
i too can enjoy a good eating challenge, as long as i'm allowed to walk away
<awygle>
same for bad coding styles
<whitequark>
ktemkin: this is how i feel re: just about anything made by intel
<awygle>
nmigen, a volunteer project i enjoy contributing to, can do whatever it wants, it won't bother me. my office that i had to work in to afford food, not as much.
<whitequark>
... yeah, probably because i don't actually *have* to use any of that stuff?
<whitequark>
thunderbolt is pathologically bad but it's still fun
<ktemkin>
intel technologies are the 'pointlessly spicy food' of computer architecture
<whitequark>
ha
<whitequark>
what about 8051
<whitequark>
also spicy?
<ktemkin>
it does kind of hurt, but in the end of the day there's still something about the capsaicin
<ktemkin>
8051's sour
<whitequark>
ha!
<whitequark>
i like sour
<awygle>
ktemkin: on a totally other note, are you working on PCIe now?
<ktemkin>
which I mean as semantically distinct from "I'm working on PCIe"
<cr1901_modern>
8051's... "unique".
<cr1901_modern>
That leaves it up to interpretation whether it's a good or bad flavor.
<ktemkin>
awygle: I'm not doing anything with a structured end-goal with it, but I've been mentoring Degi in implementing it, and I can't look at anything sufficiently complicated without getting drawn into it
<ktemkin>
that said, I now have several PCIe analyzers and interposers, which based on past expeirence means I eventually will wind up designing my own PCIe tooling
<awygle>
lol i see
<_whitenotifier-b>
[nmigen/nmigen] github-actions[bot] pushed 1 commit to gh-pages [+0/-0/±13] https://git.io/JJunL
<_whitenotifier-b>
[nmigen/nmigen] whitequark 74a082c - Deploying to gh-pages from @ 20f9ab9d7a6e0040d29cc8373a4238b2bcf89808 🚀
<_whitenotifier-b>
[nmigen-boards] ktemkin commented on issue #89: [RFC] handling boards that are very similar - https://git.io/JJucB
<_whitenotifier-b>
[nmigen-boards] whitequark commented on issue #89: [RFC] handling boards that are very similar - https://git.io/JJuc1
jeanthom has quit [Ping timeout: 264 seconds]
<DaKnig>
it looks like Array[Signal] does work..?
<DaKnig>
is that supposed to be the case?
<DaKnig>
I thought python only allows indexing with an integer
<awygle>
that's more or less the point of Array
<ktemkin>
if you're using nMigen Arrays, yes, that's the point
<DaKnig>
ok
<DaKnig>
I missed that
<DaKnig>
next time I'll use Arrays for LUTs then
<DaKnig>
instead of Memory
<awygle>
i feel like we should rework the Array docstring, it's very opaque to me
hitomi2505 has quit [Quit: Nettalk6 - www.ntalk.de]
<whitequark>
awygle: oh absolutely
<whitequark>
i'll look into that as a part of the docs effort
<ktemkin>
DaKnig: also: generically, python lets you stick whatever you want to into its indexing operator [] (see e.g. __getitem__); though individual types like list impose their own meanings and thus requirements