Need help understanding

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Need help understanding

Unc_Red84
I am completely new to all of this. I am currently working Project2. I understand the logic behind the logic gates and chips, but I am struggling on building them. I’m trying to learn Boolean algebra as I go, but it’s starting to really kick my butt. Especially Inc16 and ALU. Any advice?
Reply | Threaded
Open this post in threaded view
|

Re: Need help understanding

WBahn
Administrator
A central theme throughout all of the projects is, as much as possible, using prior pieces as building blocks for later pieces. This is why it is so important to implement the chips in the recommended order.

With that in mind, if you already have a chip that can add two 16-bit numbers together, can you think of a way to leverage that ability to increment a single 16-bit value by 1?
Reply | Threaded
Open this post in threaded view
|

Re: Need help understanding

SpoonByte
In reply to this post by Unc_Red84
Yea I'm working my way through the book as well and I'm at the end of Ch 2 now.

Its can get tough and I've sometimes spent a few days trying different ideas before stumbling on the answer and sometimes I'd have to strategically give up (I couldn't figure out the Mux myself and had to look it up after spending a week on it with like a dozen different attempts).

One thing I found that helped me with the ALU was that I went through each of the 18 functions and verified that the specific combo of control bits ACTUALLY produced the desired output. And for a few of them I took it a step further and covered up Table 2.5b and tried to predict what values for the control bits I would need to get the desired output. I think taking this extra time helped me get a better intuition for what the ALU is doing under the hood.

Hopefully that helps some.
Reply | Threaded
Open this post in threaded view
|

Re: Need help understanding

WBahn
Administrator
SpoonByte wrote
Its can get tough and I've sometimes spent a few days trying different ideas before stumbling on the answer and sometimes I'd have to strategically give up (I couldn't figure out the Mux myself and had to look it up after spending a week on it with like a dozen different attempts).
Don't take this the wrong way, but stumbling around until you happen to come across something that happens to work is not a good way to do any kind of engineering. Having said that, sometimes you have little choice and, at the end of the day, you've gotta do what you've gotta do. Regardless of how you get to a solution, however, there is plenty of room for true learning to take place if you then make the time and effort to understand why that solution works, and even better, how you could have gotten to that solution from your initial starting point.

It reminds me of some of the math proofs (and other problems) that I've tackled over the years. There have been times that I couldn't figure out how to get from the starting point to the ending point, but I could figure out how to get from the ending point back to the starting point. That gave me a roadmap to use in going the other way and there have been quite a few "Ah hah!" moments when I did so -- insights that I would otherwise have missed had I just settled for having found a solution.

One thing I found that helped me with the ALU was that I went through each of the 18 functions and verified that the specific combo of control bits ACTUALLY produced the desired output. And for a few of them I took it a step further and covered up Table 2.5b and tried to predict what values for the control bits I would need to get the desired output. I think taking this extra time helped me get a better intuition for what the ALU is doing under the hood.
This is a very good exercise -- in fact, I would recommend taking it a step further and working through all 64 of the functions. There are a couple of interesting nuggets in there. If you set up a spreadsheet, you can have it do most of the grunt work for you to produce an expression for each combination that you can then examine and simplify.