Login  Register

INC16 Implementation - smaller?

classic Classic list List threaded Threaded
3 messages Options Options
Embed post
Permalink
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

INC16 Implementation - smaller?

andybendy
1 post
I used a series of 16 half adders to implement the INC16 chip and I was just wondering if there was a shorter way using less chips to implement the increment16 chip?

This course is really cool!
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: INC16 Implementation - smaller?

Renslay
27 posts
If you already have the ADD16 chip, you can use that to add the input and a constant 1.
Reply | Threaded
Open this post in threaded view
| More
Print post
Permalink

Re: INC16 Implementation - smaller?

WBahn
Administrator
1552 posts
In reply to this post by andybendy
andybendy wrote
I used a series of 16 half adders to implement the INC16 chip and I was just wondering if there was a shorter way using less chips to implement the increment16 chip?

This course is really cool!
The answer depends on exactly what you mean by "less chips".

If you are doing things in order, you should have already implemented the Add16 chip. So consider what the Inc16 functionality is in terms of adding two 16-bit numbers together.

But the real question is whether using a single Add16 chip to implement the Inc16 chip really count as "less chips"?

From the perspective of leveraging hierarchy and functional abstraction, it can be argued that the answer is yes, and since that is the mindset of the course, that might be sufficient for you.

But if you are thinking more along the lines of implementing that functionality with fewer base parts (fewer transistors on a real piece of silicon) or having a smaller propagation delay (a faster part), then the answer is that your implementation using half-adders is much better, despite having a lot more chips at the top level, than using an Add16. But, we can still do a bit better, though we quickly get into the tradeoff between using fewer gates but having a slower part, versus using more gates but getting a faster part. That's the typical tradeoff in digital design.