Frank Duggan: Micro Architecture and Aspiring to MIT
Judy Warner: What first got you interested in developing your own microarchitecture using discrete logic?
Frank Duggan: Without really knowing the specifics, it was something I'd wanted to do since I was little. I was obsessed with my Snap Circuits electronics kit, and liked to challenge myself to build circuits that do various things. At some point, I decided that building a computer was the ultimate challenge. This was probably because I found them to be very mysterious, and concluded that if I didn't understand how they were possible, they must be very difficult to design.
Warner: Have you done assembly language programming for any other devices? If so, were there things you wanted to change, and why?
Duggan: I haven't programmed in any other assembly languages, although I know a little bit about ARM assembly. When I was making the BEEBA assembly language, I didn't take existing assembly language designs into consideration. I just looked at the instruction set that the hardware runs and devised a way to represent it in text.
Warner: What was your biggest challenge during the development of Rev 2 of BEEBA?
Duggan: The biggest challenge was designing the instruction decoder. I needed to find a way to allow for branching and looping operations. The 16-bit instructions are not wide enough to specify an instruction to jump to and a location to read from to decide whether or not to jump there. After some brainstorming, I found a solution that works within the system of copying data from one location to another. Three writeable locations are used to buffer an instruction position. A fourth writeable location is used to decide whether or not to jump to the buffered position. When an odd number is sent to that location, the instruction computer copies the buffered location into the program counter. When an even number is sent to that location, the computer does nothing and proceeds to the next instruction in the sequence. The electronic implementation of this was simple, and could fit in the limited space of the instruction decoder's board.
Warner: What techniques did you use for debugging the board?
Duggan: I used jumper wires to connect parts of the computer to a breadboard so that I could test them in isolation. Sometimes I hooked up a single board of the computer, sometimes I connected a few boards. I found a mistake in the general-purpose register board where it was reading read/write locations backwards. Since I already had the boards by this point, I had to drill holes in them and make the correct connections with wires.
Warner: What methods did you use to prototype, before you began the PCB Design?
Duggan: I built portions of the design on a rather large breadboard. To test them, I attached switches and LEDs to certain input and output pins. After making sure they worked, I drew them in the CAD program I was using.
Warner: Have you designed this as open-source? If so, where can people look at it?
Duggan: It is now! https://github.com/giraffeics/BEEBA I should have published the design files a long time ago, but now they are out there.
Warner: What are your aspirations for college, and what would be your #1 pick for a university and why?
Duggan: I would like to study Electrical Engineering and/or Computer Science. I've been doing those in some capacity for years now, and I like doing them, so it wouldn't make sense to stop now. MIT is my #1 pick since I visited the campus and took a tour. My first priority with schools is the curriculum, and MIT offers flexibility that would allow me to pursue my interests in both Electrical Engineering and Computer Science. They offer very specific courses, such as computer graphics and a course where students design a processor. I like to learn by doing, and that is literally the ideal upon which the school was founded: "Mens et Manus". Also, I talked to some students during my visit, and one of them told me about the job opportunities she had while studying at MIT, which included working for Google. The ability to get serious work in the field while in college is certainly appealing. Finally, research opportunities. This is very important to me, since I see it as a way to make meaningful contributions to the field. I know that most colleges nowadays boast about the research occurring at their institution, but MIT is nonetheless a great place on that front.
Warner: Frank, it was very nice meeting you at the NYC Maker Faire, and thank you very much for this inspiring interview. Wishing you all the best as you look forward to college, and our team at Altium has our fingers crossed that you will land at MIT.
Duggan: Thank you, Judy. It was nice meeting you and I appreciate the interview and support!
See Duggan’s YouTube video describing BEEBA, HERE