Ivan's blog
Since I was a kid I’ve always wanted to build my own computer. First I had only vague ideas of how computers are made, then I got myself a book about building an 8080-based computer and programming it, later, of course, I’ve got a lot of experience with various computers and microcontrollers, but I’ve never built one from scratch. Now, when I’m 30, I can say I have fulfilled my childhood dream.
- Building a new discrete logic ALU
After a long delay I have continued my discrete logic computer project. Last time I had a working system, but the ALU was based on two ROM chips, which wasn’t nice. It’s time to change that. The ALU # The ALU is asynchronous, it takes two 8-bit values, a carry flag and an operation code as an input and produces an 8-bit result and 4 flags. It can also set the output to High-Z state and flip the inputs.
- Discrete logic chips VGA video card
The next step in my discrete logic computer project after designing a CPU and building a new ALU is to build a video card. Here’s what it can do: Video card parameters # I chose to implement a 80x30 text mode with 4 bit color (like in EGA) because of the address space limitations (only up to 216 bytes can be addressed by my CPU, video buffer should not take a significant part of that).
My discrete computer lacks two major things: sound and network. The project I describe here is the first step to making it capable of network communication. I don’t touch the computer itself now, but instead build a transceiver which converts a 10BASE-T Ethernet signal to SPI and back. I use an STM32 MCU to test my transceiver for now. In the future I plan to connect the transceiver to the discrete computer.
This post is a continuation of my journey to build a complete computer system using discrete logic components. At this point I have made a computer capable of running network applications like an HTTP server or a LAN game. Last year I built a physical level adapter which converts a 10BASE-T Ethernet signal to SPI and back. Back then I used an STM32 microcontroller to test its operation, now I’m implementing a MAC layer module to connect it to my homebrew computer.
Перевод последней статьи на #habr:
Создаём сетевую карту на дискретной логике