lekernel changed the topic of #m-labs to: Mixxeo, Migen, MiSoC & other M-Labs projects :: fka #milkymist :: Logs http://irclog.whitequark.org/m-labs
jaeckel has quit [Remote host closed the connection]
antgreen has joined #m-labs
lekernel has joined #m-labs
popo has joined #m-labs
<popo>
hi anyone here?
qwebirc88278 has joined #m-labs
<popo>
hallo
<qwebirc88278>
hi
popo` has joined #m-labs
popo has quit [Ping timeout: 240 seconds]
qwebirc88278 has quit [Ping timeout: 272 seconds]
<lekernel>
hi popo`
_florent_ has joined #m-labs
<_florent_>
Hi ex-milkymisters :)
<_florent_>
I'm just trying to catch up with the last migen/misoc changes
<_florent_>
and was wondering:
<_florent_>
will you be ok to integrate some "unofficial" ports in MiSoC?
<_florent_>
I'm thinking of the de0-nano port in a first time
<_florent_>
or do you prefer that the "unofficials" ports live outside of MiSoC?
<_florent_>
The good thing I see with the de0-nano port is that is demonstrates the use of the altera toolchain
<_florent_>
and will only need the c4sdrphy to be added to MiSoC
<_florent_>
BTW does the LX9 port dissapeared? I don't see it in MiSoC and I'm not able to find the lx9 port on Robert's Github?
<lekernel>
yes, we can have the de0-nano port in misoc, but it needs to work and keep working :)
<_florent_>
yes of course I will do the work needed to integrate it correctly
<_florent_>
and maintain it
<_florent_>
It's basically only the "simple" SoC plus the c4sdrphy
<_florent_>
I'll work on it and let you now it's ready
<_florent_>
I'm also thinking of re-trying the Vivado support I've made some time ago for the KC705 port
<_florent_>
(Vivado was not able to finish the P&R the last time I tried)
<_florent_>
Are you interested by the Vivado port?
<lekernel>
did you clean up the KC705 DDR3 PHY?
<_florent_>
no, for now it's not cleaned up, but I will that soon and try to integrate it in MiSoC in case you want to integrate it
<_florent_>
will do that
<lekernel>
what I mean by "cleaned up" is do the read/write leveling properly
<lekernel>
I doubt your solution is stable across PVT
<lekernel>
I had a look at DDR3 datasheets, and the timing numbers don't check out
<_florent_>
I will maybe also try the other solution (with the trick on the controller and without read-leveling)
<lekernel>
"read leveling" is use DQS :) DDR3 has a comparatively large tolerance on the clock-to-DQS timing
<lekernel>
if you sample data with the clock, like you can do with previous DDR generations, you can only use it reliably at DDR/DDR2 performance levels, maybe worse
<lekernel>
and you should not use fully asynchronous FIFOs clocked by DQS, as those introduce a large and unpredictable latency. you should write the FIFO with DQS and read it with the clock in the cycle that will sample the correct data and not cause setup/hold violations in the worst case (slowest) DQS arrival time
<lekernel>
(that cycle is fixed after the issue of a read command to the DDR3)
<_florent_>
ok thanks for the informations
<_florent_>
I really want to try this solution
<_florent_>
the thing is with DDR, you know when you start, but you really don't know when you'll have something that works :)
<lekernel>
the "trick" in the controller is to issue a dummy read command (i.e. repeat it) when there is a bubble, in order to flush data out of the IDDR2 and into the FIFO
<_florent_>
and you don't have anything the see what is going wrong (except if you work for big compagnies :()
<lekernel>
alternative is not to use the IDDR2 and design a soft dual-edge-clocked FIFO, but it sounds much more difficult, less portable, easier to get wrong, and possibly slower
<_florent_>
it will probably be easier to use the IDDR2 in a first time since detecting bubble should be relatively easy
<lekernel>
yes. soft async logic in FPGAs is a lot of pain: the routing has a lot of skew and the software tools aren't made for that (nor the FPGA architecture). plus you want that to be fast ...
<_florent_>
yes that's why they added in_fifo / out_fifo / phasers but since it is not documented, it's maybe even easier to use soft async logic ;)
<lekernel>
the xilinx design is horrible, don't touch it
<_florent_>
thanks for the warning but I was not going to touch it :)I'm not going to touch it
<_florent_>
oops
_franck_web_ has joined #m-labs
antgreen has quit [Ping timeout: 245 seconds]
_florent_ has quit [Ping timeout: 272 seconds]
lekernel has quit [Ping timeout: 250 seconds]
aeris has quit [Quit: en a pas]
aeris has joined #m-labs
lekernel has joined #m-labs
lekernel has quit [Remote host closed the connection]
lekernel has joined #m-labs
antgreen has joined #m-labs
antgreen has quit [*.net *.split]
antgreen has joined #m-labs
antgreen has quit [*.net *.split]
antgreen has joined #m-labs
_franck_web_ has quit [Quit: Page closed]
antgreen has quit [*.net *.split]
antgreen has joined #m-labs
<azonenberg>
lekernel: Xilinx apparently doesnt like documenting any of their memory interface hard IP
<azonenberg>
They seem to assume you'll use MIG if you use memory at all
<azonenberg>
or should i say, they're pushing MIG
<lekernel>
...and its non-portability :)
<azonenberg>
Indeed
<lekernel>
plus horrid interface etc.
<lekernel>
(GUI)
popo` has quit [Ping timeout: 252 seconds]
antgreen has quit [Read error: Operation timed out]
antgreen has joined #m-labs
xiangfu has quit [Ping timeout: 246 seconds]
xiangfu has joined #m-labs
jaeckel has joined #m-labs
jaeckel has quit [Changing host]
jaeckel has joined #m-labs
jaeckel has quit [Excess Flood]
jaeckel has joined #m-labs
jaeckel has quit [Excess Flood]
jaeckel has joined #m-labs
[florian] has joined #m-labs
antgreen has quit [Ping timeout: 264 seconds]
antgreen has joined #m-labs
antgreen has quit [Ping timeout: 265 seconds]
lekernel has quit [Quit: Leaving]
kristianpaul has quit [Remote host closed the connection]