00:37
florolf has quit [Ping timeout: 264 seconds]
00:52
_whitelogger_ has joined ##openfpga
00:52
emily_ has joined ##openfpga
00:53
ormiret_ has joined ##openfpga
00:53
jhol` has joined ##openfpga
00:54
emily_ has quit [Client Quit]
00:55
swedishhat[m] has quit [*.net *.split]
00:55
scream has quit [*.net *.split]
00:55
X-Scale has quit [*.net *.split]
00:55
Thorn has quit [*.net *.split]
00:55
oeuf has quit [*.net *.split]
00:55
wpwrak has quit [*.net *.split]
00:55
lexano has quit [*.net *.split]
00:55
implr has quit [*.net *.split]
00:55
horizon has quit [*.net *.split]
00:55
Lord_Nightmare has quit [*.net *.split]
00:55
duck2 has quit [*.net *.split]
00:55
bsilvereagle has quit [*.net *.split]
00:55
sgstair has quit [*.net *.split]
00:55
linzhi-sonia has quit [*.net *.split]
22:06
_whitelogger has joined ##openfpga
22:30
Bike has joined ##openfpga
22:44
pie_ has quit [Ping timeout: 250 seconds]
22:49
Asu` has quit [Quit: Konversation terminated!]
23:16
emeb has quit [Quit: Leaving.]
23:19
<
ZirconiumX >
Reposting from #yosys:
23:19
<
ZirconiumX >
What's the difference between `always @(*) A = B;` and `assign A = B;`?
23:20
<
whitequark >
there is
23:20
<
cr1901_modern >
Prob some stupid simulation difference that requires you to read the spec
23:20
<
TD-Linux >
now I hate verilog again
23:20
<
whitequark >
delta cycles
23:21
<
whitequark >
hell if i remember which way it actually goes
23:21
<
ZirconiumX >
And this is why I asked in a channel with WQ in it
23:23
<
whitequark >
i mean, besides that,
23:23
<
whitequark >
in the first case A must be a reg and in the second case A must be a wire
23:25
<
ZirconiumX >
It was raised by me looking at some code by pepijndevos and going "shouldn't that use `assign` instead of `always @(*)`?"
23:25
<
whitequark >
i'm trying to figure out exactly what the difference between continuous assignmetn and procedural continuous assignment is and my conclusion is that verilog is bad
23:26
<
whitequark >
ohhh oh yeah
23:26
<
whitequark >
ZirconiumX: let's say you write `assign A = 0;`. this works.
23:26
<
whitequark >
let's say you write `always @(*) A = 0;`. this doesn't do anything at all.
23:28
<
ZirconiumX >
So if the RHS is a constant don't ever use `always @(*)`?
23:29
<
ZirconiumX >
This is the diff that raised the question for me
23:29
<
whitequark >
ZirconiumX: yes if the RHS is a constant always @(*) will not work
23:29
<
whitequark >
nmigen emits a workaround for this case
23:29
<
whitequark >
you can add a `reg x; always @(*) begin ... x = x; end`
23:30
<
whitequark >
does abslutely nothing except for tricking the verilog simulators into not being braindead
23:30
<
ZirconiumX >
(* keep *) reg mycarry; always @(*) mycarry = DUT.carry;
23:30
<
whitequark >
that's probably fine
23:30
<
ZirconiumX >
And I was wondering if here "assign" would be okay
23:30
<
whitequark >
in this case i think it doesn't make any difference
23:31
azonenberg_work has quit [Ping timeout: 268 seconds]
23:32
<
whitequark >
interesting
23:33
<
ZirconiumX >
I thought Power had a reputation for being power hungry? Though I don't see how much the ISA design could feed into that.
23:33
* ZirconiumX
is uninformed, having not kept up with PowerPC since their iMac G3 died
23:33
<
kc8apf >
IBM is good at making power-hungry monsters
23:34
<
kc8apf >
Freescale e500v2 is pretty light on power though
23:35
<
TD-Linux >
power8 and power9 are actually pretty ok power consumtion wise
23:35
<
TD-Linux >
my talos II is super quiet while idling
23:35
<
TD-Linux >
probably not good enough for a laptop
23:36
<
ZirconiumX >
Don't they have the Forza chips which are heavily cut down from the Big Iron?
23:36
<
emily >
i'm always skeptical of people who refer to random big workstations as "super quiet"/"practically silent"/...
23:36
<
Zorix >
talos workstation is damn near unaffordable
23:36
<
TD-Linux >
emily, I'm super paranoid about it and it is
23:36
<
emily >
there was a lobste.rs thread about the talos II and the floodgap fanboy guy was like "it's way quieter than my Quad G5!!"
23:36
<
TD-Linux >
Zorix, yeah. they are doing cheaper mobos now though
23:36
<
TD-Linux >
Blackbird is almost affordable
23:36
pie_ has joined ##openfpga
23:36
<
Zorix >
i keep an eye on them
23:37
<
Zorix >
power and riscv are going places
23:37
<
emily >
it still seems less interesting than both risc-v and arm64 to me
23:37
<
emily >
i guess more relevant now that it's actually properly open
23:37
<
emily >
but like, not exactly a ton of ppc64 jits out there
23:37
<
emily >
so how much do you even get from having an "existing" architecture
23:38
<
TD-Linux >
a lot. risc-v compilers suck
23:39
<
TD-Linux >
and its single threaded perf is still >> arm64
23:39
<
TD-Linux >
I think risc-v will eventually eclipse it though
23:39
<
TD-Linux >
pretty obvious why they open sourced the isa
23:39
<
kc8apf >
there are quite a few ppc64 JITs
23:40
<
ZirconiumX >
ARM themselves don't seem to be fighting the server market; the ARM ISA chips seem to be custom companies with a lot invested in them
23:40
<
emily >
i mean yeah, i meant in that like, risc-v seems like it'd win long-term and arm64 seems like the more reasonable compromise option for now
23:40
<
ZirconiumX >
Falkor sounded interesting but apparently was quickly axed and written off
23:40
<
emily >
I wonder how power9 compares to the server arm chips performance-wise
23:40
<
kc8apf >
arm64 has a messy firmware story
23:40
<
emily >
isn't even risc-v acpi/uefi bullshit now
23:41
<
TD-Linux >
risc-v messed up a tad there I think
23:41
<
ZirconiumX >
PE format on RISC-V
23:41
<
TD-Linux >
power9 has the best ever firmware
23:41
* ZirconiumX
shudders
23:41
<
kc8apf >
there's a particular person at RedHat that keeps pushing things toward EFI
23:41
<
emily >
what's power9's firmware like? I don't actually know
23:41
<
TD-Linux >
it uses petitboot
23:41
<
emily >
but I like openfirmware
23:41
<
TD-Linux >
aka it just boots linux from a spi flash
23:41
<
TD-Linux >
and then you get a menu to kexec() whatever kernel
23:41
<
TD-Linux >
so it can boot off any filesystem linux can read
23:42
<
emily >
while it's true that most firmware and bootloaders are more cursed than linux i have Feelings about everyone just deciding that the solution is to put linux in everything
23:42
<
emily >
it sure is practical though I guess
23:42
<
TD-Linux >
I mean you can kexec() bsd or whatever
23:42
<
kc8apf >
everything is open for p9; even the "backstage cast" of processors that just manage the chip
23:43
<
ZirconiumX >
That's the "open" part of OpenPOWER
23:43
<
kc8apf >
OpenPOWER has changed quite a bit over time in terms of what is actually open
23:43
<
ZirconiumX >
I realised they opened the actual ISA now
23:45
<
emily >
TD-Linux: yeah i know. but i still don't super enjoy the idea of millions of lines of linux kernel code being your firmware root of trust
23:45
<
emily >
seL4 bootloader pls
23:45
<
ZirconiumX >
Also I think IBM did try to build low-power chips (see the Nintendo consoles between the GCN and Wii U)
23:46
<
ZirconiumX >
But they're based on the G3 I think
23:46
<
TD-Linux >
you could flash anything else on the spi chip I guess
23:46
<
kc8apf >
ZirconiumX: they'll make them if you promise to buy them
23:47
<
ZirconiumX >
Still, it seemed like they were less innovating and more die-shrinking an old architecture
23:47
<
ZirconiumX >
Not that they're the first to do that though.
23:48
<
kc8apf >
around 2009, they took a huge u-turn from POWER4 and built an in-order processor for game consoles
23:48
<
TD-Linux >
sux that that power core is in vhdl
23:48
<
kc8apf >
it wasn't until POWER7(?) that they went back to a big, ooo design
23:48
<
TD-Linux >
want to try vhd2vl'ing it a bit
23:49
<
ZirconiumX >
kc8apf: I think the PPE was an in-order G5
23:49
<
ZirconiumX >
And it Sucked.
23:49
<
kc8apf >
in-order and G5 don't go together
23:50
<
kc8apf >
G5 was POWER4 w/ Altivec
23:50
<
kc8apf >
POWER5 / Cell was a whole separate thing
23:50
<
ZirconiumX >
They needed the die space for the SPEs
23:51
<
ZirconiumX >
So they threw away the OOE capabilities of the G5
23:51
<
kc8apf >
no, quite the opposite
23:51
<
zignig >
kc8apf: wasn't the PS3 running Cell?
23:51
<
kc8apf >
they decided to make an in-order processor and those SPEs on to make it fast
23:51
<
kc8apf >
it was very much targeted to Sony's whims
23:52
<
TD-Linux >
very early on the SPEs were supposed to do graphics too
23:52
<
kc8apf >
Apple evaluated it and realized it would suck
23:52
<
kc8apf >
macOS on x86 started for real shortly after
23:52
<
ZirconiumX >
It kind of makes sense if you look at the philosophy of the PS2
23:53
<
TD-Linux >
^ literally typing that
23:53
<
TD-Linux >
they had an extra couple of mips cores that worked basically as a vertex shader
23:53
<
ZirconiumX >
They're not MIPS
23:53
<
TD-Linux >
so they looked at that and thought "more"
23:53
<
ZirconiumX >
Actually a 2-way VLIW
23:54
<
ZirconiumX >
So MIPSish if you throw away most of the things that made it MIPS
23:54
<
TD-Linux >
I just looked it up
23:55
<
TD-Linux >
dunno why I thought they were mips
23:55
<
ZirconiumX >
Because the main processor
*is* MIPS
23:55
<
TD-Linux >
but yeah I guess that makes them even more SPU like
23:55
<
ZirconiumX >
Though what revision of MIPS? Nobody knows.
23:56
<
ZirconiumX >
The R5900 is a bit horrifying.
23:56
<
ZirconiumX >
Well-intentioned, but horrifying.
23:56
<
ZirconiumX >
TD-Linux: how do you like your IEEE 754 FPU?
23:58
<
ZirconiumX >
Because they didn't include one.
23:58
<
whitequark >
lol mips
23:59
<
ZirconiumX >
Anyway, it's 1am. I won't bore you all with the details of a chip I have spent entirely too much time obsessing over.