15 ms·
13-Year-Old, Nicholas Sharkey, Creates a RISC-V Core
- iancmceachern 6y agoThank you Steve for showing up for him.
- jsjohnst 6y agoAnyone taken this workshop? Seems interesting, but I’d like to hear thoughts from someone who’s done it and is an experienced software engineer.
- baybal2 6y agoQuite impressive, I once though "building SoCs is no more hard than Lego these days," building an actual core from scratch with HDL is a wholly different level of involvement.
- deleted 6y ago[deleted]
- blkknightarms 6y agoYes, it's LEGO for anyone with domain knowledge bias. I would go one further: building a functional, prototype core vs. a marketable core are entirely different beasts given the litany of testing and customer considerations. It's difficult to say what exactly this kid did since the article is light on detail; it could be an achievement. It's quite trivial to build a simple processor in HDL (.v or .vhdl) because the compiler synthesizes the actual digital logic for you. It's not much different than C or a functional language like Haskell or OCaml, but with considerations of timing and don't cares/high impedance. PS: s/no more hard/no more difficult/ because "more hard" is always improper when "harder" exists.
- IshKebab 6y agoPresumably not from scratch?
- TomVDB 6y agoWhy not?
- IshKebab 6y agoBecause it is a task that would definitely take more than 2 days even if you aren't 13. Sounds like they used some kind of specialised tool that simplifies writing a CPU: https://www.linkedin.com/pulse/zero-cpu-3-days-steve-hoover/ https://www.linkedin.com/pulse/zero-cpu-3-days-steve-hoover/
- jlokier 6y agoIt's a challenge but it's not out of the question, even for 13 years old. Designing a basic CPU with modern tools is not difficult if you understand how to do it, know the tools, and have a useful simulator. It's the hardware equivalent of a writing a bytecode interpreter in software. (Tools are usually VHDL or Verilog, and Chisel is gaining traction in RISC-V academic circles. There are many other hardware languages too, but not as well known) An experienced digital designer might rustle up a simple custom CPU in an afternoon or two. Not necessarily a great one, but good enough for some problems. They might do it as a side task during an existing logic design just because it takes a less area than the equivalent logic gates for some function that doesn't need to run at full speed. This is quite a common trick on FPGAs :-) I've done this for a network packet processor. The assembler took longer to write than the CPU, and even that was a dirty Perl script. The whole thing took maybe 2 workdays. In that instance the motivation was to avoid having to do FPGA circuit synthesis when changing the network processing program: Assembling and loading a different program into the custom CPU took seconds, much faster than the several hours for FPGA circuit synthesis.
- blkknightarms 6y agoAs a computer architecture learning process, I suggest building a microprogrammed, single-cycle processor using digital building blocks without an HDL and without library blocks. Then, refactor it to be pipelined (which demands branch stall logic). Next, add branch prediction. Then, refactor in an HDL. Finally, superscalar, VLIW, and/or unified scheduler. Choosing MICMAC or MMIX would be good macrolanguage target to start with. Remember, the microprogramming ops can be much simpler and VLIW-style. The microprogram will be a ROM block that runs the decoding and execution of the actual processor's ISA. It's helpful to write a microprogram assembly language and compiler to make maintenance easier.
- klelatti 6y agoAny recommendations for tools / environment to do this?
- jacquesm 6y agoGo wild: https://store.digilentinc.com/fpga-development-boards-kits-from-digilent/ https://store.digilentinc.com/fpga-development-boards-kits-f...
- snvzz 6y agoAnything supported by the open FPGA stack (yosys+nextpnr), which does mean iCE40 or ECP5, currently. I own/recommend iCESugar, as that's a good iCE40 devboard which is dirt cheap on the official shop in aliexpress[0]. Look at ECP5-based ULX3S[1] if you want to get fancy. More options at [2]. [0]: https://muselab-tech.aliexpress.com/store/5940159 https://muselab-tech.aliexpress.com/store/5940159 [1]: https://www.crowdsupply.com/radiona/ulx3s https://www.crowdsupply.com/radiona/ulx3s [2]: https://joelw.id.au/FPGA/CheapFPGADevelopmentBoards https://joelw.id.au/FPGA/CheapFPGADevelopmentBoards
- brian_herman 6y agoWow I took a Computer Architecture class at UIC with Professor Theys and I didn't even get this far. I got some catching up to do!
- abdullahkhalids 6y agoThe workshop is happening again early December https://www.vlsisystemdesign.com/riscv-based-myth/ https://www.vlsisystemdesign.com/riscv-based-myth/ Github is here https://github.com/kuby1412/RISC-V-MYTH-Workshop https://github.com/kuby1412/RISC-V-MYTH-Workshop
- ninjha 6y agoAlso, the course materials for CS61C at Berkeley (https://cs61c.org/ https://cs61c.org/) are publicly available if you want an intro to RISC-V/Verilog. Lecture videos for the current semester are no longer public thanks to some lawsuit, but you can find videos from previous semesters on YouTube.
- bovermyer 6y agoThat's really impressive. I'm 38 and I'm not sure I can compare to his dedication and focus.
- krallja 6y agoMy focus was way better at 13 than it is now, mid-30s
- segfaultbuserr 6y agoSame. When I was 18, I already started to experience deteriorated focus and cognition compared to my 13-year-old self. I remember being able recite the names of commands, software projects and libraries with perfect clarity at 13, with a strong ability to connect the dots (for example, if I read a technical concept in one book, I could probably recognize it when I had encountered it a month later). When I was 18 it became worse. I first discovered it after realizing I was serious confused by two programs with similar names in the middle of an IRC conversation in a FOSS-related channel. The mistake was so embarrassing according to my own standard, I knew both programs and I couldn't even believe I could confuse them, yet in the conversation I was totally blind to the mistake until someone started to question it. It was when I realized and accepted the inevitable. Interestingly, I don't remember feeling sad - I knew the same IRC channel had members who were younger than myself, yet they were able to discuss technical questions with me at the same level, if I was replaced by them, nothing of value in the FOSS community will be lost.
- burade 6y agoDid he? Because most of these stories turn out to be "It was really his parents who did most of the work"
- NicoJuicy 6y agoIt's voluntary, no reasons for the parents to be involved. Also, his parents weren't in the zoom call?
- raphlinus 6y agoNot all the time, and I personally don't consider it nice that you would assume that. There are indications in the story that the organizers know something about the full story, and I doubt they would actively perpetuate a fraud. For reference, I started programming when I was 6, did a little hardware design (easy stuff, interfacing DACs and RAM chips to 8 bit CPUs), wrote an assembler at 9, got a patent when I was 12, etc. My dad did a lot to inspire me and provide me with resources, and had some knowledge of electrical stuff (he had been an electrician in the Navy in WW2), but all the programming I did was very much mine. So it's not hard at all for me to believe that this young man completed a training course intended to get people up to speed on this technology.
- atdt 6y agoThat's amazing. I Googled you and was very happy to see that you are still creating new things, after all these years. I aspire to that!
- cardiffspaceman 6y agoIf you were a teenager in the 70's it would be unusual if your parents would have granted you access to a computer. You most likely would have had to learn in college. One of my colleagues who had learned programming in college was in a shouting match with a somewhat younger programmer, and said to the younger programmer, "I've been programming since you were in diapers." The younger one replied, "So have I." It's not essential to make equipment available to people before college. The most important thing is to make sure that everyone can get into the field who can prove themselves.
- Izmaki 6y agoSimilar stories can be found in other fields where kids as young as 13 (that I know of) go through serious and tough adult-level certificates in IT Security (with parents permission) or develop the one remarkable piece of software after the other. I’m equally happy for all of them that they live in a day and age where it is possible for them to explore their hobbies to these great lengths.
- thatannoyingguy 6y agoI got my first certification at the age of 15. It is truly amazing what young people can achieve nowadays, as long as they are surrounded with the right people and technologies. I read something some time ago, where a 13-year-old built a fusion reactor in his home.
- frostburg 6y agoI recall discussing that Farnsworth–Hirsch fusor build with a particle physicist friend and from looking at the (very unshielded) apparatus we felt that it was extremely dangerous to operate for a lot of reasons (chiefly, but not nearly only, the neutron flux). Impressive work but really unwise.
- tachyonbeam 6y agoThe internet makes a huge difference. I first got the internet at home when I was 12. Was then able to learn to program. Before that, I really wanted to learn everything I could about computers, but the local library didn't have the books I needed, I didn't have any adults or friends who could teach me, and I also didn't have the software I needed (I didn't even know what a compiler was). The internet gives anyone who wants to learn about programming and electronics access to references, tutorials, YouTube videos and even knowledgeable people they can ask questions to.
- YZF 6y agoI learnt to program at age 12 with no Internet. We had magazines, we had manuals, we had libraries. It used to be that a "home computer" came with a programming language (usually BASIC) and some introductory material out of the box so a whole generation of programmers learnt that way. But I guess there was some gap where this wasn't a given any more... In some ways today is worse than the "old days" because you don't need to program these things to do stuff with them.
- yunyu 6y agoSuper impressive, I couldn't even figure out Minecraft redstone circuits at that age
- ponker 6y agoAs an individual I am impressed and happy for him. But I’d prefer that society doesn’t celebrate stories like this with public accolades. I think it encourages a “maximum accomplishments in minimum time” way of living which is antithetical to my own beliefs about how to live a good life.
- amelius 6y agoIntel should hire this kid to get their mojo back.
- neilv 6y ago> I’ve since learned that Nicholas has been awarded in spelling bees and math competitions and is an expert at solving the Rubik’s Cube. Somehow, I’m not surprised. That's encouragement of one kid, to keep working and learning. But I think that publicly singling out one kid like that can be discouragement of kids around that one kid, if it's implied to them that they have less aptitude.
- devenblake 6y agoI don't want to poop on Sharkey's achievement, because I at 17 am nowhere near the level of expertise they demonstrated, but it should be noted that they've had the means to be successful in this endeavor, whereas most young students even today do not (21 million Americans don't have broadband Internet, fewer have good teachers, even fewer have good computer teachers, etc). Imagine the untapped potential lurking in kids too poor to really take the time to learn about this kind of thing.
- centimeter 6y ago> kids too poor to really take the time If there's one thing poor kids have, it's free time. I think it's actually relatively easy for a smart poor kid in the US to learn ~whatever they want; that was certainly my experience, and I think the structures that were available to me are available to basically any American kid today. One thing to keep in mind is that poverty is strongly anticorrelated with intelligence - this is not PC, but the evidence is overwhelmingly clear - so it's easy to see that there aren't many poor kids doing stuff like this and (mistakenly) conclude that it's because they don't have the extrinsic opportunity, rather than that they lack the intrinsic means.
- gridspy 6y agoThere are simple things you are taking for granted which many "poor kids" do not actually have. - A quiet space that the child can use to learn - The foundation of self-efficacy and value of learning one receives from educated role-models - Access to the internet and the materials to engage with the coursework You'd be lucky to find a "poor kid" who has 30 minutes of safe time, fed and quiet. Unless you are meaning "lower middle class" as poor kid - i.e simple household with no extreme resources. In that case I do agree with you that you can do a lot with a little if you are that lucky.
- belval 6y agoI am disappointed to see how some comments jump straight to "we shouldn't single out individuals", "his parent helped" or "yes he did X but Y is on another level altogether". This really feels like some here should work on themselves to see why they feel so personally threatened by the achievements of a 13 years old. Even with the help of his parents (which we have no indication of) this is a good inspiration for other younger of our community that feels some knowledge is out of their reach.
- deleted 6y ago[deleted]
- neilv 6y agoI know that some of the people who were singled out to their classes as the smart kid (and thereby encouraged to keep learning, because they felt they were doing well at it)... suspect as adults that other kids were discouraged by it (like the other kids felt they didn't have the special aptitude). A different message than "obviously, this is a Smart Kid" would be "this achievement is within reach of kids who put the effort into it, and we should be supporting all kids to reach like this". The piece had some bits in it were hitting the first message, rather than the second.
- deleted 6y ago[deleted]
- arcticbull 6y agoAt his age — or maybe a little older, 14, 15, I’d have to check my version control history — I was developing a multi-user networked chat client using kevent/kqueue :) I remember being so inspired by the C10K problem. I miss the times when everything was new and exciting, tbh. I will say I’m really happy I kept all my old projects. Looking back I actually wrote really good software, expect for my long since shed distaste for testing.
- hbogert 6y agoI wish I was using version control at age 14 or 15 8)