IRC logs for #openrisc Thursday, 2013-03-21

stekernbelieve it or not, I've written some documentation:
stekernalso moved to github and changed the name to diila00:03
glowplugThat is amazing!00:05
--- Log closed Thu Mar 21 01:35:30 2013
--- Log opened Thu Mar 21 01:35:48 2013
-!- Irssi: #openrisc: Total of 24 nicks [0 ops, 0 halfops, 0 voices, 24 normal]01:35
-!- Irssi: Join to #openrisc was synced in 23 secs01:36
-!- heroux_ is now known as heroux03:55
glowplugWhats up?04:11
GentlemanEngineeI am slowly being driven mad by the wind...04:26
GentlemanEngineeWhat progress have you made in terms of a development board?04:30
glowplugNegative progress.  Actually.  Haha04:30
GentlemanEngineeDefine negative progress.04:32
glowplugIt turns out that the motor control that I need to do can be done directly from a parallel port and external powerstages.04:32
glowplugThe only reason thats possible is that my system rpm (mechanical bandwidth) is very very low.04:33
GentlemanEngineeI was curious why you were looking at this manner of exotic solution.04:34
GentlemanEngineeI assumed you had a reason.04:34
glowplugI am still going to design the board as a low-cost developer platform.  But progress might be slow.04:34
glowplugAt least I finally decided on a form factor which is an SO-DIMM module.  That will give the greatest flexibility by allowing mainboards to be tailored to a specific person.04:35
glowplugIt will also be 2-layer.  And on standard fiberglass board.04:37
glowplugSo I guess progress wasn't really negative.  But decelerated.04:37
GentlemanEngineeI see.04:38
GentlemanEngineeI am making slow progress on Memory Controller.04:38
glowplugI really want to use DDR on the board because I think it will open up a lot of development in Linux to have 512mb.  256mb is extremely limiting.04:40
GentlemanEngineeI concur.04:40
GentlemanEngineeI am simply dealing with dependencies at the moment.04:40
GentlemanEngineeIn between bouts of wind-madness, naturally...04:41
GentlemanEnginee60 - 80 km/h. If you did not enjoy it today, you may enjoy it in the morrow!04:42
GentlemanEngineeMakes the eves buzz constantly.04:42
glowplugWhere are you located?  Thats crazy...04:42
GentlemanEngineeTwo years ago, not long after purchasing the property, I was awakened by a buzzing noise.04:43
GentlemanEngineeFinally determined it was the wind vibrating the steel door...04:43
GentlemanEngineeIt would not have been my first guess...04:44
glowplugIf the steel is relatively thick no it wouldn't have been mine either.04:46
glowplugMichigan weather is pretty mild for a peninsula.04:47
GentlemanEngineeThe best is the snow drifts. 3+ feet deep accross my entire drive.04:48
GentlemanEngineeI need to purchase a larger tractor, as my small one just has not been up to the task.04:55
GentlemanEngineeSo, what manner of time-frame are we looking at for the development board?04:55
glowplugProbably 2 months for a prototype realistically.05:27
GentlemanEngineeJust found out from the neighbour she could not return with the school bus this afternoon.06:00
GentlemanEngineeShe had her husband pick her and the children up with his backhoe.06:00
GentlemanEngineeTook them over five hours to drive five km. Drifts over seven feet tall...06:01
GentlemanEngineeApparently Milkymist is using a depreciated Verilog Simulator, cver.06:01
GentlemanEngineeFound an older version of it in source.06:25
GentlemanEngineeEdited makefile to compile it.06:25
glowplugYou got MilkyMist to compile?  Is it possible to use it with Icarus?06:38
GentlemanEngineeI am attempting using Icarus.06:40
GentlemanEngineeThe result is a large number of warnings. Attempting to investigate their validity.06:46
stekernGentlemanEnginee: sounds like the climate over where you live is even more of a pain than here :/07:13
GentlemanEngineeIt can be...07:18
GentlemanEngineeI doubt I will make it to the office tomorrow either.07:18
GentlemanEngineeAre you in the south of Finland in the area of Helsinki?07:21
stekernin Espoo07:22
stekernwe've got around -10C here now07:23
GentlemanEngineeIt is odd. You are approximately eight degrees north of myself. Yet, we experience a far colder winter.07:24
GentlemanEngineeNever underestimate the heatsink quality of an ocean...07:24
stekernbut we're close to the gulf stream07:24
GentlemanEngineeThat would definitely aid you.07:25
stekernit has been around -20C last week though07:27
GentlemanEngineeIn Alberta, especially in the area of Calgary and Lethbridge, there is a phenominon known as a Chinook.07:27
GentlemanEngineeIt is an adibiatic heating from traversing the Rocky Mountains. In the winter, it is capable of raising the temperature 20 or more degrees in a matter of an hour.07:29
GentlemanEngineeThus, one may have a temperature of +15C at midnight and -20 at noon.07:29
stekern"In Pincher Creek, the temperature rose by 41°C (74°F), from -19 to 22°C (-2 to 72°F), in one hour in 1962"07:32
GentlemanEngineeIt gave me terrible migraines when I lived in Calgary.07:32
GentlemanEngineeThe wind is also positively charged, and can wreak havok on electronics during its duration.07:34
GentlemanEngineeAlso, for chemistry experiments, one must read the barometric pressure, and account for it, as it can change dramatically.07:35
GentlemanEngineeI am looking at the ODDR2 Primative being used by the milkymist memory controller.07:52
GentlemanEngineeHow available is this manner of primative on other platforms?07:52
stekernit's pretty much spartan 6 specific07:53
GentlemanEngineeDo other FPGAs have similar primatives?07:54
GentlemanEngineeOr is relying on this marrying myself to a specific FPGA from a specific vendor.07:55
stekernI guess this is alteras counterpart:
GentlemanEngineeSo, with a little abstraction, it should be possible to deal with this discrepency between platforms.07:59
stekernI haven't really looked at DDR in detail ever, but I believe so07:59
stekernI think the higher layer is completely compatible with single rate SDRAM too, so in theory it should even be possible to modify my SDRAM controller to support DDR without enormous effort08:01
GentlemanEngineeI had not considered it from that point of view...08:02
GentlemanEngineeIt might be easier to do so...08:02
stekern...but it currently only supports 16 bit data interface08:02
GentlemanEngineeWould that require much effort to change?08:03
stekernprobably not08:03
GentlemanEngineeI may take a look at it from that perspective as well.08:04
GentlemanEngineeI thank you kindly, stekern.08:04
GentlemanEngineeHowever, I believe my bed is requesting my presence...08:04
stekernyou better satisfy that request then :)08:06
GentlemanEngineeI do believe I shall!08:07
* stekern sneaks up on the non suspecting bug, slowly lifts a hammer and... *BAM!*09:44
stekernleft to do is to find the hideout where he came from09:45
stekernso the problem is clearly visible here:
stekernthe icache tagram is not write-first, but read-first09:46
stekernspartan 6 block ram resources user guide ( states that write-first is the default, but it does not get inferred as such09:49
stekernI believe quartus ii do infer them as write-first09:49
stekernI bet the simulations simulate them as write-first (I'm going to confirm this)09:49
stekernyep, simulations show write-first behaviour10:09
stekernI think I understand this now, since we're using seperate read and write addresses the restrictions under Conflict Avoidance - Synchronous Clocking applies, i.e. write-first mode would yield unreliable data when data is written to the same address as is being read.10:43
stekernso, obviously ISE decides that that's not good and infers it as read-first, without a word of warning10:43
stekernwhile quartus ii infers bypass logic and gives a warning about it10:44
_franck_ , Example 13-11 and 13-1312:38
_franck_I didn't know that (I alsmost never infers memories)12:40
stekernyeah, we use the "alternative way" under example 13-1312:42
stekernand altera does that right (as the code says)12:43
stekernxilinx tools does it "wrong" and without a warning about it12:45
_franck_"Byitself,the code describes new data read-during-writebe havior.However, if theRAMoutput feeds a register in another hierarchy, a read-during-write results in the old data."12:48
_franck_*"For this reason, avoid using this alternate type of coding style"*12:48
stekernbut the other method involves blocking assignments, which also is ugly12:53
stekernanyways, the safest is probably to describe the RAM as read-first and then manually put in bypassing logic12:54
stekernthat's  what my fix in my working tree does12:55
_franck_ok great12:55
stekernwith that fix, trivial software like dhry and the likes works again13:06
stekernit's not quite booting linux though13:06
mor1kx[mor1kx] skristiansson pushed 2 new commits to master:
mor1kxmor1kx/master 5651742 Stefan Kristiansson: cappuccino/fetch: disallow icache refill when kill_fetch=1...13:32
mor1kxmor1kx/master 0014bfa Stefan Kristiansson: spram: add explicit bypass logic for write-first behaviour...13:32
juliusbstekern: interesting bug w/ the read/write-first thing13:39
stekernwhat I find most interesting is that ISE turns valid code into something completely different without a word about it.13:41
stekernok, if it threw hands up in the air and just refused to infer it, or at least warned about it13:42
stekernotoh, if it would have, I might not have spent time on improving diila =P13:44
stekernthat's what I have dubbed the logic analyzer to13:46
juliusbahh :)13:47
juliusbvery good13:47
juliusbI'm thinking we should use the wiki on github more13:47
juliusbfor instance, to record implementation information13:47
juliusband implementation bugs like that13:47
stekernsounds like a good idea13:58
stekernthen we could link to that from
stekernI've planned to update the cappuccino documentation btw13:59
stekernit's grown painfully out of date14:00
juliusbyeah that whole documentationt hing needs an update before a release14:00
stekernyou're never going to get to a release if you're waiting to fix stuff before the release ;)14:01
stekernwell, fixing bugs is of course necessary14:01
stekernand correct documentation14:14
ams<3 common lisp <314:24
stekernams: looks like your hatred for sw have been cured! =P14:27
amsstekern: hahahahaha14:28
amsdon't get me started ... i've been fighting stupid tools all week14:28
amsmy favourite all week was when i had to frob an ELF ph and sh --- manually, using sed.14:30
stekernsounds like fun14:31
amsyes, it was, it was one of those "okie, this is stupid, will you go away if i do it in the most convulted fashion i can think of?" momeents.14:34
glowplugGood morning.  =)19:23
glowplugI read through the channel.  The idea of implimenting the SDRAM controller to work with DDR is interesting.  Maybe doing it that way would depend on the existing code quality.  Is the milkymist code messy?19:24
GentlemanEngineeNot particularly, as far as I am able to read.19:26
GentlemanEngineeHowever, it is designed for a differing chain.19:27
GentlemanEngineeAlso, it would be better to be able to have an option as to how the memory controller is used.19:27
glowplugThe Altera VS Xilinx thing is really messy.19:37
stekernit looks like this project is using the milkymist controller on altera:
glowplugThat project is extremely interesting.  x86 was an interesting choice.19:50
juliusbI believe the point was to build an x86 PC19:51
juliusbI'd like to play with that at some point19:51
glowplugAnd it runs DOS.  Clearly they have a different world-view.  Haha19:51
juliusbI'd what I started using when I was young19:51
juliusbmy goal would be to run a game like duke nukem 3d or redneck rampage on a FPGA :)19:51
juliusband there's no shortage of x86 tools out there19:51
juliusb(compilers, software, etc.)19:52
glowplugMy first computer was a 486.  But I would give anything to go back in time and tell myself about Dennis Ritchie and Richard Stallman when I was 9.  Haha19:52
juliusbactually, funnily enough, there may not be any good embedded stuff19:52
glowplugI had Redneck Rampage!  No way.  What an awesome game.19:52
glowplugThe interesting thing about x86 vs RISC (as far as I understand it) is that the physical digital logic of a RISC processor is more simple (although in more modern CPU's I realize there is a convergence).19:54
glowplugIf we are going to be succesfull in home-made semiconductor fabrication we need to focus on the most simple physical chips to reach a desired goal.19:55
glowplugIntel doesn't have to worry about such things.  =)19:55
juliusbyes, I think x86 is very basic19:55
juliusbI didn't finish typing or thinking about that sentence before I pressed enter19:56
juliusbi think the x86 implementation he's got is very basic (in the zet project) but I'm curious to know what sort of performance he's getting, though, for something like coremark19:56
juliusbif he can run it19:56
glowplugThe main difference is the "x86 translation" circuitry correct?19:57
glowplugSort of hardware abstraction to CPU functions.19:57
juliusbbut, it'd be sweet to build something emulating a proper 386/486 era machine and just out-of-the-box software work on it (I guess getting DOS going is an indication that he's there19:57
juliusbI believe he had screenshots of command and conquer, or dune ,or something going - that's quite cool :)19:57
juliusbwell, translation? you mean decode and execute?19:57
glowplugHe was running Dune 2!  Yeah it is extremely cool.19:57
juliusball modern x86s would have epic amounts of decode-x86-to-RISC circuitry inside of them19:58
glowplugI'm not sure.  It was my understanding that x86 CPU's have translation circuitry that is inherent to their design that RISC CPU's do not need.19:58
juliusbbut you could do a pretty basic one probably19:58
glowplugAhh ok.  That's what I was reffering to.19:58
juliusbwith a realtively simple pipeline19:58
glowplugThat sort of thing seems like it would be *very* difficult to get right in a DIY-ASIC (although obviously we are 5+ years away from that).19:59
glowplugWhere a processor like mor1kx could be replicated onto a chip with much less complexity and probably higher yields.20:00
glowplugmor1kx is 32,000 lines of code right?20:00
glowplugActually that might be ORPSoc.  I can't remember now.20:02
juliusbmor1kx isn't 32k20:02
juliusbI'm not sure SLOC really equates too well to gates or complexity, anyway20:03
glowplugGot it.  mor1kx is 15767 lines including documentation.20:04
glowplugThat includes all RTL files though.  And they are not all used simultaniously correct?20:05
glowplugIt also includes non source lines like the license header ect.20:06
glowplugIf you are only using cappuccini you can drop 4k lines right there.  Then probably another 1k lines for documentation + headers.20:07
glowplugSo a running CPU starts at around 10k lines or so.20:07
juliusbI see 10k lines of actual code (if treating it as C-like code)20:07
glowplugHoly shit what a good guess!20:08
glowplugYour method for finding source lines is *way* better than mine.20:08
glowplugAnd your right source lines is probably a bad measure of digital logic complexity.20:09
glowplugDo you think that x86 type cores are worth pursuing for practical purposes given how good your RISC architecture already is?20:10
juliusbI'm not sure or1k is a good architecture versus what else is available nowdays20:11
glowplugIt seems to be getting good synthetic performance compared to modern chips.  I think if it was fabricated it would perform very comparable.20:13
glowplugAssuming comparable clock speeds and process ect.20:13
glowplugIt looks like the x86 core's RTL hasn't been updated for 3 years.  =(20:13
glowplugSome updates 2 years ago.20:13
juliusbMaybe it'd be comparable to an ARM M3, but not much more20:14
glowplugWhat do you think the biggest challenge is for scaling performance/core/mhz?  Is that being delayed for the 2k architecture?20:17
juliusb2k architecture needs to be defined before we can be considering implementation challenges20:19
juliusbbut, actually, yes, I'd like to get a basic 2k architecture sorted out (I have a rough ISA drafted) and then basically mod mor1kx to run that20:20
juliusband then look at doing stuff like multiple-issue pipelines20:20
juliusbcould do hat with mor1kx as is I suppose20:20
glowplugI see so you don't plan on abandoning mor1kx but using it as a testbed for 2k functionality (whatever that might be).20:21
juliusbperhaps, yes20:22
juliusbI don't know, maybe start again with lessons learned20:22
juliusbbut it's pretty nice to work with20:22
juliusbnice code20:23
glowplugAhhh one of those types.  Complete a massive project learns a few things.  Realizes its not "absolutely perfect" so you have to start from scratch again.  Haha20:23
glowplugThat is a slippery slope!20:23
juliusb:) not from scratch probably20:23
juliusbbut if it's an entirely different ISA, you may want to do that20:24
glowplugReally I'm joking because in all honesty if all important projects were handled that way we would have significantly better systems.  =)20:24
glowplugThat and distributed development and I think we can surpass Intel in not too long.  8)20:25
glowplugHave you popped into the homecmos channel yet?  I have been working with those guys over the last week or so.  It is very promising stuff!20:26
glowplugSpecifically the sub $1,000 1 micron resolution home lithography device.20:27
juliusbno, never look at that20:27
glowplugYeah.  I'm helping them design an even cheaper version. (I'm much better at hardware than software).  Haha20:27
glowplugOf course litho is a very small part of the whole picture.  But it shows real promise / progress.20:28
stekernsince we're obviously comparing first x86 computers, my first was a Commodore 8086 (yes, you heard right) :)20:29
glowplugSub-micron resolution with that device is possible in principle as well with closed loop motor control and interferometers for linear encoder feedback.20:29
glowplugI never owned a Commadore myself unfortunately but my father had a C64.  I loved that thing!20:29
stekernyeah, I had one of those too, and an amiga 500 at some point20:30
glowplugHe had a Karate game, flight sim, all kinds of awesome stuff.  I wrote some BASIC programs but I've never excelled at software.  O.o20:31
glowplugIn fact (asside from CSS/HTML) that was the last time I programmed until I tried to pick up Verilog just recently.  16 year gap!20:32
glowplugIf you guys are interested in collaborating with the fabrication side of thise thing you should pop into the channel sometime.  You guys can make progress much faster than they can but we need both in the end.  =)20:34
glowplugIt is #homecmos =)20:34
glowplugAnother interesting thing is that although old, there is a complete functional open source toolchain for semiconductor fabrication.  Including place and route ect.20:35
glowplugI'm sure at some point in the very near future the two groups will have to collaborate no matter what anyways.  Haha20:36
stekernso it was actually an 808820:37
stekernbut ours had 720kb DD floppy drive20:38
glowplugDid you ever use cassette tapes for data storage?20:38
stekernon the C64 yes, but this isn't a C64, it's a PC20:39
glowplug<10mhz one!  That is awesome!20:39
glowplugDid you run Unix on this thing?20:40
stekernI've dusted off the old C64 about a year ago and let the kids play some bubble bobble on it ;)20:40
stekernno, just DOS20:40
stekernI remember playing leisure suit larry on it20:40
glowplugI'm still mystified that DOS took over.  It is absolutely horrible compared to Unix.20:41
glowplugI may never understand that.20:41
stekernan excellent game, good keyboard and english training for a young boy ;)20:41
stekern"open door" "give apple to man"20:41
glowplugI never thought about it like that.  Text RPG's actually would be a great tool for language.20:42
stekernnot to mention training in how to handle the ladies (or not!) :)20:42
GentlemanEngineeAt one point I had at my disposal a barn full of old 8088 clones (result of uncle's failed used computer business). I derived great enjoyment writing assembly "viruses" to push hardware beyond its capabilities (blown tracks, cracked screens, &c). Ah, youth...20:44
glowplugA barn full of 8088's!20:45
glowplugThat is pretty much unlimited fun.20:45
GentlemanEngineeIt was.20:46
GentlemanEngineeI taught myself assembly for that processor, long before I learned it was not actually designed for hand-assembly.20:46
GentlemanEngineeGeneral Purpose Registers, my left ankle...20:46
glowplugIt looks like there is a C compiler for that thing!20:50
glowplugThat would have been a lot easier.  =D20:50
GentlemanEngineeI did use C.20:51
GentlemanEngineeI also wished to learn assembly.20:51
GentlemanEngineeI was rather young.20:51
juliusbDo you guys mind if I ask what you do at the moment - are you both software engineers or something?20:52
GentlemanEngineeI am an embedded systems developer currently.20:54
GentlemanEngineePrior to that it has been hardware and some microcontroller.20:54
glowplug<= Insane hobbyist / Linux admin20:55
juliusbOh cool20:55
GentlemanEngineeMy FPGA exposure is rather limited.20:55
juliusbYes, I would class home CMOS lithography as an insane hobby :)20:55
glowplugI wish I worked more directly with product development with you guys.  Maybe some day.  =)20:56
juliusbWell, nice. You're in the right place to learn some FPGA/microprocessor stuff I think20:56
GentlemanEngineeHowever, I did manage to co-design an extremely simplistic processor.20:56
glowplugAlso he's being modest!20:56
juliusbproduct development? me too! not sure we have any products to develop...20:56
glowplugAhh there it is.  Haha20:56
juliusbYou guys know each other, then?20:57
glowplugEverybody has products do develop even if they dont realize it yet.  =)20:57
glowplugWe met in this channel.20:57
glowplugI live in Detroit, MI.20:57
juliusbTrue - I consider the mor1kx a product. I intend on packaging it up for release sometime soon20:57
juliusbAh ok, sounded like you were mates from before.20:57
GentlemanEngineeSimply a product of glowplug's bonhomie...20:58
glowplugWe are.  But before is about 2 weeks ago.  Haha20:58
glowplugThe design we are working on is based on this.
glowplugTo anyone interested.  =)21:00
juliusbthat paper is 16 years old?21:01
glowplugNope!  Wrong link!21:01
glowplugThat one is correct.  Haha21:01
glowplugNope.  I'm losing it.21:02
glowplugI really need to get these PDF's on the homecmos wiki.21:02 is not very good at this.21:02
juliusbwhat's the homecmos wiki21:04
juliusb(URL for)21:04
glowplugThe wiki was put up yesterday so it is severely lacking.21:05
glowplugAndrew in the #homecmos channel is the operator of the wiki.  I think him, one other and myself has edit right now.21:08
glowplugFinally found the right PDF.21:09
stekernAndrew Zonenberg, right? he's frequently in the #milkymist channel21:13
glowplugI wonder what he's doing in there and not in here.  HAha21:20
GentlemanEngineejuliusb, I am looking at your mo1kx-dev-env, and do not see any test benches, either for the peripherals, or for the mor1kx core. Have I missed something?21:22
stekernGentlemanEnginee: the tests are under sw/tests21:24
GentlemanEngineeI was referring to the Verilog Test Benches. sw/tests appears to be sw tests, in C.21:28
stekernand asm21:29
stekernthe cpu testbench is running the sw tests21:30
GentlemanEngineeIt is the CPU Testbench that I am having difficulty locating.21:32
stekernfor cappuccino21:33
GentlemanEngineeThank you stekern. It would have taken me some time to locate that...21:36
GentlemanEngineeBTW, there is no "blob" in the file path...21:37
GentlemanEngineeOr "master" for that matter21:37
stekernthe blob and master is github21:39
stekernmaster is the branch21:39
GentlemanEngineeI downloaded an archive to look at.21:39
stekernyeah, sure. I just meant that the "blob" and "master" is just part of the github link21:41
GentlemanEngineeAlright. I actually have not used github prior to this.21:42
GentlemanEngineeMy humblest apologies for obtuseness...21:43
stekernnp :)21:43
glowplugGit can take a little bit to get the hang of.  And some of its features are so advanced maybe they will never be used.  Haha21:47
GentlemanEngineeYou are correct. NP is hard...21:48
stekernhumm, what does your NP mean?21:50
GentlemanEngineeA complexity joke. NP = Nondeterministic Polynomial time, ex. the Travelling Salesman Problem.21:53
stekernah, I see. *My* humblest apologies for obtuseness... =)21:58
GentlemanEngineeNot at all. Not at all. I am overbrimming with obtusosity...21:58
stekernjuliusb: I think a lot of modern performance improving techniques could be applied to or1k without changing the architecture23:18
stekernespecially with the delay slot made optional23:19
stekernnot that there isn't a lot in or1k that could be made better in or2k...23:20
glowplugThat's good to hear!  Although the performance you guys already have is very good (in my opinion at least!).23:26

Generated by 2.15.2 by Marius Gedminas - find it at!