jfcaron has quit [Remote host closed the connection]
cr1901_modern has quit [Quit: Leaving.]
Degi has quit [Ping timeout: 240 seconds]
Degi has joined ##openfpga
cr1901_modern has joined ##openfpga
mumptai_ has joined ##openfpga
mumptai has quit [Ping timeout: 246 seconds]
genii has quit [Quit: See you soon.]
rektide has quit [Remote host closed the connection]
Bike has quit [Quit: leaving]
m4ssi has joined ##openfpga
emeb_mac has quit [Quit: Leaving.]
hitomi2500 has joined ##openfpga
Maya-sama is now known as Miyu
OmniMancer has joined ##openfpga
jhol` has joined ##openfpga
eddyb has quit [*.net *.split]
jhol has quit [*.net *.split]
filt3r has quit [*.net *.split]
parport0 has quit [Ping timeout: 264 seconds]
parport0 has joined ##openfpga
filt3r has joined ##openfpga
eddyb has joined ##openfpga
Asu has joined ##openfpga
mkru has joined ##openfpga
Miyu is now known as hackkitten
maciejjo has quit [Remote host closed the connection]
Bike has joined ##openfpga
m4ssi has quit [Remote host closed the connection]
maciejjo has joined ##openfpga
mkru has quit [Quit: Leaving]
Asu has quit [Quit: Konversation terminated!]
Asu has joined ##openfpga
genii has joined ##openfpga
jaseg has joined ##openfpga
X-Scale` has joined ##openfpga
X-Scale has quit [Ping timeout: 264 seconds]
X-Scale` is now known as X-Scale
<mithro> https://github.com/BrunoLevy/learn-fpga -- RV32 on an icestick!
hitomi2500 has quit [Quit: Nettalk6 - www.ntalk.de]
mumptai_ has quit [Read error: Connection reset by peer]
mumptai_ has joined ##openfpga
emeb has joined ##openfpga
jaseg has quit [Ping timeout: 246 seconds]
jaseg has joined ##openfpga
parport0 has quit [Ping timeout: 258 seconds]
OmniMancer has quit [Quit: Leaving.]
parport0 has joined ##openfpga
parport0 has quit [Ping timeout: 256 seconds]
lopsided98 has quit [Remote host closed the connection]
lopsided98 has joined ##openfpga
jfcaron_ has joined ##openfpga
kmehall_ has quit [Remote host closed the connection]
kmehall has joined ##openfpga
parport0 has joined ##openfpga
<emeb> More interesting things in the tale of the SB_I2C core - using the first core (address 7:4 = 0001) I had SDA and SCL routed to pins 45/47 of the sg48 package and any time I put a load on the SCL pin (even just a 10:1 scope probe) the outputs would get trashed. SCL would not stop running and SDA data was garbled. With unloaded SCL the SDA data looked right.
<emeb> Seemed like there was some sort of timing issue on SCL, so for grins I relocated the outputs to pins 21/19. Now loading the SCL pin doesn't cause problems.
<emeb> So the lesson here is that the SB_I2C core seems to rely on the SCL signal feedback for some of its internal timing and if the routing delay isn't what it expects then you'll get bizarre behavior.
<tnt> Note that all timing info is missing for SB_I2C (among other).
<whitequark> wtf
<tnt> No one bothered to extract it and fill it in icestorm ...
<tnt> and to support clock stretching I would expect the core to have to look at the SCL state indeed.
<emeb> FWIW I've got clock stretching disabled in the control reg.
<tnt> and you instanciated the SB_IO ?
<emeb> Ys
<emeb> yes
<tnt> weird ... I mean, a 10:1 probe shouldn't even change the state of the pin.
parport0 has quit [Ping timeout: 256 seconds]
<emeb> exactly - just changes the slew rate slightly
<whitequark> so many bugs in i2c cores
<tnt> Wait ... 45/47, aren't those the RGB outputs ?
<emeb> no - those are 39/40/41
<tnt> Oh ok, sorry, bad memory on my part.
<daveshah> There are supposed to be some dedicated connections between the I2C core and some pins in silicon
<daveshah> They are never used by icecube, so not in icestorm/nextpnr either
<daveshah> This is apparently because they forgot a level shifter
<emeb> interesting. ISTR that the Ultra parts had a special I2C deglitcher core too.
<emeb> but not the Ultra Plus
<daveshah> so would result in damage if used (apparently only if the I2C pullup resistor was on the strong side but idk if this is true from my knowledge of the IO structure)
<emeb> oh fun!
<daveshah> the source for this is not the most reliable person in the world, and probably the story came through a couple of FAEs
<daveshah> so I wouldn't guarantee it's accuracy
<emeb> there are many stories.
<daveshah> but it is definitely true that there is some evidence of dedicated I2C pin routing, that is never used by icecube, based on some of the config bits names
<emeb> need to get Ken Shirriff to do some RE on the die to find out where it goes.
<daveshah> cbit2usealt_in_0 and 1 in some IO tiles - seems like the fabric route is considered the "alternate" route compared to the broken hard route
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
<tnt> Still waiting for die shots ... there was some teaser on twitter but never saw the full highres set.
parport0 has joined ##openfpga
<ross_s> Does anyone have some tricks for getting around annoying sizing rules for localparam/parameter values? I have code that resembles the following, and generates a width warning: https://gist.github.com/rschlaikjer/f2095e6d90f37c29c566a3f0bbf70161
<ross_s> My assumption is that the localparam is sized to the width of the largest arg, instead of the resultant value
<ross_s> so using it for comparisons against registers sized using the clog2 of its value is a warning
<ross_s> which is somewhat irritating
<daveshah> imo, requiring two sides of < to be the same width is overly fussy in the first place
<ross_s> I agree, but verilator is quite fussy about it
parport0 has quit [Ping timeout: 264 seconds]
<ross_s> I suppose I can do this
<tnt> ross_s: the way I avoid that is to not use '<' :p instead I init the register to PRESCALER, then decrement it until the MSB overflow and that's the 'tick' output of your prescaler.
<ross_s> `define SZPARAM(v) ($clog2(v)'(v))
<ross_s> localparam PRESCALER = `SZPARAM(`CLOCK_PRIMARY_HZ / 50);
<ross_s> hmm, yeah counting down is a good way to get around it. I suppose I could invert the output compare logic and do that.
indy has quit [Read error: Connection reset by peer]
parport0 has joined ##openfpga
<emeb> OK - with pins moved and an I2C device on the bus I can now see proper transactions and ACK/NACK behavior from the target. I2C driver code is not detecting the NACK condition though, so need to see what I'm missing there...
hackkitten has quit [Read error: Connection reset by peer]
hackkitten has joined ##openfpga
parport0 has quit [Ping timeout: 260 seconds]
<emeb> working fine now - just a different combination of status bits to look for.
<emeb> here's the code for my I2C tests -> https://github.com/emeb/up5k_riscv
indy has joined ##openfpga
parport0 has joined ##openfpga
parport0 has quit [Ping timeout: 258 seconds]
parport0 has joined ##openfpga
m4ssi has joined ##openfpga
finsternis has joined ##openfpga
emeb_mac has joined ##openfpga
parport0 has quit [Ping timeout: 265 seconds]
jfcaron_ has quit [Ping timeout: 265 seconds]
<awygle> daveshah is this the ecp6 or do we still expect one more release this year?
<daveshah> This is just a CrossLink NX with a different bondout
<awygle> Interesting
<daveshah> It might be a kinda iCE40 sucessor, particularly the -17 part
* awygle waits with bated breath for pricing
<daveshah> I think there is still an ECP6 to come but maybe not soon
<daveshah> They said another Nexus part in H2 2020, but who knows what that will be
parport0 has joined ##openfpga
<TD-Linux> yeah the range of cells is identical to crosslink nx
<TD-Linux> looks like a cheaper version. only thing I see missing is MIPI
<daveshah> Yes, they bonded out a bit more IO and skipped the MIPI
<awygle> I have absolutely no need for mipi so I'm all for that
<daveshah> Eval board is not cheap
<daveshah> But pretty populated too
<q3k> daveshah: ouch.
<TD-Linux> better be a pcie card at that price
<tnt> The versa are never really cheap are they.
<awygle> There's usually a versa and an eval card
<daveshah> It's similar pricing to the ECP5 versa
<TD-Linux> why did they decide to add a camera to the eval board of the part that dropped MIPI
<q3k> i see latticesemi.com is holding on to their commodore 64 server on the other side of a flooded DSL line
<tnt> The IOs can still do softmipi I think.
<daveshah> Yep
<q3k> that is a dense board indeed
<TD-Linux> ooh two cameras actually. so I can take wide and narrow shots of the bottom of my pc case
<daveshah> One of the camerae is parallel too
<tnt> TD-Linux: lol
<q3k> what's with the fuckton of power supplies, though?
<q3k> they broke out every i/o bank separately or what
<TD-Linux> kind of ot but I love thoseo smt fuse holders and am going to add it to one of my boards at some point
<daveshah> q3k: I think someone here looked the IP up and it was a fairly low end shared hosting company
<daveshah> I guess the power supplies are mostly for the cameras
parport0 has quit [Ping timeout: 258 seconds]
<daveshah> Each one might need 3 rails and they maybe decided to separate them or something
<q3k> but still, it's like what, 10 ldos, 6 dcdcs?
<TD-Linux> q3k, don't worry the lt3508 is a mere $9 a pop
<daveshah> Looks like 4 LDOs just for the camera
<q3k> how quaint
<daveshah> Lots of rails for transceivers and ADCs
<q3k> oh yeah there's even LEDs
<q3k> 3 rails to the fpga, everything else is fluff
<q3k> anyawy, i'll wait for a cheaper board :P
<q3k> this is going to be using the new lattice suite, right? radiant?
<daveshah> Seems like they have separated all the internal rails too
<daveshah> Like ECLK, PLL, AUX
<daveshah> Looks more like silicon bringup stuff than an actual board to he sold tbh
<TD-Linux> the whole section of "MAIN DC POWER" lights feels incomplete without a large knife switch
<daveshah> Yeah Radiant
<daveshah> Looks a bit like D48 was ripped off
<daveshah> But probably just the way the paste flowed
<TD-Linux> at least desoldered given those voids
<TD-Linux> arguably there's little point to them making an evn version because you can just use the crosslink-nx evn
<daveshah> Yeah
<daveshah> It would be nice to see a cheapo board with the -17
<daveshah> Particularly as that one is very RAM generous
<daveshah> 2.56Mb of LRAM
<daveshah> well that was easy :)
parport0 has joined ##openfpga
parport0 has quit [Ping timeout: 240 seconds]
<daveshah> play compare the tilegrid!
<TD-Linux> press release based reverse engineering, 10/10
<emeb> More SB_I2C fun - trying to get slave mode working. The documentation of the SADDR reg is horrible.
<emeb> of the 7-bit bus address, the docs imply only bits 6-2 are used.
parport0 has joined ##openfpga
<emeb> looks like a copypasta error from FIFO mode - just chopped the bottom 2 bits off.
<daveshah> Yeah some of them are hardcoded iirc
<emeb> Oh - so there are some addresses that are unusable then.
<emeb> any idea what the hardcoded values are?
<daveshah> 01 and 10 for the LSBs
<daveshah> based on a quick skim of the docs
<daveshah> It depends on the physical location
<daveshah> idk if nextpnr actually implements this properly
parport0 has quit [Ping timeout: 258 seconds]
<emeb> OK thx. I'll try all combos
m4ssi has quit [Remote host closed the connection]
parport0 has joined ##openfpga
<emeb> Seems like the fixed bits are behaving as expected. slave RX not very reliable, but it's working sometimes.
<daveshah> I have absolutely no idea why Lattice thought fixing some address bits was a good idea
<emeb> It's pretty silly. Makes these ports a lot harder to use.
<emeb> I'm trying to make an emulator for another device with a fixed address and that means I can't use one of the cores for this application.
<daveshah> At least you can use one of them
<emeb> yeah
<daveshah> There's a 50/50 chance neither work
<daveshah> And emulating an existing device must be a fairly common use case for a small glue FPGA
parport0 has quit [Ping timeout: 260 seconds]
<emeb> exactly
<awygle> Oh wow I didn't realize that prjoxide was a) that much of a going concern or b) written in Rust lol
<awygle> Is this your first major rust project dave? If so, how do you like it?
<daveshah> I guess similar thoughts to a lot of people, some things are nice, some are a bit annoying
<awygle> Well sure but that's just, like, life, yknow?
<awygle> Anything in particular?
<agg> ugh, why does the ecp5 12/25f bond out different pins than the 45f in the same package on a handful of pins...
Asu has quit [Ping timeout: 265 seconds]
emeb has quit [Quit: Leaving.]
Maylay has quit [Ping timeout: 240 seconds]
Maylay has joined ##openfpga
<mithro> I just got a nice email from Xilinx -- "The request for the Xilinx Unisim Library to be published as open source has been hosted on GitHub with the Apache 2.0 license here: https://github.com/Xilinx/XilinxUnisimLibrary -- The repo is marked as ‘archived’, but it obviously can be forked for further development by the community. "