[HN Gopher] How a CPU works: Bare metal C on my RISC-V toy CPU ___________________________________________________________________ How a CPU works: Bare metal C on my RISC-V toy CPU Author : codepoet Score : 159 points Date : 2023-01-26 16:21 UTC (6 hours ago) (HTM) web link (florian.noeding.com) (TXT) w3m dump (florian.noeding.com) | robinsonb5 wrote: | Nice article! | | [I think there's a minor typo in the Combinational Logic section | - should it read "(sometimes also called combinatorial logic)"?] | apples_oranges wrote: | I love computers | sylware wrote: | Wait we get 64bits risc-v on par with x86_64 on the desktop and | arm64 on the mobile... | | Oh, and what was done, it would be illegal with x86_64 and arm64 | as you would have to pay a license in some countries... once you | want to make money out of it. | imadr wrote: | The article looks really interesting, can't wait to dig in! | | Side note: the articles on compilation also seem to be good and | simple to understand, especially the one about code generation | (which is a topic that other articles somehow always skip) | codepoet wrote: | I always wanted to understand how a CPU works, how it transitions | from one instruction to the next and makes a computer work. So I | thought: let's implement one and run a C program on it. | HappyJoy wrote: | Check out some videos by Ben Eater on Youtube | rickstanley wrote: | +1 to Ben Eater! His videos helped me so much during | university, it was like finding real gold between fool's | gold. | jchw wrote: | Ben Eater routinely makes me feel ashamed of how awful my | breadboard wiring looks. Fantastic videos. | moffkalast wrote: | Unless your name is Ben, in which case I'd advise caution. | erichocean wrote: | This is written for young people, but still accurate: _Code: | The Hidden Language of Computer Hardware and Software_ by | Charles Petzold | | Link: https://www.amazon.com/Code-Language-Computer-Hardware- | Softw... | | It's got a very slow, methodical onramp with a lot of diagrams | and a light, breezy style. You end up building a (very simple) | computer in the end, including instruction processing. | orangesite wrote: | Lovely write-up, thank you for sharing your process! | orangesite wrote: | Awesome bread recipe too! | PossiblyKyle wrote: | This gets brought up every time the topic shows up but | https://www.nand2tetris.org is a course that abstracts how a | computer works, and is worth checking out | Waterluvian wrote: | Is there a version of something like this that's purely | software? | | Like, emulate gates and keep building bigger pieces until you | have a function that's a CPU. Etc. | | I guess I'm thinking a bit more lower level than an emulator | where you implement an opcode using normal capabilities of your | language of choice. | | I guess TFA is pretty close to this in ways, too. | rowanG077 wrote: | Yeah. There this book which uses Haskell based Clash to build | up a simple CPU, a VGA controller and other peripherals. | | hardcover: | | https://www.lulu.com/shop/gerg%C5%91-%C3%A9rdi/retrocomputin. | .. | | or digital: | | https://leanpub.com/retroclash/ | Waterluvian wrote: | Oh that's exactly what I was hoping for! Thank you! | m3affan wrote: | Mvp, thanks for sharing | bogomipz wrote: | This is a really fantastic read! I wonder if the author might | consider including links to the git source for the entire | project? | carry_bit wrote: | Nice that you support multi-cycle memory instead of essentially | using a big register file like https://nandgame.com/ uses. | | I recently came across https://makerchip.com/, and the TL-Verilog | language it supports looks useful for when you want to make a | pipelined design later. ___________________________________________________________________ (page generated 2023-01-26 23:00 UTC)