>The delay in OC outputs comes from the parasitic capacitance >of the board.
Hmm?? Do you mean the extra 'wiring' associated with the pullup R and such? If this were the case, I think the data books would say so (they would want to blame the slowness on something outside of their chip, if that was possible).
I would be more inclined to believe that the difference is in the high-current output transistor that is used in an OC output - the LS145 can sink 80mA, I believe (it has a 'fan-out' of 250!). The transistor would be physically large, and have greater inherent capacitance.
In any case, it doesn't matter (to this project) - a smaller pullup R will easily overcome the extra C, at the expense of current consumption.
>You need to compromise between power drain and propagation >delay.
Yes. But at 1-4 Mhz speeds, the compromise is very easy. With projects I've built so far (3 of them), I've used 4.7K pullups and run at speeds of either 1 or 1.8432 Mhz. All work fine. Since only one of the outputs is low at a time, there is only a 1 mA current drain added by the OC outputs.
If it were running at 4 Mhz, then *perhaps* I would need to go to 1K pullups, with a 5 mA drain. No problem!
This "compromise" can also be viewed as "flexibility".
>A low impedance totem-pole/push-pull output is more elegant >and improves bus-management.
Agreed that it's more elegant (simpler). I disagree that it would improve bus management. It locks you into the capabilities of whatever drives the bus, and an LS138 or LS139 is not a "bus driver" type of device. You cannot change the bus characteristics by changing a pullup R, because the 'pullup' is fixed inside the device.
>I want to keep all signals fast,low impedance and clean for >future expansion.
This board has never been intended to be an 'ultimate' design.
- The signals will be "fast enough" for the purposes outlined originally by Mike.
- It will certainly be expandable, within some reasonable limits (true with any bus).
- Since the board (currently?) will not have on-board bus buffers, it is expected that a 'major expansion' would include buffers on the first external card (as you said below).
>Select signals need to be available on the Exp connector to >enable bus drivers(a must!!) on expansion boards when >selected in the memory map.
Agreed. And, we've discussed in earlier replies that there should also be a pin to disable the on-board selection logic altogether (by using a 'soft ground' on the LS145's 'D' input), so that an expansion board can "take over" the entire address space if needed.
>I don't think 74LS145 will satisfy the purists.
I think that's OK - a purist will want to change *lots* of things in this design, right?. There has never been an intention to do a 'pure' design, but rather something that is simple and functional. A 'purist' solution would be to use actual bus-driver chips for all signals that go off the board.
The bottom line is that the LS145 approach gives the most functionality and flexibility with the lowest chip count (I think).
As you can tell, I'm rather "defensive" about the LS145 issue, mostly because I suggested it
. I've used it on 3 successful implementations so far...
Pete