freeemint has quit [Remote host closed the connection]
freeemint has joined ##openfpga
mumptai has joined ##openfpga
bwidawsk has quit [Quit: Always remember, and never forget; I'll be back.]
bwidawsk has joined ##openfpga
bwidawsk has quit [Client Quit]
bwidawsk has joined ##openfpga
fibnot is now known as fibxor
freeemint has quit [Ping timeout: 246 seconds]
m4ssi has quit [Remote host closed the connection]
freeemint has joined ##openfpga
freeemint has quit [Ping timeout: 245 seconds]
freeemint has joined ##openfpga
rombik_su has joined ##openfpga
tmeissner has joined ##openfpga
freeemint has quit [Remote host closed the connection]
freeemint has joined ##openfpga
<tnt>
Damn, the ice40 io primitives are so much more readable than the ecp5. Like ... OFS1P3DX good luck intuitively knowing what this does :p
<daveshah>
I believe the naming scheme comes from AT&T originally
<daveshah>
Same as the FFs
<daveshah>
nextpnr support isn't finished for them yet (did the fuzzing a couple of weeks ago)
<daveshah>
But I think there should be an attribute to pack normal FFs to IO too
<tnt>
Oh, I guess I'm lucky I haven't had issues so far then.
<daveshah>
tbf, Diamond converts them to regular FFs half the time anyway
<daveshah>
Even when I think the hardware should be able to pack them
<tnt>
yeah, an attribute would be nice. But it should then _error_ out if the packing fails.
<tnt>
because my io timing would be screwed up otherwise ...
<daveshah>
Yes
<tnt>
Do you know how USRMCLK works wrt to that btw ? Can I use a OFS1P3DX ? Or am I stuck with a fabric FF and hope it works out ?
<mwk>
hmm, what's the deal with not packing flops to IO by default, anyway?
<mwk>
xilinx wnats you to use a special option/attribute to even consider that
<mwk>
is there some disadvantage?
<tnt>
could be harder to meet timing for the flop since it's "further away".
<tnt>
Also, for instance on the ice40, clock is shared inside an IO tile, so which one do you pick if you use a different clock ?
<tnt>
In general the IO regs are so differents, I'm really not a fan of the tool taking decisions for me. Either it's a path that's critical and the designer should actually pay attention to it and see what's the best course of action. Or it's a path that doesn't matter and then it can stay in the fabric ...
<daveshah>
tnt: no IO flip flops with USRMCLK
<tnt>
daveshah: that's what I feared.
<daveshah>
It doesn't have any kind of IOLOGIC attached
<daveshah>
Even more annoying is it means no using a DDR block to create a clock
<rombik_su>
I guess that depends on specified input/output delay. FF in IOB have fixed path so it's will meet your timing specs or not, but in case when FF in fabric, software can push FF around to accomodate for i.e. larger input delays.
<tnt>
rombik_su: I haven't tried on vivado, but ISE sure didn't try to change the internal FF location to meed the io delays ... it just placed, then checked the constraints. So the only way was to make sure you used the IO regs and appropriate phased clocks or whatever to meet your needs.
<tnt>
daveshah: yeah, I feel like you're better off connecting a gpio to the spi clock if you intend to use the flash non-trivially.
<rombik_su>
tnt: I was playing with input timing in Vivado recently, it felt like it can do this with input FFs placed in fabric.
AndrevS has joined ##openfpga
AndrevS has quit [Remote host closed the connection]
<tnt>
interesting. Although, I'm not sure I'd consider that really good practice anyway. IDELAY seems like a much better idea.
<tnt>
But heh, sometimes you have no choice and if the tool can handle it, nice.
<rombik_su>
I think, using IDELAY makes more sense when you using IDDR/ISERDES/IOB FF/etc, because it max out at IIRC ~1.5ns (on 7-series) and you can pick up another 1-2 ns jumping from IOBs to fabric endpoint.
<rombik_su>
Vivado is advertised to be timing-aware from top to bottom, so... But I would like to be corrected by Vivado experts on this one.
Asu` has joined ##openfpga
Asu has quit [Ping timeout: 250 seconds]
emeb_mac has joined ##openfpga
mumptai has quit [Quit: Verlassend]
rombik_su has quit [Read error: Connection reset by peer]