#milkymist IRC log for Tuesday, 2013-02-05

azonenberglekernel, xiangfu: http://pastebin.com/raw.php?i=QKqKhViS07:23
azonenbergThe interconnect muxes are now decoded for function block 107:23
azonenbergonly four unknown fields left in the macrocell config07:23
azonenbergand three or four global muxes to work out07:23
wpwraktime to draw the rest of the map :)07:43
wpwrakbtw, if you mean this graphical format to be useful for more than a quick visual impression, then it may help if you'd add horizontal and vertical lines to the arrays07:44
azonenbergwpwrak: This is a debug visualization07:45
azonenbergi plan to do something more substantial down the road for reverse engineering07:45
azonenbergBut users of the toolchain will not have any real use for this07:45
wpwrakgood then :)07:45
azonenbergBasically i'm writing RTL that is explicitly constrained to the maximum extent possible (so that very little is left up to the compiler)07:46
azonenbergsynthesize it, then verify that my output matches07:46
azonenbergAs you can see there are still a half-dozen fields or so that aren't decoded07:46
wpwrakand only part of the routing is shown07:47
azonenbergThe sample design only uses function block 107:47
azonenbergFB2 is legitimately blank07:47
azonenbergThat said, my code has not yet figured out all of the muxes for FB207:47
azonenbergthe unknowns are, first, which settings to use for FFs and IBUFs in FB2 to rout to FB107:47
azonenbergand second, whether FB2 uses the same mux settings or different ones07:48
azonenbergAll of the mux work will have to be redone for each device in the family since the mux is different widths, but i've mostly automated it07:48
azonenbergso it shouldn't be too bad07:48
wpwrakmacrocells are hardwired to pins ? or can they choose among pins ?07:48
azonenbergA macrocell is hard-wired to one pin07:48
azonenbergBut, not exactly07:48
wpwrakyeah, cracking the first one is generally the hardest bit. then it gets boringly easy :)07:49
azonenbergEach output buffer can be driven either by its attached macrocell's combinational logic, or that macrocell's flipflop07:49
azonenbergThe input buffers drive global routing as well as a high-speed path to the D input of the associated macrocell's flipflop07:49
azonenbergthe alternative input for the FF is the combinational path of the same macrocell07:49
azonenbergWhen the IBUF drives the flipflop, the combinational logic is available for internal use or driving non-registered outputs07:49
azonenbergi still have a decent amount of work to do to write a synthesis, mapping, and PAR toolchain for the architecture07:50
azonenbergStep 1 is figuring out what config bits to set to put each mux in the datasheet block diagram in a desired state07:50
wpwraklooks nice so far :)07:50
azonenbergStep 2 is taking a mapped netlist (as in, structured in the form of sum-of-product expressions with no more than X inputs at each level, D/T flipflops and latches, and I/O buffers) and packing it into the device07:51
azonenbergincluding finding places where i can use a function-block level control term rather than a separate product term for (say) each flipflop's clock enable07:51
azonenbergStep 3 is taking a generic gate-level RTL netlist and mapping it into the CPLD-friendly form07:52
azonenbergStep 4 is figuring out how to use iverilog, ghdl, or a homebrewed synthesis tool to turn HDL into generic gate-level RTL07:52
azonenbergand obviously all the way down the stack i need to be able to attach constraints to the netlist like "put this flipflop in this macrocell" or "this signal goes on that pin"07:53
azonenbergSo right now i'm still on step 107:53
azonenbergAt some point I also have to decide on how to release this07:53
wpwrakyeah, manual overrides can be very useful. also when you have some things that aren't implemented yet. then you just "override" everything.07:54
azonenbergOr if you want to try out-optimizing my optimizer07:54
azonenbergWhich probably won't be hard07:54
azonenbergAnyway right now i have one master repo for everything i've been doing lately which includes my thesis research, libjtaghal, and libcrowbar (the CPLD stuff)07:54
wpwrak(release) you mean, politely ask for the front page of time magazine ? :)07:54
azonenbergI'm not ready to release the thesis stuff yet07:54
azonenbergboth libjtaghal and libcrowbar need lots of cleanup and documentation07:55
azonenbergSo i have to decide whether to split the repo into multiple ones, release a tarball but not have public version control\ access, etc07:55
azonenbergOr whether to keep on working in my current semi-public mode until i finish my thesis07:55
azonenbergand just dump the whole thing on sourceforge/github/whatever07:55
azonenbergThere's zero doubt whatsoever that (at the latest) when i finish my thesis the entire repo will be relased somewhere under 3-clause BSD07:56
azonenbergWhat's still uncertain is whether there will be intermediate releases of the support libraries in the short term07:56
wpwrakwhy the need for secrecy ? seems rather unlikely that someone would plagiarize work you published in a way that hurts you07:57
azonenbergYou mean my thesis stuff or what?07:57
wpwrakyes, the things that go into it07:58
azonenbergI don't want to dump code out somewhere until i have a paper that talks about the science behind it07:58
wpwrakif there's one "wow" moment, maybe you want to keep that to yourself, for effect. but all the rest ...07:58
azonenbergI have a survey paper that sets the stage for what i'm doing07:58
wpwrakdon't you publish papers as you go ?07:58
azonenbergonce that is submitted i'll re-evaluate what to publish immediately and what to hold back on07:58
azonenbergI'm almost ready to submit the first one07:59
azonenbergonly been working on this for a year and a half and the first year was mostly coursework07:59
wpwrakthesis advisor not yet breathing down your neck ? :)07:59
azonenbergLol he's decently happy with what i've been doing so far07:59
wpwrakheh. what has "publish or perish" come to ? ;-)07:59
azonenbergLol, well i have 15 pages i sent to him and the other guys in the research group for a review08:00
azonenbergwaiting for suggestions08:00
wpwrakthat's already two papers. conference tend to like things short.08:01
azonenbergIt's a survey paper so it'd go in a journal08:01
wpwrakokay, that'll work then08:02
azonenbergAnd will also turn into the related-work section of my thesis08:02
azonenbergso if i have to strip it down a bit for publication that's fine08:02
wpwrakof course. writing the actual thesis is mainly copy & paste :)08:02
azonenbergI suspect that 44 references is a little bit long for a conference paper08:02
wpwrak3 per page. not too bad. but of course the overall length would be frowned upon.08:04
azonenbergYeah, like i said i'm not even considering submitting it to a conference08:04
azonenbergperhaps original research in six months or so08:04
azonenbergbut journals are a more proper venue for survey papers anyway08:04
azonenbergThe survey paper outlines the problem i'll be doing my thesis on so once i get that out i'll probably move my repo to full-on public08:04
azonenbergright now i have a viewer on a Redmine install that doesn't require a password but isn't linked anywhere08:04
wpwraksounds good08:04
azonenbergas in, i'm not exactly trying to hide but i don't think i have enough to show yet to go out of my way to publicize it08:04
azonenbergMost of the code i have now is libjtaghal, libcrowbar, an old MIPS softcore that is going to get replaced by a new design soon, and the NoC i'll be building all of the fun stuff on08:05
wpwrakyou can also have some less academic papers on technical details08:05
azonenbergI intend to do a few tech reports etc08:05
wpwrakironically, these may end up getting a lot more citation than the rest :)08:05
azonenbergor maybe just jam something up on my website08:05
azonenbergI'm not out to get a million citations or sell my work to some company and get rich or whatever08:06
azonenbergi just want to get a phd, hopefully make a useful contribution to the field, and then go find a lab that likes what i've been spending the last few years on enough to hire me :p08:06
wpwrake.g., for linux-related stuff, i had papers at linux-kongress, linux symposium, etc. these are not academic events, but you still get the word out08:06
azonenbergWell I have my hands in so many places with this work its not even funny08:07
azonenbergi'm doing SoC architecture, NoC, CPU microarchitecture, security, networks, OS architecture08:07
azonenbergi'm citing stuff ranging from IEEE papers to ACM journals to Vanity Fair to declassified NSA memos08:07
wpwraksounds as if focus may become a topic soon :)08:08
azonenbergNot really08:08
azonenbergThere is a central theme to it all08:08
azonenbergbut it's interdisciplinary08:08
wpwrakbut then, it's not so bad to err on the broad side at the beginning08:08
azonenbergand thus related work is everywhere depending on which end i'm grabbing from08:08
azonenbergI mean, when you look at stuff like fault attacks on crypto (similar but not what i'm doing)08:10
azonenbergyou need to know the math and the hardware since either by itself isn't exploitable08:10
azonenbergbut the combination is vulnerable08:10
wpwraksure. that's 2-3 fields. you had a lot more. there's likely to be a point beyond which you need things only for illustration but not as part of the core research08:12
wpwrakwhere illustration can mean a proof of concept08:12
azonenbergWell, my focus is on securing applications08:12
azonenbergby using an OS architecture including some hardware components inside a SOC08:12
azonenbergConnected by a NoC08:13
azonenbergand using a CPU with a few ISA tweaks to optimize performance for the platform08:13
wpwraksounds like at least two theses (sp?) folded into one :)08:14
wpwraksince you'll of course also need to tweak a compiler then ...08:14
azonenbergThats the beauty of it08:14
azonenbergit's microarchitecture tweaks, plus repurposing the "syscall" instruction while keeping the same machine syntax08:15
wpwrakso the compiler won't see the new instructions ?08:15
azonenbergthat's not an instruction the compiler generates anyway08:15
wpwrakah, okay08:15
wpwrakso no new compiler needed for now. maybe later :)08:16
azonenbergMost of the interesting stuff in the CPU is related to register file and pipeline tweaks for efficient multithreading08:16
azonenbergbut that's all RTL modifications08:16
azonenbergi'm taking great pains to make sure it'll work with gcc08:16
azonenbergUnmodified gcc08:16
azonenbergWhich means emulating things like branch delay slots even if the microarchitecture doesn't strictly require them08:16
azonenbergI'll probably cut a few of my planned ideas and simplify stuff08:19
azonenbergBut i might keep working on it in my spare time after i graduate08:19
azonenbergbecause this is what i plan on using to run my homebrew laptop08:19
azonenbergAnyway, enough talking about code i haven't yet written :p08:23
azonenbergthings are likely to change a lot before i actually get to that point08:23
wpwrakthere is precedent for such things happening :)08:30
lekernelfirst layout of the dual-HDMI mixer extension completed, will send to fab soon17:15
larscwhat do I need to do if I want one?17:16
rohlekernel: nice. its a extension board to the existing mm1 board and some controller?17:28
lekernellarsc, email me your post address and help me debug it17:30
lekernellarsc, can I send you parts and PCB and you do the soldering? (the HDMI connector pitch is quite small)17:31
wpwrakroh: J9 looks familiar :)17:32
lekernelroh, yes, it plugs on the extension port and adds 2x HDMI in + linear fader + rotary potentiometer17:32
wpwrakerr, J217:32
rohlekernel: nice. does it fit 'above' the board directly or does one need a flat cable?17:33
lekernelsits on top of the board17:33
rohwhen you have some samples holler.. i'd like to do some case parts to enclose it17:34
lekernelhmm, I didn't really make a good mech design for the case... it's more meant to be used on a bare board to develop a HDMI RX core17:34
lekernelthen I'll integrate it on the M1 mainboard17:34
rohsure. i wouldnt change much on the design. just pull up the walls and add cutouts to the top i guess.17:35
larsclekernel: yes, no problem17:35
rohwhen there is a series the mechanics would change totally anyhow, right?17:35
lekernelactually the HDMI connectors do not reach the edge of the M1 mainboard, so...17:36
lekernelit's really a prototype thing17:36
rohi had that on other cases already... one makes cutouts big enough to push the rubber through then17:36
rohthe same it is on most RPi acryllic cases17:37
--- Wed Feb 6 201300:00

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