[HN Gopher] 13-Year-Old, Nicholas Sharkey, Creates a RISC-V Core ___________________________________________________________________ 13-Year-Old, Nicholas Sharkey, Creates a RISC-V Core Author : EvgeniyZh Score : 119 points Date : 2020-11-14 14:15 UTC (8 hours ago) (HTM) web link (riscv.org) (TXT) w3m dump (riscv.org) | brian_herman wrote: | Wow 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! | IshKebab wrote: | Presumably not from scratch? | bovermyer wrote: | That's really impressive. I'm 38 and I'm not sure I can compare | to his dedication and focus. | abdullahkhalids wrote: | The workshop is happening again early December | | https://www.vlsisystemdesign.com/riscv-based-myth/ | | Github is here https://github.com/kuby1412/RISC-V-MYTH-Workshop | ninjha wrote: | Also, the course materials for CS61C at Berkeley | (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. | blkknightarms wrote: | As 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. | musicale wrote: | Hey, that sounds.... just like a typical computer architecture | course. ;-) | | disclosure: I love computer architecture courses, and I highly | recommend them. | | edit: I also think you can skip the microprogramming, but I | think I understand what you are getting at, which is that you | do a multi-cycle implementation first and then a pipelined | implementation. | [deleted] | GeorgeTirebiter wrote: | Seems to me starting with microprogramming adds complexity that | doesn't necessarily make sense for a risc instruction set? | Heck, this guy does a Verilog Z-80 without microprogramming. | https://dl.acm.org/doi/book/10.5555/3199987 | | While true the microprogramming ops are much simpler, the | inherent parallelism means writing that stuff and getting it | correct is usually challenging. | musicale wrote: | I think the "microprogramming" bit can/should simply be a | multi-cycle, non-pipelined implementation. | | Non-pipelined is easier to write and debug, especially if you | are used to regular sequential programming; once you have | that working then it isn't too hard to turn it into a | pipelined implementation. | | A basic RISC style design is probably easier than a Z-80 | because of the simpler addressing modes and the simpler | decode. | klelatti wrote: | Any recommendations for tools / environment to do this? | jacquesm wrote: | Go wild: | | https://store.digilentinc.com/fpga-development-boards- | kits-f... | klelatti wrote: | Thank you! | jacquesm wrote: | You're welcome. I have one of those (a bit older though), | and every now and then I play around with it for a bit to | keep my skills alive, it's super impressive what you can | do with hardware this flexible. Get something with as | much IO as you can find/afford. | jsjohnst wrote: | Anyone taken this workshop? Seems interesting, but I'd like to | hear thoughts from someone who's done it and is an experienced | software engineer. | burade wrote: | Did he? Because most of these stories turn out to be "It was | really his parents who did most of the work" | raphlinus wrote: | Not 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. | NicoJuicy wrote: | It's voluntary, no reasons for the parents to be involved. | | Also, his parents weren't in the zoom call? | iancmceachern wrote: | Thank you Steve for showing up for him. | baybal2 wrote: | Quite 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] | blkknightarms wrote: | Yes, 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. ___________________________________________________________________ (page generated 2020-11-14 23:01 UTC)