#milkymist IRC log for Monday, 2012-05-14

kristianpaulhad you already wrote that setences to the mail list?00:08
kristianpaulperhaps sebastien knows, but he is not here right now00:08
kristianpauls/perhaps sebastien/sebastien should00:09
Hawk777I haven't sent anything to the list, I hoped someone here would know.00:10
Hawk777I will though if that's more likely to get to the right people.00:11
kristianpaulsure! stay here00:12
Hawk777I will stay here as well00:13
Hawk777whichever place gets a faster answer00:13
wolfspraulcan't we find out by looking at the code?00:19
wolfspraullet's see :-)00:19
Hawk777I tried, and I can't find anywhere they're implemented, but it's also my first time reading Verilog (I normally do VHDL) so I may have missed it.00:19
Hawk777It would make some sense that they not be implemented, since it might require more pipeline stages given the simple read-or-write I/O port interface on the edge of the core.00:20
wolfsprauloh I would definitely assume that comment on the navre side to be accurate00:21
Hawk777So they're not implemented?00:21
wolfspraulI don't know either, not more than you and you already looked at the sources which I am about to do...00:21
wolfsprauland I have even less hdl coding experience than you. but it's a good question and we 'should' be able to tell from the code, I would think. one sec.00:22
wolfspraulcores/softusb/navre_regress/test_opcodes lists even more as 'unsup'00:24
wolfspraulbut including cbi/sbi00:24
Hawk777Ah, that wasn't in the download package.00:24
Hawk777Where can I find it?00:24
Hawk777I'm pretty sure the instructions aren't there, it just seemed weird because I thought GCC produced those instructions whenever you used a bitwise OR or AND of a single bit against an I/O register.00:25
wolfsprauldownload package?00:25
wolfspraulwhere did you download from?00:25
Hawk777The .tar.gz you get from clicking "Download" on http://opencores.org/project,navre,Overview00:25
wolfsprauloh I am looking at the Milkymist side00:25
Hawk777From that file it looks like the "unsup"s fall into four basic groups: SBI/CBI, SBIC/SBIS which are already stated not to work on the OC page, SLEEP/WDR which don't make sense given the context, and a bunch of stuff from the higher level CPU architectures which are also documented not to work (since it says only Classic Core instructions are implemented).00:27
wolfspraulwell, like you guessed. looking at softusb_navre.v there is a big casex(pmem_d) to decode instructions, and the cbi/sbi are not in the list00:27
wolfspraulthat's a regression test00:28
wolfspraulsome 'unsup' may be inaccurate and it's more a case of 'don't hate test case yet'00:28
wolfspraulI just saw it, and it confirms that sbi/cbi are not there (if there would have been a test, we would have known...)00:28
wolfsprauland neither can I see it in softusb_navre.v00:28
Hawk777though if there were an instruction implemented but not tested I might not want to use it anyway :)00:28
wolfspraulso, not there, my take00:28
kristianpaulneither me as well (softusb_navre.v)00:29
Hawk777but yeah, GCC definitely uses that instruction00:29
Hawk777which is a bit annoying :/00:30
wolfspraulis it hard to add them?00:30
Hawk777might not be00:30
wolfspraulwithout disrupting the whole pipeline/microarch etc...00:30
Hawk777I think adding the functionality inside the core would probably be hard because no other instruction simultaneously both reads and writes an I/O port00:30
wolfspraulHawk777: btw, nice to see you here, seems you are new?00:33
wolfspraulwe have a group of about 5-10 people who are relatively active here and there in the milkymist universe00:33
wolfspraulif you have any questions, feel free to ask. don't hesitate about slightly off-topic things either, as long as it's related to hdl/digital design/high-performance open computing etc. we are trying to be nice and friendly :-)00:34
Hawk777But I think one could probably add some extra interface lines and do the actual CBI/SBI calculation in external logic outside the core00:36
Hawk777wolfspraul: thanks for the welcome, and yes, I got here recently :)00:36
wolfsprauldo you want me to introduce a few people/nicks to you?00:36
wolfspraulwolfspraul is me, ex-sw engineer got bored and wanted to learn about hw00:37
wolfspraulstill learning00:37
wolfspraulI live in Beijing, so I just got up and sipping my morning coffee00:37
wolfspraulsebastien is the milkymist founder, nick lekernel or sb000:37
wolfspraulhe created the whole thing initially, in 2007, starting from IC design, rtems adaptation, bios, board design, flickernoise sw, etc.00:38
wolfspraulhe lives in Berlin but currently traveling back from a trip to the US00:38
wolfspraulthen kristianpaul :-)00:38
Action: kristianpaul hides00:38
wolfspraulhe lives in Buga/Colombia and hacks on various things but on the milkymist mostly a gps baseband00:38
wolfsprauland werner, nick wpwrak. living in the paris of the south aka buenos aires00:39
wolfspraulhe fixed more difficult bugs on the m1 board than anyone else I think00:39
wolfspraulfallenou in Paris, currently working on adding a mmu to lm3200:40
wolfspraulmwalle somewhere in germany I think (?), also hacking on various parts, recently some really nice USB fixes and improvements00:40
kristianpaulhe also ported rtems to the M1 (fallenou - Yann)00:40
wolfsprauladam wang (nick cladamw) in taipei, who is doing the production and testing of boards and products00:40
wolfsprauloh sure, I probably brutally cut short any 'credits' here, just trying to intro a few folks00:41
wolfspraulwho else - roh in Berlin (raumfahrtagentur.org) who designed and manufactured the cases00:41
wolfspraullars-peter clausen (nick larsc) who did some work on the Linux port a while back which is currently in hibernation, but maybe it comes back one day...00:42
wolfsprauland more, but that gives you a start00:42
Hawk777sounds like a good number of people working on this project00:42
wolfspraulfairly global. europe, russia, china, south america00:42
wolfspraulactually I think north america is a but under-represented :-)00:43
wolfspraulyes, a few people. like I said maybe 5-10 is fair to say00:43
wolfspraulbut keep in mind that it's such a wide subject, so we are spread very thin and I'm always worried it will fragment and disappear to nowhere00:43
wolfspraulwe have GCC compiler bugs that nobody finds the time to fix for years00:43
wolfspraulbugs here, bugs there00:43
wolfspraulit's tough00:43
Hawk777Myself, I'm in Vancouver, Canada. I found my way here from looking for a GCC-compatible microcontroller on Opencores that was small enough to fit in my FPGA.00:44
wolfspraulwhichi fpga do you have?00:44
Hawk777Spartan 6 XC6SLX900:44
wolfspraulbeautiful little chip, I actually have one in front of me right now :-)00:44
Hawk777Fairly small, but the largest in the family that's sanely hand-solderable.00:44
wolfspraulqfp package, bought it on the market the other day because I want to try to make my own home-pcb for it00:44
kristianpaulHawk777: from avnet?00:45
wolfspraulHawk777: *exactly* what I have in mind right now00:45
wolfspraulit's in front of me00:45
wolfspraulHawk777: please keep us posted about your endeavor, and if at all possible, publish some sources and documentation00:45
wolfsprauland feel free to reuse *anything* from the milkymist project that may help you00:45
Hawk777We did a professionally-printed PCB followed by hand assembly with liquid flux and normal wire.00:46
wolfspraulthe lm32 is also a small core, is navre even smaller?00:46
Hawk777Anyway, the whole idea behind the MCU in an FPGA is to go on the control board of robots competing in this: <http://small-size.informatik.uni-bremen.de/>00:47
wolfspraulyeah it's nice, very nice00:47
Hawk777Last year we used an external MCU along with an FPGA, but the board is a lot easier to route without that.00:47
wolfspraulhow many resources do you currently need on your slx9, for which part?00:48
wolfspraulyou have something synthesized and running already?00:48
Hawk777just starting out, really00:48
kristianpaulhow do you program it?00:48
Hawk777we have code from last year but it was for a Spartan 3A, so given the different LUT structure it's not really clear what it'll end up looking like00:48
Hawk777kristianpaul: how do we program which?00:48
wolfspraulkristianpaul: do you know how many resources a navre core needs compared to a lm32 core?00:49
kristianpaulwolfspraul: dont know really, guess no more than 300 LUTS00:50
Hawk777The Opencores page says Navré is 1 kLUT, which for an SLX9 is a bit under 1/5 of the chip.00:50
kristianpauland just lm32 is 2.5K.. i bet navre was smaller00:51
Hawk777But I'm happy to look at LM32 if it'll be smaller while still reliable (I *really* don't want to deal with compiler bugs; a large part of the reason I'm moving away from PICs is that SDCC is the only free Linux C compiler for PICs and I filed about a dozen bugs on it within a few months)00:51
kristianpauloh please00:52
Hawk777Whereas avr-gcc also targets hard AVRs, so that's pretty well tested.00:52
wolfspraulkristianpaul: oh please?00:54
kristianpaulyup, i meant i used to work with PICs too00:54
wolfspraulyou share the same feeling?00:54
Hawk777I have no problem with the hardware, but SDCC&00:55
kristianpaulwith those ones ueses SDCC yes00:55
wolfspraulok sounds like navre is still smaller than lm3200:56
kristianpaulthen i discover M1 and stop my self learning about PICs in general00:56
Hawk777huh, well, the good news is I copied the file into my project and XST didn't explode :D00:56
wolfspraulplus, we also have gcc compiler bugs on lm32, though I think mostly in C++, not C00:56
kristianpauland learning about this milkymist soc written in verilog ;-)00:56
wolfspraulkristianpaul: and? far better, no? :-)00:56
wolfspraulI think it is, more potential to have a programmable cpu, as long as we get the compiler well working or even dedicated new compilers in the future (for experimental new cores).00:57
kristianpaulat least i have the HDL sources :)00:57
kristianpaulfar better from sdcc yup :)00:58
wolfspraulHawk777: will you or can you publish sources and documentation/posts about your project?01:00
wolfspraulplease keep us posted, we are definitely interested in hearing from you, or at least I am :-)01:00
Action: kristianpaul too01:01
wolfspraulI plan to embark on a similar slx9-at-home project the next few weeks, which will mostly be talked about and documented in the #qi-hardware channel, and/or here01:01
wolfspraulmy main goal is the fast pcb turnaround first of all, make a pcb in a few hours01:01
kristianpaulworkshop :-)01:02
wolfspraulkristianpaul: you also wanna join? :-) I will start soon, document the process in the wiki etc. I think we may have most bits and pieces already or they are floating on the web. lots of people doing this, but it can come in handy in many situtations.01:02
kristianpauli'll join if i can do it at hoem too :)01:03
kristianpaulbut for now i'll read your logs01:03
Hawk777Publishing information is something all the teams are encouraged to do, but we haven't really had time to organize. We keep talking about it though.01:03
Hawk777Source code, both software/firmware/VHDL, documentation, that sort of thing.01:04
wolfsprauljust do it? :-) github or so probably your easiest way, no?01:06
kristianpauls/if/when able/01:06
kristianpauli mean manufacture01:06
wolfspraulsorry don't understand01:06
kristianpaulyou plan made a SLX9 board at home no?01:07
wolfspraulactually I haven't thought about the real target yet01:07
kristianpaulah i see01:07
wolfspraulI just bought this slx9 because I saw a xilinx shop in the market who pretty much has all variants in stock01:07
wolfspraulso I just picked this one up for about 9 USD (ca. 15 USD on digikey)01:08
wolfspraulit's not worth for me to go around later to buy something for a few USD, so I tend to just buy "a few usd" items when I see them, without knowing exactly what I will end up using them for01:08
wolfspraullike Hawk777 said, it's xilinx most powerful qfp-packaged fpga right now01:09
wolfspraulaltera has a few too I think, with 14k cells or so, but I feel more comfortable in the xilinx universe right now01:09
wolfspraulmaybe I make a board that combines the slx9 with werner's atrf thing? I don't know yet01:10
wolfspraulmy first step is the process, make it fast and cheap and well documented.01:10
kristianpaulI like those words, and even more coming fro you01:11
kristianpaulMy rought plan, will be convice some friends build its own LX9 board, since M1 is not for their interest now01:12
wolfspraulok I have to run now, but back later01:13
wolfspraulwe can discuss in #qi-hw soon, maybe align some plans01:13
wolfspraulit's all about reusing and contributing back to the same ecosystem, for me01:13
Hawk777I just realized there's a ridiculously easy way to prevent GCC from using SBI/CBI instructions: put all the I/O ports from addresses 32 through 63 :D01:19
wolfspraulthere you go, sounds good :-)01:20
wpwrakwolfspraul: i'd suggest to keep it as simple as you can for your first project. there's plenty of stuff to learn. better to not spoil it with too ambitious goals :)01:37
kristianpaulwpwrak: that is no ram/flash, no nothing more than the enought to make the boad load a bitstream from jtag01:49
lekernel_Hawk777: or use the rio8/wio8 macro like the softusb firmware does02:38
Hawk777ah, I could do that02:39
Action: xiangfu merged 'hid' branch to 'master' under milkymist04:12
GitHub2[milkymist] xiangfu pushed 1 new commit to master: https://github.com/milkymist/milkymist/commit/f2b05685db3ab9e57001ddc874cd88c872c05efb04:12
GitHub2[milkymist/master] Merge branch 'hid' - Xiangfu04:12
xiangfuI tested 'hid' well :-)04:13
xiangfuthere must be some update under rtems: http://fidelio.qi-hardware.com/~xiangfu/building/Milkymist/milkymist-firmware-20120513-1226/BUILD_LOG.05132012-1405.last10004:17
lekernelreport_id can only be 0 or 1.04:17
xiangfufor now: if there is a report_id. we just ignore it.04:19
xiangfuthe full HID report parse under my TODO list.04:20
Action: xiangfu power problem. 04:32
GitHub118[rtems-yaffs2] xiangfu pushed 1 new commit to master: https://github.com/milkymist/rtems-yaffs2/commit/34cc1b910b6429beb46fcc88aa53a37fd2e649c407:36
GitHub118[rtems-yaffs2/master] Update rtems_yaffs due to rtems rtems_libio_tt changed - Xiangfu07:36
GitHub149[rtems-yaffs2] xiangfu pushed 1 new commit to master: https://github.com/milkymist/rtems-yaffs2/commit/dfccac65f0aee6de07550eded8bb14420f9f226808:04
GitHub149[rtems-yaffs2/master] rtems_yaffs: don't set offset when write file - Xiangfu08:04
lekernelmore yaffs bugs? where do those come from?08:06
qi-botThe firmware build was successful, see images here: http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-firmware-20120514-0828/08:12
xiangfulekernel, the rtems upstream remove 'size' of rtems_libio_tt.08:13
xiangfulekernel, I think I set the offset wrong. so the last commit for fix that.08:13
xiangfuthis commit: http://git.rtems.org/rtems/commit/?id=30d412469c930fe4150ad2b9a321eea2747ec6f408:14
lekernelwe've always set the offset without problems. what is that fixing?08:27
xiangfuI added that set. then I found that is wrong. so I only revert that one line.08:33
lekernelah, yes08:35
xiangfuI cannot find where they set the new offset.08:38
wpwrak(slx9) hmm, QFN or QFP ? QFP is more beginner-friendly than QFN. the one i see on digi-key has a lot of pins, though. not sure you want to start with something so big.09:16
qi-botThe firmware (using branch) build was successful, checkout the VERSIONS for detail, see images here: http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-firmware-20120514-1012/09:57
cladamw_(AD m1r4 latest placement) http://downloads.qi-hardware.com/hardware/milkymist_one/pcb/r4/051412/MILKYMISTONE.pdf12:07
cladamw_wpwrak, this one is only J27 mounting hole hasn't been moved south 1.5 mm a bit. else are okay last one we reviewed.12:13
cladamw_wpwrak, if there's no big problems discovered, I'll tell house to start to route.12:16
wolfspraulcladamw_: hi good evening12:16
wolfspraulare the AD and kicad schematics 100% equal now?12:16
wolfspraulin other words - are the kicad schematics finished?12:16
cladamw_good evening12:16
xiangfugood evening.12:18
cladamw_KiCad m1r4 has edited done. wpwrak said he'll check item-by-item for comparisons.12:18
cladamw_more one person to double check it good idea.12:18
cladamw_so yes, i think KiCad m1r4 I finished, regards to if all 100% equally, need to check. :)12:19
wolfspraulthen the next step is to cover the entire bom in boom12:22
cladamw_yes, after equalization.12:23
wolfspraulok good12:25
cladamw_wpwrak, summaries: 1) U26, C178, C256 ~ C260 go to bottom, 2) C286 goes to east of DMX TX, 3) TP32, TP38 - TP41 go to top, and else small fix in design files12:26
cladamw_wpwrak, I'll see backlog tomorrow if you discover somethings, pls note here.12:30
wpwrakwolfspraul: depends on your definition of finished ;-) they still need the 1:1 check and there will be more changes (to parameters) as we boomify them13:54
wpwrakroh: do we have the exact mechanical specification of the spacers and screws of M1r3 ?15:35
wpwrak(i mean the dimensions. don't care about forces and such :)15:36
rohwpwrak: dimensions... i think so. would need to look it up tho15:49
rohi think something like 5 and 30 mm long, m3, one inner outer (the short one) and one inner inner15:49
rohmeans the 'nut' is 5.5mm outside15:49
wpwrakcool. i measured the head right then :) now i need the thread and the tolerances15:52
wpwrakyou'll what i'm after in my next post to the list. in a minute ...15:52
wpwrakposting sent16:15
wpwrakroh: i hope it's decodable ;-) mixes information from quite a few sources16:25
rohwpwrak: the thread and the tolerances should be in the din norms for m3 etc ;)17:10
wpwrakhmm, let's see if wikipedia has all the data17:11
wpwrakah yes, they do. and i got the thread pretty much right: http://en.wikipedia.org/wiki/ISO_96517:16
wpwraknow, the shape and size of the screw head and the hex spacers ...17:17
rohah. hm.. well.. the spacers are 5.5mm from the parallel side to the other. so 'shortest path'17:35
rohso i dunno ig 6.1 is enough not to scratch a pcb trace when screwing in17:35
rohalso there needs to be some horizontal tolerance, the holes are 3.2 or 3.5 or so, to get it all aligned17:36
wpwrak(5.5 mm) are you sure ? i think that's corner to corner. side to side should be 5.0-ish17:37
wpwrak(tolerance) yeah. see my mail :) i actually forgot a few factors of two, when using things that are radii, but i hope i've covered all the important parameters17:38
rohhavent measure it. but for m3 nuts and spacers one usually uses a 5.5mm 'schluessel' or nut bit17:38
wpwrakof course, improvements welcome :)17:38
rohin case of doubt, keep the top layer clean a mm more diameter then needed ;)17:39
wpwrakmaybe the 5.5 is the outer diameter then17:39
wpwrakyeah :)17:39
rohor just make the pad bigger, round (the gnd pad)17:39
wpwraki just want to have a clear lower bound. since we need quite a bit of extra space. and adam like things a little cramped :) (well, i do the same when trying to squeeze a layout into a tight space)17:41
rohi'd keep 3.5mm minimum radius around the center of the hole clean. better 4.0mm radius17:42
rohor even simpler.. hole dia * 1.15 = keepout_radius17:43
wpwrakyeah, 3.5 mm sounds good to me. 4 mm may complicate placement, though17:43
rohthe hole is 3.517:43
rohas i said.. its neccessary for alignment on putting it together.. so the spacers can be off center to the max and thats normal17:44
wpwrakah, that's narrower than i guesstimated. good.17:44
wpwraksure. designing with zero tolerances is a good way to make sure what you do will never fit/work ;-)17:45
rohheh. i was wrong17:47
rohthe nuts are really 5.0 flat to flat17:48
rohthats 5.5 to 5.6 worst case diagonal.17:48
rohso 3.5 radius is small but maybe fine17:48
rohmake it 3.6 or 3.7 and we have some safety margin in production etc (who knows how precise they drill etc)17:48
rohdoes that work for you?17:49
wpwrakfunny. the screws seem larger than the standard size: http://www.metrication.com/engineering/fastener.html17:49
wpwrak1.5 D -> 4.5 mm17:49
rohan. not that nuts.17:50
rohthe 'spacers'17:50
wpwraki think i'd be happy with anything >= 3.5 mm, yes. need to redo my calculation with updates values, though17:51
rohhm on nuts its 1.6 or 1.8 D17:52
rohso so 4.8 or 5.417:52
rohweird numbers17:52
wpwrakis D the nominal diameter ? or the effective diameter ? http://en.wikipedia.org/wiki/ISO_96517:53
wpwrakbecause M3 actually has a diameter < 3.0 mm17:53
roh5,5 mm für Verschraubung M317:54
wpwrakso this implies the spacers are thinner than the head of a nut would be17:55
wpwrakwhich kinda makes sense17:55
rohwell.. yes and no.17:57
rohi think one can get the spacers also in 5.5mm17:57
rohseen those too. didnt specifically buy thin ones. didnt care. bought the cheaper, more reliable to get ones17:58
rohso i will not have problems in sourcing them again17:58
wpwraki have some pseudo M3 at home. they almost fit but not quite. probably some imperial thingy. they're fat - about 6.5 mm on parallel hex sides18:02
wpwrakit may also make sense to have enough tolerance that people can use things they find at a hardware store. e.g., when they lose a screw18:03
GitHub13[milkymist-ng] sbourdeauducq pushed 1 new commit to master: http://git.io/yBJ_nQ18:15
GitHub13[milkymist-ng/master] bios: more DDR diagnostic functions - Sebastien Bourdeauducq18:15
wpwraklooking around a bit, i think it's fair to say that there are no standard sizes for anything but the thread itself ;-)18:17
kristianpaulwpwrak: big, because been LQFP and having more than 100 pins?21:14
wpwrakyeah, a LOT of pins22:00
wpwraknot the sort of thing i'd recommend for a first-time project22:00
kristianpaulbut if you dont have I/O what is left to play... jtag?22:01
kristianpaulwell not sayiing it will not, but wast in first place something easy to solder, even if you dont populate the BIG chip :)22:01
kristianpauli think xilinx have form factor fgpa like those tiny IGLO with QFP either..22:02
kristianpaullet see22:02
kristianpaulTQG144 seems only smaller, well Hawk777 already told us that too..22:11
wpwrakkristianpaul: the thing is that the FPGA is a much more complex system. you need more parts, the system goes through several states just to boot, and so on. so if you make any mistakes building the board, then it's a lot harder to debug the thing.22:18
wpwrakcompare this with an MCU: there, you get a basic functional test when you upload the code. few if any external components involved. the turn-around times for making code changes are very short. so you're quickly at the point where you can access simple peripherals. e.g., LEDs and buttons.22:20
wpwrakby avoiding complexity in the system, it's much easier to detect and solve manufacturing issues. and DIY tends to have such issues, particularly if you start without experience.22:21
wpwrakthe fpga probably also needs an external clock source. MCUs usually have in internal RC clock. then that FPGA seems to need an 1.2 V supply. so you can't just feed it from, say, a Ben.22:29
wpwrakit's just way too complex for a "getting started with DIY PCBs" project. better to take things only a few steps at a time.22:31
--- Tue May 15 201200:00

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