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]