#milkymist IRC log for Sunday, 2013-05-12

lekernelso next MM board will likely have the JTAG/serial builtin. wpwrak will be happy ;)10:15
lekerneland less slow -3 speed grade FPGA10:15
Fallenoulekernel: Do you know how do they manage to do different speed grades?11:30
Fallenouthey use different cell tecnologies?11:30
Fallenou12:15 < lekernel> and less slow -3 speed grade FPGA < you mean with a kintex-7 ? or a Spartan-6 with a better speed grade? ( is -1 better than -3 for S6?)11:48
Fallenouhttp://forums.xilinx.com/t5/CPLDs/Speed-Grade/td-p/3052 <= here, "barriet" says that for "modern FPGAs" (post Virtex) the higher the speed grade is, the faster the fpga is11:49
lekernelspeed binning I guess11:54
lekerneleverything using modern semiconductor processes has wide process/voltage/temperature variation11:55
Fallenouoh, ok, so they design with the "fastest" goal in mind11:56
Fallenouand then they attribute "lower" speed grades to the one not capable of reaching that goal after testing11:56
Fallenoubecause of manufacture problems11:56
lekernelthe slowtan6 philosophy is generally to dump this mess on the user, e.g. the programmable IO input delays have a "maximum" delay, and then "the minumum delay is typically 1/3 the maximum delay" - deal with that11:56
Fallenouahah :)11:57
lekernelor the high speed IO terminations are specified between ~10 ohm and ~50 ohm - I wonder if anyone can actually use that...11:58
lekernellet me get the actual number...11:59
Fallenouhow can anyone use that for driving something efficiently without too much noise11:59
lekernelah, it's 22/55. a bit less bad, but still bad11:59
Fallenouis there a trick to detect dynamically the impedance of the I/O and then adapt to it?12:00
lekernelfor the input, and 11/52 for the output :-)12:00
lekernelserious chips have an external calibration resistor12:00
FallenouI know that for instance for our bluetooth modules, we put low quality capa/resistance in the RF stage12:01
lekerneleg. DDR3 memories have a RZQ pin for that12:01
Fallenouand then we have a "production calibration bench"12:01
lekerneland xilinx doesn't have the cost excuse, DDR3 is cheap12:01
Fallenouwhich calibrates the bluetooth chip writting into registers12:01
Fallenouand then save the best values to the flash nand12:01
Fallenouso each bluetooth module we sell basically have different C/R values for RF stage but it's compensated inside the BT chip12:02
Fallenouby uniq calibration values12:02
lekernelthat works against the process variation... but temperature and voltage can also cause changes12:02
Fallenouwell, if you have automotives chips, that should not be a problem12:03
Fallenouchips should handle temperature issues in a big range12:03
Fallenouand then if you have regulators .. (automotive ones) then it should be ok12:03
Fallenouit may not be perfect but you should have very less surprises than when using "non automotive AEC-Q100" parts12:04
lekernelDDR3 can even change its terminations in a couple nanoseconds :) http://www.micron.com/~/media/Documents/Products/Technical%20Note/DRAM/TN4104.pdf12:06
Fallenounice :)12:06
lekernelxilinx? 15 minutes with the ISE software. hahaha12:07
Fallenouyou can pre-generate several bitstreams and put them to nand and re-configure on-the-fly when needed :)12:07
Fallenouthen you can maybe switch in 1 sec12:07
lekernelyes, you can just retransmit the IO frame. but xilinx does not tell you that, and there also might be glitches.12:08
lekernelyay, got both channels to work at the same time by inserting 24 ohm resistors12:28
lekernelgot mixing to work now12:28
lekernelafter two days of constant ISE breakage12:28
Action: lekernel cleans his desk a bit for the photo12:29
Fallenoumaybe you can take a video while you change the mix ratio between two sources12:31
lekernelhaven't connected the controls yet... shouldn't be a problem, though I know anything can happen now12:37
lekernelI also suspect crosstalk between SDRAM and the extension board traces (causes some noise on the picture)... will investigate12:38
lekernelit seems the more I read from the DRAM, the more noise12:39
lekernelI was thinking about the usual horde of gateware and/or ISE bugs, but this seems to be a consistent pattern among several bitstream tests12:39
Fallenouit seems reasonable to think so12:40
Fallenoudo the dram traces follow the extension port traces a bit?12:40
lekerneland the first TFTP tests, which only wrote to the DRAM while the picture was being captured, did not have any noise12:40
Fallenouoh, so only read whould generate noise ... funny12:41
lekernelit could be that the DRAM chips have a faster slew rate than the FPGA IOs12:41
lekernelyou can program that by reloading the DDR mode register, will have a look at it12:41
lekernelthis whole project is really in deep bugland, lol12:42
Fallenoulooks good :)13:00
lekernelFallenou, you should send git-formatted patches instead of github pull requests13:06
lekernelthey are easier (no need to open browser and then pull again on the command line) and cleaner (no tons of merge commits) to appöy13:07
Fallenouok, I thought just clicking the button on github was easier13:08
lekernelnot when you have unpushed local changes, and you need to git-pull again to update your copy13:08
Fallenouhum ok13:09
FallenouI guess if you don't have any makefile related changes you can git stash && git pull --rebase && git stash pop13:09
Fallenoubut I don't mind sending patches :)13:09
Fallenouwill do that13:09
lekernelyeah well I'm sure there are solutions ;) but git am <email> is easier13:09
Fallenouok no problem13:09
lekernelit's ok for this one, don't resend13:10
lekerneland thanks for the patch :)13:10
Fallenouok will know for the next one13:10
Fallenouhehe you're welcome it's just very small things13:10
GitHub195[milkymist-ng] sbourdeauducq pushed 2 new commits to master: http://git.io/XohDkQ14:00
GitHub195milkymist-ng/master e35315b Sebastien Bourdeauducq: cleanup14:00
GitHub195milkymist-ng/master 534dec6 Sebastien Bourdeauducq: First video mixing working (hacky)14:00
GitHub105[migen] sbourdeauducq pushed 1 new commit to master: http://git.io/qN00IQ14:00
GitHub105migen/master 792b8fe Sebastien Bourdeauducq: bus/asmi: port sharing support14:00
lekernelah, 800x600 starts to work now ...14:14
lekernelstill lots of problems but it's not 100% noise14:15
lekernelthe 24 ohm resistors seem to help a lot14:16
lekernelreducing drive strength through the SDRAM extended mode register doesn't14:19
lekernellet's try some captures with the framebuffer off ...14:19
Fallenouincreasing drive strength adds more harmonics and then reduces energy pics?14:21
Fallenouit shares the energy between more harmonics?14:21
lekernelthe DRAM signals looked clean on the scope, but you never know ...14:23
lekernel6. Controlling Drive Strength14:23
Fallenouso less "overshoots" , or kinf od14:23
Fallenoukind of*14:23
lekerneland mostly, less high frequency components that have a more marked tendency to splatter on nearby traces14:24
Fallenounice link!14:28
lekernelthere is definitely a SDRAM READ -> DVI crosstalk problem14:29
lekernelSDRAM is DMA-written by the DVI core at all times14:29
lekernelframebuffer is only scanning (and reading the DRAM) when the software says it's on14:30
lekerneland the resolution counter is implemented in gateware and is independent of any potential DRAM write problem14:30
lekernelhmm, or it could be the VGA DAC too14:30
Fallenouyes maybe stop driving the DAC :/14:32
Fallenouto see if there are still SI issues14:32
lekernellet's try the magical S6 OUT_TERM14:35
wpwrak(jtag/serial built-in) yay ! ;-)15:13
Fallenou_larsc: why in switch_to_kernel_mode you do mv r9, r0 before restoring r0 to 0x0 ?15:57
Fallenou_it seems to be doing r9 = r9_set_by_user_space | &lm32_state15:57
Fallenou_why keeping value set by user space (or other kernel code)?15:57
Fallenou_oh no ok got it16:00
Fallenou_it does r0 | r016:00
larscr0 contains the address of the state struct at that point and we need that later in the function as well16:05
Fallenou_I just misunderstood the mv r9, r0 syntax, I thought it was doing r9 = r9 | r0 when it was doing r9 = r0 | r016:06
Fallenou_just to save &lm32_state in r9 to use it later but be able to restore r0 to 0x016:07
Fallenou_thanks ^^16:07
wpwrak(git pull) i think the "clean" approach is to pull the latest upstream, create a new branch on top of that, dump all your changes into the branch, check that it still builds, then run git request-pull on it16:46
Fallenou_I only missed the "git request-pull" part of it :)16:49
wpwrakheh :)16:54
mumptai_haha .. "The code quality standard for inclusion of HDL modules is higher than what you may be used to." (milkymist hdl guidelines)18:25
Fallenouwhere is it?18:27
lekernelfact. raspberry pi model B cannot play 640x360 video with mplayer software decoding and fbdev output (it's even worse with the X overhead)18:29
Fallenouwhich video codec?18:30
lekernelthat oh-so-cool 700MHz ARM is too slow :)18:30
Fallenouif it's some H.264 like codec that can be understood18:31
lekernelor maybe the framebuffer/SDRAM writes are - I'd expect the CPU core itself to be fast enough18:31
lekernelyou need to pay for those license keys to have hardware decoding, lol18:31
FallenouI guess mpeg-2 would be decoded fine18:32
lekernelanother good demonstration that popular != good18:32
lekernelit can talk to the M1 through the HDMI board, at least that is good :)18:33
Fallenouat least raspberry is not racist against open source hardware :)18:36
wpwrak(popular != good) if you need something to sink the argument for good: hitler was kinda popular ... ;-)18:47
lekernelhm, so the crosstalk is coming from the SDRAM reads. problems are still there when not driving the VGA DAC (and still disappear when stopping the framebuffer scan)18:58
Fallenouwpwrak: you just won a godwin point! http://www.outoftherecord.fr/wp-content/uploads/2012/08/godwin-a4957.jpg19:37
Fallenouyou can cut it from your screen :)19:37
wpwrakkewl ! :)19:38
GitHub162[milkymist-ng] sbourdeauducq pushed 1 new commit to master: http://git.io/RypiLA19:48
GitHub162milkymist-ng/master bb73558 Sebastien Bourdeauducq: software/videomixer: framebuffer enable/disable19:48
lekernelOther operating systems include the cost of the various codecs within the price of the operating system. In the case of Linux distributions, free versions of media encoders and decoders are used instead. But hang on  the Raspberry Pi runs a Linux distribution, so why isnt the MPEG-2 codec free?19:57
lekernelThe answer is simple. The Raspberry Pi is designed to be used for education, and while there are many who enjoy its multimedia capabilities, the developers decided to remove MPEG-2 in order to keep costs down. If you want to use MPEG-2, it is there for you to unlock for a small fee19:57
lekernelthis is so hilarious19:57
lekerneloh, it gets even better:19:58
lekernelCould I Try a Hacked Codec? [...] The sale of the codec raises money so that the non-profit Raspberry Pi Foundation can work towards its altruistic aims. So dont go ripping off a codec that costs less than a bottle of beer  pay for it, and help change the world!19:58
lekernelok, so what else can I use that has a good framerate on the rpi? otherwise I'm sure some people would assume it's the M1 that is slow =]19:59
Fallenouyou want to mix output of 2 rpi using the M1 ? :)20:00
wpwrakuse a pc ? they come without anyone trying to send you on a guilt trip20:01
lekernelright now I have a eee pc and desktop pc20:01
lekerneland I bought a rpi to replace the desktop for mobile demos, but ...20:01
Fallenouare you sure there is no binary blob somewhere that you can use with your rpi?20:02
larscwell the binary blob is the thing you can buy20:03
lekernelyou need license keys that depend on a unique ID written in the chip20:03
lekernelI'm sure most of the license fees go to MPEG LA and payment companies20:04
lekernelwhat complete BS :)20:04
wpwrakyou should ask about the split in one of the rpi fanboy forums :)20:04
Fallenouisn't 700 MHz enough to do software decoding of MPEG-2 at , say , 1024x768 ?20:06
lekerneland maybe a bit to broadcom or whoever else wrote those proprietary GPU codecs20:06
lekerneldepends how fast your framebuffer is... even moving windows or scrolling text in X is sluggish20:08
Fallenoumaybe you will eventually have to pay the few $ :/20:10
--- Mon May 13 201300:00

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!