I raced through chapters 1-3 so that I could be ahead of my student so I did things as quickly as possible and ended up make several chips that were not in the projects so that I could build the more complex chips: Wire, Make16, And16x1, and others. Later I went back and thought about how to use only the chips in the projects to build everything. (And without using the chips in strange ways.)
Using two NANDs to make a wire isn't as insane as you think. Check out Signal Crossing.
Internal buses are created when they are connected to a part's output. You can't connect a bunch of outputs together to make an internal bus. You can hook more than one signal or bus to an output. For example
And16(..., out=word, out[0..7]=lowByte, out[8..15]=highByte);
creates 3 internal buses: word is 16 bits wide, lowByte and highByte are 8 bits wide.
If you want an Xor that operates on 16-bit buses, build an Xor16 out of Xors. If you want to Xor a 16-bit bus with a 1-bit signal, that's another job for Mux16 with the help of another xxx16 chip that you've already built for the project.
--Mark
| Free forum by Nabble | Edit this page |