#milkymist IRC log for Saturday, 2012-01-21

wpwrakand here we are with the front side: http://downloads.qi-hardware.com/people/werner/tmp/collage-front.jpg00:05
wpwraki didn't add any red LED around the buttons because the green LEDs make it hard to see. best case, it would just be a sea of yellow light00:06
wolfspraulcan the leds increase radiation emissions?00:06
wpwrakyou mean EMI ? if you run the PWM very fast ....00:07
wpwraki switched them at 1 kHz. not sure how fast the edges would be.00:09
wpwrakworst case, we could add some caps to the matrix, e.g., after the current-limiting Rs00:10
wolfspraullooking at collage-front - ok00:12
wolfspraulno comment other than I don't like more than 1 color00:13
wolfspraullooks like a cheap xmas tree00:13
wpwrakat least one green LED will relocate anyway :)00:13
wolfsprauldo you want multiple colors?00:14
wpwrakoh, it can become red. no problem with that.00:16
wpwrakah, interesting. they replaced the laser pointer in the rii keyboard with an universal IR remote. smart move, though cat lovers may be disappointed.01:08
wpwrakURL update: all the LED-related stuff is now in http://downloads.qi-hardware.com/people/werner/m1/leds/ (a and not my general dumping ground, .../werner/tmp/)01:24
wolfspraulI think there are many variants of this idea01:25
wolfspraulmany vendors01:25
wolfspraulI am working on this and will zoom in after cny01:26
wolfspraulwill take a few weeks though, contacting vendors, getting samples, etc.01:26
wolfspraulhere's two http://www.antertom.com/english/products.asp01:27
wolfspraulthere are most likely more01:27
wolfspraulso that's good, I think we will zoom in on a vendor that is willing to work with a tiny customer like us, and sell us keyboards at a good price and with the specs we want (though it is in our own interest to pick an existing high-volume model)01:28
wolfsprauldo we need infrared as well?01:28
wolfspraulI though if we have keyboard + mouse that's perfect (with USB dongle)01:28
wolfspraulalso backlight, I think very important01:28
wpwrakthe thing just seems to come with an extra. either laser pointer (old) or new IR remote.01:29
wpwrakwell, perhaps not all of them. this looks a little different: http://www.antertom.com/english/ShowProducts.asp?id=11301:30
wpwrakand no, i don't think we need IR or laser :)01:30
wolfspraulwith those factories, you can get exactly what you want01:30
wolfspraulthey can change *everything*01:31
wolfspraulthe problem is volume, cost, etc.01:31
wolfspraulon such an accessory, I want to go with the flow01:31
wolfspraulI don't even want them to print "milkymist" on the thing, though it's tempting01:31
wolfspraulso the website only serves as an indicator or what they have or might have01:32
wolfspraul"something like that"01:32
wolfspraulrest needs to be found out talking to their sales staff01:32
wpwrakkewl. maybe we should define a special unique milkymist color and have it with a milkymist-colored laser pointer ;-)))01:35
wolfspraulI am quite serious in switching to this01:35
wolfspraulremove silicone keyboard and remote control, and switch to this01:35
wolfspraulwe should have done it in the first place, but didn't register with me somehow01:36
wpwrakit looks good to me. unlike the keyboard, it's more than just an alibi accessory01:36
wolfspraulbut whatever, then we do it now and improve and done01:36
wolfspraulit's all work01:36
wolfspraulI can only do so much each day01:36
wolfspraulnow this is on01:36
wolfspraulit's a lot of work still01:36
wolfspraulbig difference between idea, and actually having them in the box, and working well...01:36
wolfspraulso we see01:36
wolfspraulit's early now, I couldn't do anything on this before cny, it starts after cny01:37
wolfspraulthough xiangfu does have a similar keyboard now, sourced randomly from taobao (like ebay)01:37
wpwrakyou may be able to find it in .de, too01:38
wpwrakbut of course, there's no rush01:39
wolfsprauloh of course I can buy them everywhere01:39
wolfspraulbut that's not a connection we can use for sourcing into the box01:40
wolfspraulfirst of all the price01:40
wolfspraulit's going to be twice as much at least01:40
wpwraksure. i mean to get a feeling for how it works01:40
wolfspraulah yes01:40
wolfspraulbut I am so loaded, I wait until i'm back in china in a few days01:40
wolfspraulhow do you like those upright types with a notebook-like touchpad above the keyboard?01:43
wpwrakpicture ?01:43
wolfspraul(on the unisen site)01:43
wolfspraulhere are some http://www.ipazzport.com/wireless.html01:44
wolfspraul(those seem to be unisen products because linked from there)01:44
wpwrakthat could also be interesting. maybe less likely to tap by accident01:44
wolfspraulyeah ok, I will find out more after cny. common models, prices, etc.01:45
wpwrakyou'll have fun :)01:46
wolfspraulthen testing, bugfixing, moving hotkeys so they are easy and make sense on the chosen kbd, ship to Taipei, include in box01:46
wolfsprauleasy 15 steps01:46
wolfspraulcalling it a day, n801:46
wpwrakah yes, the hotkeys. right now, pretty much all of them are where i can't reach them.01:47
wolfspraulit will be quite some work, but when we are done, the m1 experience will be so much better01:47
wpwraksweet dreams of gazillions of keybaord designs  !:)01:47
wpwrakyeah :)01:47
wolfspraulyou bet01:47
wolfspraulI visited a large keyboard maker once, very impressive visit01:47
wolfspraulI had no idea...01:47
wolfspraulthat factory I visited makes 4-5 million keyboards / month01:48
wolfspraulonly large ones (notebook/desktop)01:48
wolfspraulsmaller keyboards are made in even crazier volumes01:48
wolfspraulyeah. 6000 workers.01:49
wolfspraulthey even have clean rooms up to class 100001:50
wolfspraulthey have giant machines in sizes that made me think they are preparing for a moon landing or so01:50
wpwrakmaybe the keyboards are just a front ? :)01:51
wolfspraulkeyboards are very work intensive01:51
wolfsprauland there are a huge number of varieties and details01:51
wolfspraulyou would never believe me unless you visited one of those monster factories01:51
wolfspraulwe just want to source some tiny amount, nothing really01:51
wolfspraula rounding error01:51
wpwrakindeed :)01:52
wpwrakpart of a flyspeck01:52
cwoodallHello, I was told to come around these parts to talk about an MMU03:25
wolfspraulchris again :-)07:15
wpwrakunfortunately, a bit too quick07:31
wpwrakah, another advantage of having those LEDs: improving their control would make a nice HDL beginner's project07:32
wpwrakquite a bit less intimidating than an MMU :)07:32
wpwrakand there are countless ways how you can tweak LEDs in more interesting ways07:33
wolfspraulah yes I wanted to ask that - how much control do we have over them?07:50
wolfspraulif they are really all at the bottom of the pcb, can someone make something like a wave going around the board?07:50
wolfspraulor something like Knight Rider's KITT car? http://www.youtube.com/watch?v=Mo8Qls0HnWo07:54
wolfspraul(the lights at the front of the car)07:54
wpwrak(knight rider) remember ben-blinkenlights ? ;-)07:56
wpwrakyou could do pretty much anything you want ... but the density of LEDs will be a bit low for many effects07:56
wolfspraulI hope nobody tries to wave the m1 that explosively...07:56
wolfspraulyes sure [density]07:56
wolfspraulbut the control would allow us to drive them all independently and at the same time?07:57
wpwrakthere should be a bit of SoC that implements a controller that takes care of the low-level details, yes07:57
wpwraksuch as: walking the matrix, varying the duty cycle, etc.07:58
wpwrakfor a proof of concept, we'd just need to walk the matrix. so that's one bit of control per LED07:59
wpwrakfor fancy effects, you'd have more controls. whatever you can dream up :)07:59
wpwrake.g., maybe per-LED duty cycle, LED mode (off, on, pulse on when kicked, pulse off when kicked, ramp on/off, etc.)08:00
wpwrakkick = some register/signal that indicates activity08:01
GitHub114[milkymist-ng] sbourdeauducq pushed 1 new commit to master: http://git.io/L0cVpg11:30
GitHub114[milkymist-ng/master] Use meaningful class names - Sebastien Bourdeauducq11:30
lekernelhttps://github.com/milkymist/milkymist-ng/blob/master/top.py -> http://pastebin.com/xTuav4t911:33
lekernelmost signal names are autogenerated with the new python introspection hacks11:34
wpwraklooks nice and tidy :) some constructs are non-intuitive, though. e.g., the structure of things in wishbone.InterconnectShared, or what verilog.convert does.11:43
wpwrakbut i guess alot of that stuff is ultimately a documentation issue11:44
wpwrakand maybe some of the procedural stuff for code generation can be hidden later11:44
kristianpaulcheap xmas tree indeed ;)14:04
lekernelkristianpaul: you should start using migen for your gps stuff. no more manual modifications of wb_conbus ...14:05
kristianpaullekernel: yeah sure, i'll update your migen repo and look for a example14:06
lekernelatm it runs the beginning of libhpdmc14:07
lekernelie you get a banner14:07
lekernelthen there's no UART RX (maybe you could help? simply port the existing code to migen...) and no sdram14:08
kristianpaulyeah i noticed that, why you dont use the old uart anyway?14:11
lekernelbecause we have a new generic system for generating CSR banks and interrupt/event controllers, rather than hand-code it in the UART and every other core14:13
kristianpaulhmm yup14:14
lekernelbut yes, the lazy-lazy approach is to use instance encapsulation (like I did for lm32)14:17
wpwrakaka backward-compatibility ? :)14:18
kristianpaulyay ;)14:18
wpwraki'd consider that a feature. allows for incremental deployment, etc.14:19
lekernelit'll make sense for more complex code, but uart is 100 lines14:19
wpwrakok :)14:19
lekerneland by the way, there's no backward compatibility for the -ng soc, except for the lm32 instruction set14:22
kristianpaulavoiding to write/fork a new cpu? ;)14:22
lekernelwhy? lm32 is fine14:23
kristianpaulsure ;)14:23
kristianpaulso you plan rewrite sdram controller too, tmu?14:23
lekerneland everyone's writing (often shitty) softcore CPUs anyway ...14:23
lekernelyes, sdram controller and TMU will be fundamentally redesigned14:24
kristianpaulbtw fast memory link will too i guess?14:24
lekernelyes, new OOO bus14:24
Action: kristianpaul looks for its python book14:25
kristianpaulbtw is icarus happy with the verilog code generated by migen?14:26
lekernelwhy shouldn't it?14:27
wpwrak(no compatibility) so yet another round of register address, interrupts, etc., reassignments ?14:28
lekernelthe CSR address space is saturated anyway14:28
kristianpauloh yes :)14:28
wpwrakso you extended it ?14:28
kristianpaulfinally 1 bit? was it?14:29
wpwrakgood then. we'll need room for all the LED controls ;-)))14:29
kristianpaulshouldn dunno, well lm32 still not last time i tried..14:29
lekerneland we'll have level-sensitive interrupts everywhere (you asked for it for linux, now you'll get it)14:30
wpwraki don't mind having level-sensitive interrupts :)14:31
kristianpaulhow a mmu could fir in -ng, it will be just another core? or migen could provide some aid to write it?14:31
lekernelthe MMU needs to be integrated into the LM32 pipeline, which is pretty much independent of migen14:32
kristianpaulah so this fork lm32 anyway, interesting14:33
kristianpauli guess you discussed this before, but put stuff inside that pipeline is not make things slower?14:33
wpwraki don't think an MMU would have to "fork" lm32. but it's surely an invasive internal change (mainly to the cache, of course)14:34
kristianpaulinvasive indeed14:34
kristianpaulah ok14:34
kristianpaulbut cache is part of pipeline? now i'm cofused :)14:35
lekernelyes, the cache is part of the pipeline14:35
Action: wpwrak wonders if there's a good primer on physically tagged virtual caches. i have a boot that explains caches rather nicely but that's not really suitable as a reference here14:36
wpwraks/boot/book/ # grmbl14:36
kristianpaulboot the book  !14:36
wpwrak"unix systems for modern architectures" by curt schimmel. from 1994. YMMV. (your "modern" may vary)14:37
lekernelnow there's the interesting possibility of using dataflow to build a CPU, but that would need support for speculation14:40
wpwrakof course, there probably haven't been too many changes to the state of the art since then14:40
GitHub30[migen] sbourdeauducq pushed 1 new commit to master: https://github.com/milkymist/migen/commit/b15eae3081558c2c8332f796e45b18b2b4f531de14:57
GitHub30[migen/master] Logo - Sebastien Bourdeauducq14:57
sh4rm4!addquote * kristianpaul looks for its python book20:48
larschm, he always quits when i'm about to ask something22:49
larsclekernel: i'm curently trying to understand the migen flow stuf22:56
larscso an actor does something. it has 0 to many inputs and zero to many outputs. an input has a data-in and a data-accept signal and and output has an data-out and a data-ready signal22:57
larscthe data-output signal is a normaly a register22:58
lekernelno, the data-out can have combinatorial logic too22:59
lekernelit just depends how the control signals are driven by the actor22:59
larscbut you have to have a register somewhere in the actor23:00
lekernelbtw - the control signaling is the same as the TMU which is explained in my thesis, except that stb-to-ack combinatorial feedback at an actor input is allowed23:01
lekernelno, you don't23:01
lekernelin a very simple case you can simply pass through the control signal and have some combinatorial logic in the token path23:01
lekernelthe adder actor (and the other basic logic functions) do this, for example23:02
larscso it only acks the input once the output has been successfully delivered?23:02
lekernelof course, if you stack too many of those actors in series, you can have timing closure problems later23:02
lekernelthat's why there's a generic "buffer" actor which simply inserts a register23:03
larscand you have to insert the buffer manually?23:03
lekernelat the moment yes23:04
lekernelbut it shouldn't be too hard to implement some algorithm that examines the graph and inserts buffer actors based on some heuristics23:04
lekernel(btw, the buffer actor adapts to any data type automatically)23:04
larscis there any plan that an actor can adapt it's number of stages depending on the graph23:07
larsce.g. if you have a multiplier in paralell with some other stuff23:07
lekernelyou mean, for pipeline compensation?23:08
larscand the other stuff takes a fixed number of cycles23:08
larsci don't know what pipeline compenstation is23:08
lekernelhaving the same number of registers in all data paths so all associated data elements come out at the same time23:09
larscok. no i meant if we know from the graph that there is an actor in paralel to our actor which needs a fixed number of cycles and our actor can be implemented with different cycle times, that the cycle time would be choosen, so that the resources usage is minimized23:12
lekernelyes, but I'm rather thinking about implementing it in a more heuristic way23:15
lekerneli.e. you run a simulation of your whole system on some datasets23:15
lekerneland it tries to find which actors are uselessly fast/resource intensive, and tries to switch them to more sequential implementations23:15
lekernelin the same vein there can be actor sharing, too (i.e. if the same actor appears twice in the graph, it can be only implemented once, and some glue logic multiplexes the tokens in and out)23:16
lekernelsupporting this sort of stuff only in the "fixed number of cycles" case is too limiting to be really useful imo23:17
lekernelin real world, you have DMA's to system memory and algorithms with a processing time depending on the data23:17
lekernelthis whole thing would only appear way later though23:18
lekernelI want a migen version with great "manual" dataflow to start with :)23:18
lekernelanother "blue skies research" area is speculative execution. then you could imagine to build efficient pipelined CPUs quite easily using dataflow if done right23:22
lekernelbut I'm not really thinking about this yet... too much to do already23:22
larscah, ok. the combinatorial scheduling model is just not mentioned in the README23:26
larscso that's basically a passthrough of the control signals and some combinatorial logic applied to the data23:27
lekernelyes, but it can be a bit more complicated than a passthrough23:27
lekernelie if you have a combinatorial actor with two inputs and one output23:28
lekernelit must only ack those two inputs at the same time, and when both have a token to send that can be accepted downstream23:29
lekernelthis needs a few AND gates23:29
lekernelpassthrough is only in the simple 1 input 1 output case23:29
larschm, i guess two outputs, one input is even more complicated23:30
larschm, copy & paste error in ala.py for And()?23:32
GitHub83[migen] sbourdeauducq pushed 1 new commit to master: https://github.com/milkymist/migen/commit/1966117e17174141a4c2794be43d53a7804b87bb23:37
GitHub83[migen/master] flow/ala: fix typo for And (thanks Lars) - Sebastien Bourdeauducq23:37
larscsomehow the distinction between different scheduling models reminds me of 'reg' and 'wire'23:45
lekernelthe point of scheduling models is (1) to have generic control logic in the base Actor class (2) to be able to implement algorithms that do things like remove the control logic and signals when a static schedule is found, insert buffer actors, equalize pipelines, etc.23:49
lekernelso I think you have spoken too fast *g*23:50
larscyes, but for example combinatorial is just a special case of pipelined, with the length of the pipeline being zero23:51
larscalso it is a special case of sequential with the ratio being one23:52
larscalso which scheduling model has a actor which is combined actor out of an pipelined and sequential actor?23:53
wpwrakso the scheduling model is basically a hint to the code generator ? i.e., in theory, a perfect code generator could figure it out on its own. but it may be hard to implement.23:54
larscimo a better model is to let an actor have both properties23:58
larscthe number of pipeline steps and the number of sequential steps23:58
larscimo a better model is to let an actor have both properties23:59
larscthe number of pipeline steps and the number of sequential steps23:59
--- Sun Jan 22 201200:00

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