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 23th
Lofty has quit [Remote host closed the connection]
ZirconiumX has joined #nmigen
ZirconiumX is now known as Lofty
samlittlewood_ has joined #nmigen
samlittlewood has quit [Ping timeout: 260 seconds]
samlittlewood_ is now known as samlittlewood
Degi has quit [Ping timeout: 272 seconds]
FL4SHK has quit [Ping timeout: 246 seconds]
FL4SHK has joined #nmigen
<lsneff> Anyone here familiar with libresoc? Is it riscv or power9? The documentation is a tad confusing.
<awygle> lkcl: ^
samlittlewood has quit [Ping timeout: 272 seconds]
samlittlewood has joined #nmigen
electronic_eel has quit [Ping timeout: 256 seconds]
electronic_eel has joined #nmigen
PyroPeter_ has joined #nmigen
samlittlewood_ has joined #nmigen
samlittlewood has quit [Ping timeout: 260 seconds]
samlittlewood_ is now known as samlittlewood
PyroPeter_ is now known as PyroPeter
peepsalot has quit [Ping timeout: 256 seconds]
peepsalot has joined #nmigen
emeb_mac has quit [Quit: Leaving.]
jeanthom has joined #nmigen
chipmuenk has joined #nmigen
DaKnig has quit [Ping timeout: 264 seconds]
DaKnig has joined #nmigen
DaKnig has joined #nmigen
Asu has joined #nmigen
smkz has quit [Quit: smkz]
smkz has joined #nmigen
DaKnig has quit [Ping timeout: 240 seconds]
DaKnig has joined #nmigen
DaKnig has joined #nmigen
Asu has quit [Quit: Konversation terminated!]
_whitelogger has joined #nmigen
Shari2 has joined #nmigen
samlittlewood has quit [Read error: Connection reset by peer]
samlittlewood has joined #nmigen
Asu has joined #nmigen
Degi has joined #nmigen
Chips4Makers has quit [Ping timeout: 272 seconds]
Degi has quit [Ping timeout: 256 seconds]
Degi has joined #nmigen
samlittlewood has quit [Ping timeout: 265 seconds]
samlittlewood has joined #nmigen
Chips4Makers has joined #nmigen
Shari2 has quit [Remote host closed the connection]
samlittlewood has quit [Ping timeout: 240 seconds]
samlittlewood has joined #nmigen
<lkcl> lsneff: neither. it is OpenPOWER ISA. we are aiming for the "Embedded FP Compliancy" 64-bit and will only add VSX as a last arm-twisting resort
<lkcl> (POWER9 happens to be OpenPOWER ISA v3.0B compliant at the "AIX" level)
<lkcl> awygle (thx)
<lkcl> lsneff: POWER9 is a Trademarked processor brand designation owned by IBM. like "Intel Core Skylake i9".
<lsneff> lkcl: Ah, thanks, didn't realize that.
emeb has joined #nmigen
<lkcl> lsneff: it's a common misconception. i still have to say to people, "you know powerpc, like in those G4 macbooks?" :)
peeps[zen] has joined #nmigen
<lkcl> if i don't call it powerpc they go cross-eyed with blank stares :)
* lkcl sighs
peepsalot has quit [Ping timeout: 240 seconds]
<lsneff> That's an interesting choice though. Why that over riscv?
<lkcl> we're doing a public augmentation to the ISA (to add 3D instructions).
<lkcl> it's not a proprietary, secretive, get-the-advantage-over-the-customers-entrap-them-and-get-as-much-money-out-of-them-as-possible extension
<lkcl> (a company has actually done that with RISC-V, and managed to get a massive EU Grant to fund it)
<lkcl> so, obviously, if we want it to be public, then the modifications to gcc, binutils, llvm etc, all need to be upstream and mainline, right?
<lkcl> sounds perfectly reasonable, that, doesn't it?
<lkcl> so when various ****wits in the RISC-V Foundation told us, "go shove your stupid 3D extensions into the Custom opcode space, where they belong, you moronic stupid little Free Software loving religious zealots", we weren't very happy
<lkcl> not because they were being unbelievably rude, but because Custom Extensions are *specifically* prohibited from being upstreamed into gcc and binutils mainline.
<lkcl> the first time that ever happens it basically means that whoever "wins" that one becomes the de-facto standard definition for the RISC-V Custom-Extension opcodes
<lkcl> by complete contrast the OpenPOWER Foundation has been extremely supportive of our efforts to extend OpenPOWER.
<lkcl> we still have to go through an "Approvals" process, however they've actually said, clearly, that they're happy to do that and would welcome it.
<lkcl> even more interestingly: people proposing OpenPOWER ISA extensions do *not* actually have to join the OpenPOWER Foundation to do so.
samlittlewood has quit [Read error: Connection reset by peer]
<d1b2> <dub_dub_11> what's the difference between ISA extensions and custom opcodes?
samlittlewood has joined #nmigen
peepsalot has joined #nmigen
peeps[zen] has quit [Ping timeout: 260 seconds]
<Sarayan> ISA extensions are public custom opcodes
<d1b2> <dub_dub_11> oh
<d1b2> <dub_dub_11> so if you make a custom opcode public how can they stop it being an extension 🤔
<Sarayan> 17:31 <lkcl:#nmigen> not because they were being unbelievably rude, but because Custom Extensions are *specifically* prohibited from being upstreamed into gcc and binutils mainline.
<Sarayan> that is how, by making it really inconvenient
<lkcl> RISC-V (and OpenPOWER) are Trademarked.
<lkcl> if you try to bring them into disrepute, then the owners of those Trademarks can sue you for material damages
<d1b2> <dub_dub_11> oh, so the openly available compiler won't support your custom extension, only your fork of it?
<lkcl> and "dominating the custom opcode space" would... yeees, exactly, dub_dub_ll
<d1b2> <dub_dub_11> I see
<lkcl> which places a massive burden on a very small team to not only maintain a permanent hard-fork of gcc, binutils and llvm
<d1b2> <dub_dub_11> that does sound like a pain
<lkcl> but entire OS distros as well - recompiled with the new custom extensions
<d1b2> <dub_dub_11> right...
<lkcl> so much of a pain that the total intransigence of the RISC-V Foundation, in direct violation of Trademark Law, meant that we were forced to abandon RISC-V entirely
<d1b2> <dub_dub_11> 😦
<lkcl> their loss. they did us a huge favour. OpenPOWER ISA has IBM behind it, for goodness sake
<d1b2> <dub_dub_11> lol
<Sarayan> How complicated is power though?
<Sarayan> or did you just license a core?
<lkcl> that's a really interesting question. the original POWER1 paper explains that the "RISC" part is based on 5 register broadcast "Lanes", RS/T/A/B/C
<lkcl> where the "shift/mask" operation is shared with the "load/store" to save a huge number of gates
<lkcl> Sarayan: you can have a look here to get an idea of the complexity, for yourself
<lkcl> the ADD operation is utterly cool. there's only actually one ADD, but by Micro-Coding it you can put "neg-A" and "neg-output" plus "Carry-in = CA/0/1" and so on to create SUB, NEG, and a boat-load more operations, all from the one single "ADD" pipeline.
<d1b2> <dub_dub_11> isn't that normal for a RISC core? to only have a single adder
<lkcl> that one "ADD" pipeline, with its carry-in, carry-out and neg-A and neg-out pre- and post- processing, turns into something mad like 60+ opcodes!
<d1b2> <dub_dub_11> oh wow
<d1b2> <dub_dub_11> that is something extra special then
<lkcl> dub_dub_ll: 60 opcodes in front of a single ADD pipeline ain't normal for RISC! :)
<Sarayan> nice
<lkcl> but it all "makes sense" once you get into it.
<Sarayan> it's all in nmigen?
<lkcl> the designers really, *really* thought about it
<lkcl> Sarayan: yyep.
<Sarayan> nice, so maybe even usable on a fpga
<lkcl> yep it is. the current implementation, even though it's similar performance to picorv32, is around 18k LUT4s in an ECP5
<lkcl> here's that "pre-processing" to neg-A (and neg-B)
<lkcl> https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/fu/common_input_stage.py;hb=HEAD
<lkcl> and to select either 0 or 1 or the CA register as carry-in
<Sarayan> You probably can plonk that in a cyclone v
<Sarayan> the acutal ALU
<Sarayan> huhuhu
<lkcl> ideally i'd like to stick to libre fpga tools unless forced to, which *sigh* will happen eventually
<Sarayan> hey, we're working on that
<lkcl> oh nice! what libre tools for a cyclone v?
<lkcl> what the heck is intel doing selling ARM cores? :)
<Sarayan> they're not there yet, but hopefully yosys and nextpnr and something else in combo somewhere next year
<lkcl> oleeee!
<lkcl> how many LUT4s?
<Sarayan> a LAB is 4 lut5 or one lut6
* lkcl clicking through random pages to find out...
<Sarayan> 10 labs per lab block
<Sarayan> number of lab blocks varies
<Sarayan> obviously :-)
<d1b2> <dub_dub_11> > a LAB is 4 lut5 or one lut6 4 LUT5 or one LUT6? how does that work?
<lkcl> ok it looks like the $1099 version has 110k LUTs https://www.digikey.com/en/datasheets/terasicinc/terasic-inccv51002
<Sarayan> 2 lut5 sorry
<d1b2> <dub_dub_11> ah
<Sarayan> intel numbers are funky
<lkcl> looovely :)
<lkcl> that's still absolutely brilliant to hear about though
<Sarayan> the de10-nano is around $130 not $1099
<Sarayan> its cyclone is the 5CSEBA6U23I7 with 4191 lab blocks, so 83820 lut5
<Sarayan> the biggest cyclone 5 has 11356 lab blocks e.g. 227120 lut5
<lkcl> ok ooo i waant one of thoose
<lkcl> if it's got libre-licensed tools i want one. 227k LUT5s means we can do a massive 4x FP32 SIMD back-end ALU
<Sarayan> 5CGTFD9C5F23C7 (the big one) is around E380
Lord_Nightmare has quit [Quit: ZNC - http://znc.in]
<Sarayan> (the price is by 60 though)
<lkcl> that's not unreasonable.
<Sarayan> well, E510 for the 1152pins one when your order by 1 on dikigay
<Sarayan> well, "pins" for fine-pitch bga, whatever
<Sarayan> dikikey
<lkcl> lol
<Sarayan> digikey damnit
<Sarayan> (how the hell did my fingers manage that first typo?)
<lkcl> i was wondering if you'd noticed the double-entendre mis-spelling :)
<Sarayan> oh, key inversion
<Sarayan> makes more sense
<lkcl> ohno! you're using an AZERTY keyboard?
<Sarayan> no, qwerty
Lord_Nightmare has joined #nmigen
<Sarayan> azerty has g&k in the same place anyway
<Sarayan> qa wz ,m
<Sarayan> are the inverted ones
<lkcl> woof. 1152 BGA. that's enormous. yields will be low on that.
* lkcl burned dinner, nuts, gotta go rescue it
<sorear> lkcl: do you want to put a date on when you expect your trig extensions to be supported in upstream “rs6000” gcc
<vup> top
Djr has joined #nmigen
Djr has quit [Remote host closed the connection]
emeb_mac has joined #nmigen
<Lofty> lkcl: Sarayan's working on the bitstream data, I'm the one writing the tooling
<Lofty> synth_intel_alm is the command in Yosys if you're curious.
jeanthom has quit [Ping timeout: 260 seconds]
chipmuenk has quit [Quit: chipmuenk]
Asuu has joined #nmigen
Asu has quit [Ping timeout: 240 seconds]
Asuu has quit [Remote host closed the connection]
Asu has joined #nmigen
_whitelogger has joined #nmigen
Asu has quit [Quit: Konversation terminated!]