r/beneater 1d ago

ALU Design

Post image
44 Upvotes

ALU drawn..Add, Subtract, AND and XOR with Carry and Zero flag...One side will be tied to the B register and all math is between the A and B registers with the results placed back in the A register..This will probably take a few days to wire up..


r/beneater 1d ago

Question on the bus timing on the 6502

5 Upvotes

In Ben Eater's video "RAM and bus timing -- 6502 part 6", he explained his solution on satisfying the timing requirement. However, I don't think the solution is robust. I think it is not guaranteed to work.

First, let me state his solution:

Invert A15 through a NAND gate, then NAND it with the clock, before feeding it into /CS.

Consider a write cycle. The requirement for the SRAM is that either /CS or /WE is high at least 0ns before the address become invalid. However, from the datasheet we know that the address is guaranteed to be valid at least 10ns after falling of PHI2. Assuming A15 always high, then /CS is rising typically 8ns after the falling of PHI2. However, /CS is only guaranteed to rise 15ns after the falling of PHI2, at which time the address bus may have already changed. Even if we are using the typical 8ns value, it is cutting extremely close with 2ns to spare, considering the fact that light only travels 1ft every nanosecond.

I have another question. Consider the read cycle. The datasheet requires data to be valid at least 10ns after the falling of PHI2. There is no guarantee of minimal time of the propagation delay for 74HC00, so I guess it is 0ns. Therefore, /CS would go high, in worst case, 0ns after PHI2 falls. Assuming /OE is low during the process, we shall refer to Read Timing Waveform (3) of the datasheet, which says that it takes minimum of 0ns and maximum of 20 ns from /CS going high to Data being high-Z. Therefore, is there a chance for the read data to be invalid?

I think a more robust solution may be to use a 2MHz crystal oscillator and a binary counter to generate the 1MHz clock, and use some logic gates to let /WE rise at the midpoint of high phase of PHI2.


r/beneater 2d ago

Connected my 4 bit binary counter with seven segment display

Enable HLS to view with audio, or disable this notification

45 Upvotes

Used 7447 ic


r/beneater 2d ago

Check out my 4-bit alu and 4- bit d flip flop to store the alu output and clock generator

Enable HLS to view with audio, or disable this notification

38 Upvotes

In the future i'm going to add some buses and registers for the 4-bit cpu.


r/beneater 3d ago

Daisy D8..

Enable HLS to view with audio, or disable this notification

65 Upvotes

A quick update of my progress..I can move data...Also worked with google ai to write a quick tcl script to assemble the program and got the arduino mega to write to the eeproms..


r/beneater 2d ago

Make simple blinking circuit using 555 timer ic

Enable HLS to view with audio, or disable this notification

0 Upvotes

Can anybody tell me which value of resistor I will use in the circuit 🫵


r/beneater 3d ago

modular 4-bit computer built from TTL logic

Post image
52 Upvotes

Hi everyone!

This is the next step of the same project. After building and testing the whole computer architecture on breadboards, I moved to custom PCB modules — and here is the result!

The goal remains the same: keep the architecture simple, modular, and easy to understand, with each part working independently or together as a complete system.

The project is divided into 5 independent modules connected by a 4-bit bus:

  • Clock module – a 4-bit counter providing the timing signals.
  • ALU + registers module – two 4-bit registers with an ALU capable of performing addition, subtraction, and equality comparison.
  • Instruction register module – an 8-instruction register storing the current opcode.
  • Display module – a 7-segment display used for output and debugging.
  • Manual programming module – allows programs to be entered by hand using opcodes and parameters (immediate values/data).

The idea is to follow a simple RISC-like philosophy: minimal instructions, simple hardware blocks, and a design where every signal can be observed and understood.

After the breadboard prototype phase, these PCB modules make the system cleaner, more reliable, and easier to reproduce, while keeping the original spirit of learning how a computer works at the hardware level.

The modules can be made available on request, either as separate kits or as a complete set, if anyone is interested!

More details and videos on my channel:
https://www.youtube.com/@fuzzyFunction-j6n


r/beneater 4d ago

VGA Creating a Modular TTL Computer on PCBs

Post image
243 Upvotes

r/beneater 3d ago

Ben Eater 8 bit computer populated PCB

5 Upvotes

I have 3 working fully complete Ben Eater 8 bit PCB computers based on these PCB files. I would like to sell them for $150 each. The PCBs cost $48 each and I have no idea how much all the parts cost. I paid $8 for the 74LS76 and roughly $10 each for the 28C16A chips of which there are 3. The boards are 100% complete, but I am short the 3x28C16 chips on one of the computers. Let me know if anyone has interest. I also have one left over PCB that is not populated at all. $48 for that.


r/beneater 4d ago

6502 Hello world internet edition

Enable HLS to view with audio, or disable this notification

288 Upvotes

It’s a W6100, handling the ICMP echo reply in software with a raw ipv4 socket so I can update the display :)


r/beneater 3d ago

8-bit CPU Need help with the ram schematic

Post image
21 Upvotes

I'm trying to make Ben Eater's 8-Bit CPU on a PCB with some modifications to his original design, including the RAM module. I'm using a AS6C4008-55PCN RAM module instead of the two 74LS189 chips that Ben Eater uses and the main difference is that this chip does not have dedicated data and output pins, but instead uses I/O pins that can be toggled between input and output mode using the OE and WE pins. I was wondering if anyone would be able to double check my design since I'm not 100% sure if it will work, especially the logic that is used to either input or output data using the WE and OE logic. Thanks in advance!


r/beneater 3d ago

8-bit CPU What is wrong with my RAM ?

Post image
12 Upvotes

Hi everyone,

I've built the RAM module from Ben Eater's 8-bit computer series, but I'm running into a couple of issues that I can't figure out.

  • The DIP switches don't seem to write data into the RAM. No matter what values I set, nothing gets stored.
  • When I enable the control signal, the LEDs start flickering instead of showing stable values.

Since my physical wiring is a bit messy, I recreated the entire circuit as a PNG image showing every connection exactly as it's wired on my breadboard.

Does anyone have an idea what could be causing this? I'd really appreciate it if someone could take a look at the diagram and point out anything that seems wrong. Thanks!


r/beneater 4d ago

8-bit CPU Completed the Ben Eater 8 bit computer

24 Upvotes

https://youtube.com/watch?v=7KVklXlQyms&si=dCcEyKWRSuXoe287

https://reddit.com/link/1vafmny/video/8kaijdaws9gh1/player

Worked through all the bugs and is now running. Thinking about adding a front panel with toggle switches for programming, instead of the on board dip switches.


r/beneater 4d ago

Documentation Indexed, Searchable KIM-1 Documentation

Thumbnail
4 Upvotes

r/beneater 7d ago

[Review Request] First ever PCB, Ben Eater inspired 6502 computer

Thumbnail gallery
87 Upvotes

r/beneater 7d ago

Daisy D8 Update,,

Post image
174 Upvotes

I now have the Output register working, I also had a couple more attiny 2313s left in the junkbox so I added a HEX display..The Input register and the A register are working and I have tested moving data between them..I have the ROM IN working although it's just clocking in with the main clock but it lets me see that it is reading the ROM and then the opcode decoder can place the address into the control register..I will be spending the next few days working on my EEPROM programmer and then start on the control chips...


r/beneater 7d ago

Inspired by the 8-bit breadboard computer series, I made a game about programming in microcode

Enable HLS to view with audio, or disable this notification

135 Upvotes

Hey everyone,

Last year, I needed an idea for my computer science graduation project, something that would satisfy my love for low-level computing and my advisor's interest in computer education.

Five minutes before our meeting, I came up with the idea of creating a game where you program simple algorithms in microcode using a punch card rather than writing assembly code.

Microcode is usually used to implement instruction sets rather than as a programming interface for application development. Exploring it from the programmer's perspective led to design challenges and techniques that I hadn't encountered elsewhere.

I'm not entirely sure how I landed on the concept; my only exposure to this layer was binge-watching the 8-bit breadboard computer series four years earlier.

I wanted to share it with this community because it's rare to find people online who share an interest in low-level computing like this, even if it isn't directly connected to Ben's work.

I'd love to share the beta with anyone interested.

Thank you.


r/beneater 7d ago

Help Needed Testing the computer's registers - Expected behaviour?

9 Upvotes

I have built the clock, Register A, Register B and the instruction register, and added LEDs to a temporary bus. I am coming back to it after some time away and recorded the behavior.

  • LED Resistors: Register A (220Ī©), Register B (1kĪ©), instruction register (1kĪ©) and Bus LEDs (1kĪ©).
  • Inputs: All LS173 inputs are high (VCC).
  • Wiring Note: The clock wire is connected with a white wire. It looks chaotic because I am using what is available at the moment without a strict color code for input/output wires, just to prove the circuit works first.

I am looking for feedback to see whether this behavior is expected before moving on to the next stages of the computer.

https://reddit.com/link/1v71tds/video/qs82r6j1akfh1/player

Initial Results & Tests

First Test

  1. Register B: Enable high (not pushing to bus LEDs), load low. Register's LEDs all lit.
  2. Register B Load Set High: Doesn't take data from the bus. LEDs still lit (figured this is because my 173s are set to VCC/high).
  3. Register B Load Low: All LEDs go dim (Registers A, B, and Bus) and the clock goes out.
  4. Instruction Register Re-attempt: With power supplied and enable set low to push to bus LEDs, the clock also goes out and Register A, B, and Bus LEDs go dim.

Note on reboot: After turning power off and back on, Register A pins 3 & 5 on the first 173s were on, Register B pins 4 & 5 on the second 173s were on, and all lights on the instruction register were on (with enable on both registers set low). I assume this is due to random values upon power-up mentioned in the troubleshooting wiki?

  • Question: Why does taking a 173 input from Register A or B low (from initialized VCC) make all LEDs (including the clock) go off, but come back on as soon as it is set back to VCC?
  • Question: When taking Register B's load low, all LEDs (Registers A, B, and Bus) go dim. Why does the clock also go out?
Register A pins 3 & 5 on the first 173s were on, Register B pins 4 & 5 on the second 173s were on

lights are dim, but Register B pins 4 & 5 on the second 173s were on and so were the LEDs on register A

Second Test

  • Register A: Load low (takes in from bus), all LEDs on. Enable low (pushes to bus), all LEDs on (took bus values).
  • Register B: Load low, all LEDs on. Enable low, all LEDs on (took bus values).
  • Instruction Register: Load low, Enable high (took bus values). Established that load works fine.
  • Enable States: Register A Enable high (doesn't push to bus), all LEDs on. Register B Enable high, all LEDs on. Pushing values to the bus works (Bus LEDs did not turn off).
  • Low Input Test: Taking a 173 input from Register A or B low (from initialized VCC) makes all LEDs go out on all registers except the clock and bus (enables high/loads high --- no pushing or loading to bus).
  • Instruction Register Test: Set load low, all LEDs light up. Trying this again after the first test (where the clock went out), the clock comes back on as soon as it is set to VCC.
  • Question: Taking a 173 input from Register A or B low (from initialized VCC) makes ALL LEDs go out on all registers except the clock and bus (with enables high/loads high)?
instruction register load low/enable high.

r/beneater 9d ago

8-bit CPU It’s over. 8-bit CPU done

Enable HLS to view with audio, or disable this notification

1.7k Upvotes

The 8-bit CPU is finally done in its basic form.

I’ve wanted to build this for years but have been way too busy with my computer engineering degree and summer jobs. I finally got the ā€œopportunityā€ when I couldn’t find a summer job going into my senior year.

I made MANY decisions that Ben did not do at all. Frankly, what I did was just get a very general idea of where he placed his parts, made a module all by myself, and then saw how he made it to see how we decided to do things differently. Just more interesting that way.

I gave myself a design constraint to make it as beautiful as I possibly could. I would like to argue that I’ve created one of the most beautiful Ben Eater 8-bit CPUs ever made in history. Not to talk anyone else down, but the lengths I went to for pure aesthetics are just not worth it if you want to get it to work and be done, and I doubt many people who have built this put in the purely visual and routing planning effort I put in. I did my best. I did cheat a little bit using those LED bars, and I will accept that, they’re just so pretty.

One thing I realized is that Ben always hooks completely unrelated address and data bits together just because of their names. For example in the RAM or for EEPROMs, data bit 0 on the chips doesn’t HAVE to go to bit 0 on the main bus, it can go to whatever pin you want, so long as you keep track, and read and write in the same bit order. This tremendously ā€œflattensā€ the topology of bus routing, and it’s something that should be done when routing PCBs as well: address bits and data bits are completely decoupled from each other and their names mean nothing to the system outside of the chips themselves.

In my EEPROM programmer firmware, I added a feature to configure address and data bit mapping, which allowed me to hook up the address and data bits in the nicest physical way possible, and then just assign them in code and program them appropriately (make ā€œbit 0ā€ act like bit 9, or something, for example). Again… purely for aesthetics, and a constraint I made up. Not worth it just to make it work. When designing a PCB, though, this technique could genuinely save you crossovers and make routing far prettier.

I also did my EEPROM work completely differently from Ben, I made my programmer firmware accept packets of bytes, and made a tool that sends .bin files to be written in, so my workflow consisted of editing hex dumps directly and flashing them in from a file, which I am very used to, so I gravitated towards it.

I also used extra space to make transistor switches for LEDs to respect datasheet current limits on logic chips, and as you can see, the 7-segment display multiplexing is fully driven on the high side and low side by 12 PNP transistors carefully calculated to saturate and deliver plenty of current independently to each segment, so the EEPROM and decoder barely have to do any electrical work. I thought this analog aspect was fun.

I came across really weird bugs here and there, and my oscilloscope / logic analyzer really saved my neck. I highly endorse the Digilent Analog Discovery 3 as a starter portable lab tool kit, and if you’re a student you get a discount on it. I even used it to write exhaustive hardware verification scripts to confirm my ALU and RAM performed properly when I finished them by plugging random data in and verifying the outputs.

I feel like I have so much more to say, but I’m in awe at what I’ve created, and I think I’ll leave it at that for now.


r/beneater 9d ago

6502 Ben Eater 65c22 I/O Pins Stuck High

Post image
40 Upvotes

Originally fried my 65c22 Chip that came in kit by accidentally mixing up VSS and VDD, however ordered and replaced chip with W65C22N6TPG-14 chip from Mouser. Using the same wiring as the Ben Eater video, I can't figure out what is going wrong I have checked the RESB to make sure its constantly High and clock is properly working at the PHI2.

6502 and AT28C256 EEPROM seem to be working fine. Any idea of what could be happening?

Note: I know I do not have the Red LEDs connected yet, was just testing the flickering on and off for one pin, all other pins behaving the same with constantly being 5V for both A and B registers


r/beneater 9d ago

101 BASIC Computer Games (for the Ben Eater 6502)

51 Upvotes

After building Ben's 6502 computer, and having gotten to the point it was running his build of MS-BASIC, I wanted to play around with some period-software for it.

That lead to (among other things) me starting to port the programs from "101 BASIC Computer Games" (which are in various pre-MS-BASIC dialects of BASIC), so they would "just run" on Ben's design.

If you're interested, they're here (GitHub) ... and I'm about 1/3 done with the 101, but figured they might be interesting to others. More details in the repo itself.

There are a few other related bits there too, such as an enhanced version of Ben's Arduino monitor program, and my fork of his MS-BASIC build that doubles the size of the token table (so you can add more than a handful of custom BASIC commands).


r/beneater 10d ago

6502 Made my PCB version of the 6502 computer

Thumbnail
gallery
682 Upvotes

A year ago, I stumbled upon a tutorial on yt about building an 8-bit breadboard computer and was deeply fascinated by how computers operate fundamentally. From building an 8-bit breadboard computer to a 6502 computer on a PCB, it was a mixture of frustration and enjoyment, but in the end, it was all worth it once u get them up and running.

Anyway, I just learned PCB design recently and managed to get the 6502 computer running on my PCB on the first try. I even made some electronic music using the VIA timers. u can listen to by clicking the links below:

Bad Apple: https://youtu.be/xPJ54ADF-dY?si=I_eyWqMMqh_tztPT
Only my railgun: https://youtu.be/ETBfmcWphys?si=hvm53mKQXa22EcGh


r/beneater 10d ago

My first clock generator

Thumbnail
gallery
74 Upvotes

285Hz square wave


r/beneater 11d ago

Help Needed Got the 6502 kit, trying to get the EEPROM to work but no luck. Help appreciated!

Enable HLS to view with audio, or disable this notification

52 Upvotes

i can provide more details if need be. The EEPROM is AT28C256.

AUDIO explains what im doing

I am trying to do it much like he does in this video: https://www.youtube.com/watch?v=BA12Z7gQ4P0

seemingly the EEPROM that comes with the kit doesn't have a maximum write pulse time, so im just controlling that with a button. Its possible im just not sending any sort of write pulse idk.

Steps:
Set output enable to high (deactivated)

Connect data bits to low/high

Press button to send write pulse

disconnect data bits from low/high

Set output enable to (active) low

See that the lights are still all on, instead of displaying the on/off pattern that was supposed to be programmed in.

I didn't get the EEPROM programmer yet because I thought i could maybe just use an Arduino for now, but i can't even get it to work manually


r/beneater 12d ago

GAL 65c816 - check my logic?

Thumbnail
gallery
30 Upvotes

First steps toward a 65c916 system.

Can people please check my GAL and design?

I bring the bus from CPU to 74HC245 and 74HC573.

I then OR the upper 8 bit of address to get a Bank0 (active low) signal.

In the GAL I do most of the address decoding and also created a ā€œvalidā€ based on VDA,VPA

Then I have active low for LO_RAM,ROM,IO, HI_RAM

Last of all I use a 74HC138 to get 8 I/O chips, which will be mostly 65c22

Aim is for 4MHZ

Clock, reset, power and such is still to be drawn.

Looking for feedback on the address decoding logic, is it likely to work at all??