For some reason I'm unable to visualize the primitive gates that something like a multiplexor would be comprised of, but when I see the boolean formula for said gate I can construct it without issues. Is this normal?
Also, is that considered cheating? For instance, I was unable to figure out which gates to use (And, Or, Not, which are of course comprised of NAND gates themselves). But, when I looked up multiplexors on wikipedia the boolean formula made it all clear to me.
The other thing I did, in the beginning, was look up a NAND logic article that shows how primitive gates are constructed with just NAND. The HDL was not listed. Were you guys able to build your primitive gates from NAND off the top of your head?
I suppose my main concerns are: I don't want to be doing something that's considered cheating, and I'm also wondering if I'm supposed to inherently know how to translate a desired truth table to a chip that matches it.
It's normal not to see how to build complex gates at first. Like most things, the more you do it the easier it gets.
The authors believe that students retain what they learn much better if they have to work a bit to learn it. They want the students to explore and experiment to find solutions. Researching on the web is one possible activity. Hopefully, what you find includes more than just the schematic for a circuit, but also leads you to information about how that design came about. It's up to you to deepen your research a bit.
Most students quickly get Not and And, but need to work a bit for Or. Often they find De Morgan's Law on the net. Once you have Not, And and Or, you can use canonical form, described in chapter 1, to design more complex gates.
Also, apply a bit of test taking strategy; there's a reason for the order the gates are presented. Always be thinking about how you can use the latest gates you've built to make the next ones.
It's likely that your solutions won't be the most elegant. Don't worry about that. As you work through the chapters your designs will get better. After you get through chapter 5 you might want to go back and revisit your earlier solutions and clean them up, but there is no requirement to do so.
Right away from that I can intuitively design the circuit. I've also taken advantage of abstraction by using my And, Or, and Not in more complex gates. It is indeed satisfying to build something like a multiplexor from primative gates that I built myself. So, I think I'm doing ok. And I'm having fun.
I've seen some of your other posts here. Thank you for being so dedicated to helping us. Do you teach computer science, or do you just love this stuff (or both!)?
Good to talk to you Mark. It's pretty cool that your first computer was a CADET... I imagine you must have gained much more computer science knowledge from working with such a system than most students today, in the sense that so much of the computer is abstracted away from us.
I'm just a simple Oracle DBA... I've been in IT for 11 years and I'm taking this project up for fun. I'm also reading Code by Petzold.