#milkymist IRC log for Thursday, 2012-11-22

wpwrakazonenberg: you may find this useful: http://www2.vmi.edu/Faculty/squirejc/Research/IC_Datasheets/digital_cmos/Write%20Only%20Memory.pdf00:36
wolfspraulazonenberg: if you were to tape-out your own chip, what packaging would you choose initially?09:16
azonenbergwolfspraul: if i was making an ASIC? Depends on what it did12:07
azonenbergFor low pin counts i'd likely package one or two in DIP-40 and the rest in TQFP-4412:08
azonenbergif it was higher speed or more I/O intensive i'd use 256FTBGA 1mm12:08
wolfspraul256ftbga 1mm is like ftg256?12:15
wolfsprauldo you know others who have taped-out and received chips? what packages are commonly chosen or available?12:16
wolfspraulof course I understand it depends on the chip, pin count, speed/protocols etc. etc.12:16
wolfspraulbut still, I am trying to find some starting points (such as the ones you just posted - THANKS!)12:16
xiangfuazonenberg, Hi. I would add a smallest/easiest SPI flash to my mini board. do you have any advice? thanks12:31
xiangfuazonenberg, I have another question on your s60-devboard. you soldering all those components in toaster oven?12:44
GitHub15[llvm-lm32] jpbonn pushed 1000 new commits to master: http://git.io/eITISw12:52
GitHub15llvm-lm32/master 655fa12 Chad Rosier: [ms-inline asm] Use incoming argument rather than hard coding to false....12:52
GitHub15llvm-lm32/master 8f138d1 Chad Rosier: [ms-inline asm] Add a few new APIs to the AsmParser class in support of MS-Style...12:52
GitHub15llvm-lm32/master ce353b3 Chad Rosier: [ms-inline asm] Update the end loc for ParseIntelMemOperand....12:52
azonenbergwolfspraul: yes, i would12:53
azonenbergFrom what i hear DIP40 is most common for low-speed MOSIS chips used for educational stuff12:53
azonenbergbut I am more interested in high speed stuff, if i were to get an ASIC fabbed it'd be something with a DDR3 controller and a GHz-range CPU12:54
azonenbergxiangfu: Is this for an xc6slx9 boot flash?12:54
azonenbergW25Q80BV in 8SOIC12:54
azonenbergquad SPI12:54
xiangfuazonenberg, yes. for xc6slx9 boot flash.12:55
azonenbergand yes, i solder everything in the toaster oven12:55
xiangfuthanks I will look into that.12:55
azonenbergYou've seen my minimal-s6-tq144 board, right?12:55
azonenbergthats what i used on there12:55
azonenbergthe same chip has enouhg capacity for up to the xc6slx25 iirc12:55
azonenbergyou can go smaller for a lower end chip if you want but i like to keep only a few values in stock since it makes inventory management simpler12:55
wolfspraulok and for the high-speed stuff you would choose which package?12:56
xiangfuazonenberg, (toaster oven) it's double side. so solder top side first then the bottom side. so you use the top 2 heat pipe?12:56
wolfsprauldidn't get the connection12:56
wolfspraulwhat's the diff between the ftbga256 you mention and ftg256 ?12:56
azonenbergFTG256 is the Xilinx code for 256ftbga with SAC305 solder balls12:56
azonenberg256ftbga is a generic name for 1mm 16x16 full array BGA12:56
wolfspraulok12:57
wolfspraulgot it12:57
azonenbergFT256 is the xilinx code for the same package with 63/37 solder12:57
wolfspraulthanks!12:57
azonenbergxiangfu: I actually do bottom first12:57
wolfspraulftg256 is with leaded solder?12:57
azonenbergG = "green" = lead free12:57
wolfspraulwasn't aware of that, I thought it's all lead-free nowadays...12:57
azonenbergA tiny fraction for military etc are not12:57
azonenbergdue to reliability concerns12:58
xiangfuazonenberg, (you can go smaller for a lower end chip) what is the lower/smaller chip? I would look into that one too. :-)12:58
azonenbergxiangfu: since that tends to be lightweight components12:58
azonenbergwhich wont fall off12:58
azonenbergI want to avoid gluing and have surface tension hold stuff on12:58
azonenbergSo i do bottom first (facing up) since solder paste isnt sticky until it melts12:58
azonenbergthen let cool, flip over, do top side with all the big stuff12:58
azonenbergand rely on surface tension to hold the bottom stuff on12:58
azonenbergand read the configuration guide, it gives bitstream sizes for each fpga12:59
azonenbergw25q40 or 20 will likely be fine for the lx912:59
xiangfu(and rely on surface tension to hold the bottom stuff on) cool.12:59
azonenbergSPI flash is pretty industry standard12:59
azonenbergthe only real variables are package, array size, operating voltage12:59
azonenbergand whether it's true SPI only or supports dual/quad mode13:00
azonenbergthe winbond chips normally support quad mode, check the datasheet13:00
azonenbergmost micron parts in the M25PE80 family do not13:00
azonenbergi used to use the m25pe80 with spartan3a but 6 supports quad mode that boots 4x faster at the same clock rate13:00
azonenbergxiangfu: and yes, you just have to design the board with that asseembly process in mind13:00
azonenbergMeaning you want lots of surface area for solder and not much mass13:01
azonenbergso avoid, say, big electrolytic caps on the underside13:01
azonenbergand a QFN with thermal pad would be preferred over a TQFP13:01
GitHub61[clang-lm32] jpbonn pushed 1000 new commits to master: http://git.io/ERBEzA13:02
GitHub61clang-lm32/master 3da76bf Argyrios Kyrtzidis: [libclang] When indexing, invoke the importedASTFile for PCH files as well....13:02
GitHub61clang-lm32/master 2ceac2d Bill Wendling: Remove the directory that these are already in....13:02
GitHub61clang-lm32/master de3832b Sean Silva: tblgen: Migrate clang-tblgen to new TableGenMain API....13:02
xiangfuazonenberg, thanks for advice.13:04
azonenbergxiangfu: also that means that if a large heavy connector must be on the underside13:04
azonenbergit needs to be hand soldered after reflow or it'd fall off13:04
wolfspraulbut which spi flash do you recommend now? not the micron ones?13:04
azonenbergin a real production process you'd put a dab of high-temperature glue under each part on the underside and have much fewer restrictions13:04
wpwrakazonenberg: i kinda wonder why people still even consider DIP. well, except for cases of extreme mechanical stress perhaps.13:04
xiangfuazonenberg, I am making a very simple board. with only jtag pins out now. :)13:05
azonenbergwolfspraul: I use winbond13:05
xiangfuazonenberg, checkout: http://downloads.openmobilefree.net/tmp/IMG_1732.JPG and http://downloads.openmobilefree.net/tmp/IMG_1734.JPG13:05
azonenbergwpwrak: the only thing it'd be good for is prototyping on a very expensive but low speed ASIC before you made a board for it13:05
azonenbergand if you had sockets even then tqfp would be better13:05
wolfspraulicsocket.net makes nice sockets13:06
wpwrakor just make a little board ... almost anything is easier with *QFP or *SSOP than with DIP13:06
wolfspraulthey will make them according to specs, about 500 USD or so for a 256-pin bga I think13:06
azonenbergwpwrak: agreed13:06
azonenbergwolfspraul: thats more than i can afford right now :P13:06
azonenbergxiangfu: also, is that a 1-layer board for ftg256? Impressive13:07
azonenbergeven if you dont use all the pins, breaking everything out would be tricky13:07
xiangfuazonenberg, yes. 1-layer. I don't have drilling machine now.13:07
azonenbergso you have all the IO banks and vccaux at one voltage13:07
azonenbergthen vccint at 1.213:07
xiangfu(so you have all the IO banks and vccaux at one voltage) yes.13:08
azonenbergwhy didnt you go tqfp?13:08
xiangfu3.3V13:08
azonenbergor did you want to use the lx16 and 25 too?13:08
xiangfuazonenberg, I want experience bga. :-)13:10
azonenbergOh, i see13:10
azonenbergMakes sense13:10
azonenbergThough i think you will find it vastly easier with ENIG and soldermask13:10
xiangfuI have make some tqfp board here: http://en.qi-hardware.com/wiki/Mini-slx9#JTAG (at the bottom of that page)13:10
wpwrakxiangfu: for making vias on a DIY PCB, try this trick: use a wire with an exactly matched drill, so that the wire will have some friction when you put it through the hole. that make vias relatively painless.13:10
azonenbergwpwrak: the problem is that it sticks up13:10
azonenbergso you cant put it under QFPs13:10
xiangfuthere are pre-make tqfp144 pcb . 1.5USD.13:10
wpwrakazonenberg: yup. there are limitations :)13:11
azonenbergwpwrak: and since i use low-profile smt so much i dndt even bother develponig that process13:11
azonenbergsince the limitations were such that i'd gain next to nothing13:11
xiangfuI have tired etching qfp144 board. 600DPI printer will short a lot pins. since there are 0.5mm .13:11
azonenbergyes, 0.5mm is at the edge of what i can homebrew too13:12
xiangfuI have a questino on footprint. if the bga ball size is 0.6mm. what is the bga footprint (the ball pad) size? it should be smaller then 0.6mm right?13:13
wpwrak(matches drill/wire) for example, 28 AWG (e.g., OK Industries R28BLK-0100) with a 0.0135" (#80) drill (e.g., Injectorall PC 300C-80)13:13
wpwrakall conveniently available from digi-key ;-)13:13
azonenbergxiangfu: Read the datasheet for recommended sizes13:13
xiangfuazonenberg, the 1200DPI printer will give good result on photo paper.13:13
azonenbergI normally use 0.45mm pads for 0.5mm balls on 1mm centers13:14
wpwrakthe drill i mentioned has a 1/8" shaft, which i need for my CNC machine. if you just use a dremel or such, then you can use a straight drill bit, which is cheaper13:14
xiangfuwpwrak, ( making vias on a DIY PCB) yes.13:15
xiangfuwpwrak, (dremel) I have a cheap one. I try to put a driller on it. it shake a lot. not focus on point.13:18
wpwrak(cheaper drills) e.g., injectorall PC300-80. the drill and wire are both thick enough that you won't have to go through a lot of broken drills but still small enough that you get a reasonable via density13:18
azonenbergwpwrak: i usually use carbide bits from drillbitcity.com with straight shanks13:19
azonenbergthose are much easier to handle than tiny ones13:19
azonenberg1/8" shanks i meant13:19
wpwrakxiangfu: keep that cheap drill for when you're much older. when you're 90 or so, your hands will probably shake on their own, and then you can blame it on the drill :-)13:19
wpwrakazonenberg: yeah, they also center better in a dremel. at least on digi-key, the price difference is large, though.13:21
azonenbergwpwrak: i buy boxes of 50 for $4513:21
azonenbergthey're re-sharpened, not new13:21
wpwrakthat sounds scary13:22
xiangfuazonenberg, I am download the datasheet of w25Q40bw. so you would advice winbond-w25Q40bw for my mini slx9 board. I want the easiest chip. :-)13:23
azonenbergbv vs bw is i think just a die revision change so they should be interchangeable13:23
azonenbergand the 40 should be fine for the lx9, check the config guide13:23
wpwrakthe prices are amazing, though13:23
xiangfuwhat about 'W25X SpiFlash Family'? compare to 'Q' which is more common and easy. :)13:24
azonenbergW25Q is the family i've used13:24
azonenbergW25X may not be protocol compatible13:24
xiangfuazonenberg, ok. got it.13:25
azonenbergXC5SLX9 needs 2,742,528 config bits13:25
azonenbergXC6SLX9*13:25
azonenbergSo the 2mbit is not enough, the 4 or 8 are fine13:25
azonenbergthe LX16 bitstream is 3,731,264 bits so even that should fit in a 413:25
azonenbergif you want to use the 25 you need 8mbits, 45 needs 16, 75 and 100 need 32, 150 needs 6413:26
azonenbergthat's from table 5-5 in UG38013:26
wpwrakbut of course, US shipping only :-(13:26
xiangfuoh. I forget the config bits size.13:26
xiangfuok. I will use W25Q for slx913:27
azonenbergAnd of course if you want to store data as well as bitstream13:27
azonenbergyou will need more capacity13:27
azonenbergfor the lx if you use 4Mbits you'll have the last ~1mbit free13:27
azonenbergthe lx9*13:27
xiangfuyes.13:37
xiangfuI think I maybe try make the ftg256 pad a little bit smaller. (for the home-made pcb and 600DPI printer).13:37
azonenbergYeah, thats not something i would try lol13:38
azonenberggiven the prices i pay for batch PCB fab, if i'm dropping $30 on an FPGA i can afford to spend $25 on three dual-layer professionally fabbed PCBs13:38
azonenberg$30 being the going rate for the xc6slx25 around here13:38
xiangfuazonenberg, before do oven-soldering have you do any 'moisture protection' on PCB and CHIP.13:59
xiangfu?13:59
azonenbergI do nothing for pcbs14:03
azonenbergi keep bgas in moisture bags14:03
azonenbergif theyve been out ofr a whlie i bake14:03
xiangfuazonenberg, 'bv vs bw' have different voltage. bv: 3V, bw: 1.8v14:10
xiangfu"25XxxV = 2.7V to 3.6V, 25XxxL= 2.3V to 3.6V, 25QxxBW= 1.65V to1.95V."14:11
xiangfuI will use W25Q40BV  :-)14:11
azonenbergoh, i see14:17
azonenbergso B is the die rev14:17
azonenbergand V/W are voltage range14:17
kristianpaulazonenberg: mips 1 is free of patent?15:07
kristianpaulhi btw15:07
mwalleFallenou: wpwrak: i guess we want to know the exact miss address (all 32 bits) in case of a dtlb miss22:18
wpwrakyes, definitely22:48
wpwrakoops.22:49
wpwraklet me rephrase that ...22:49
wpwrakor rather, confirm it :) (had to think through a few scenarios) i don't think it has to be efficient, though. e.g., for a segfault, you want an exact report, but it's okay if the fault handler has to poke around a bit.22:51
mwalleyou mean if the h/w doesn't proivde the exact address, but software can do so by reading some instructions and doing some trickery it is sufficient23:01
mwallei was just thinking about the preloading TLBVADDR stuff23:01
mwallewhich is also the BADADDR register when reading23:03
mwalleso whats missing sth similar to the CAUSE register in MIPS23:04
mwalle(assuming we have two different exception vectors, we could say the exception vector code must take care of saving the cause)23:05
mwalleor calling different functions, etc23:05
mwalleFallenou: btw its really hard to actually run a given test sequence of instructions deterministically, every now and then the instruction cache needs to be refilled, so a nop or a instruction more or less can change the whole simulation23:14
mwalleatm i hacked the icache to cache 1024 byte lines..23:16
wpwrak(instruction decoding) yes, although that may have a lot of corner cases. but having to retrieve the complete address from some special register would be fine. that would only need to be accessed if we have an actual page table miss, not just a tlb miss.23:18
mwallewpwrak: whats the difference between PT and TLB miss?23:20
wpwrakso the gateware would provide the raw data and enough for quick page table lookups. then the tlb miss handler walks the page table and - if successful - updates the tlb. if there's a page table miss, then the slow path code would do whatever needs to be done to obtain complete information and then let the kernel worry about the rest23:20
wpwraksee above :)23:20
mwalleic23:21
wpwraksimilar for permission fault. there we also have a "fast path" for cow pages, but that's a lot less critical than tlb misses.23:22
wpwrakso a few extra cycles there won't matter and we can always treat it like a "slow path"23:23
mwallegoing to bed now23:28
mwallegn823:29
mwallewpwrak: thanks for the explanation23:29
wpwrakalways a pleasure :)23:37
--- Fri Nov 23 201200:00

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