Welcome to our site! EDAboard.com is an international Electronic Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
There are several ways to deal with tristate buses.
The problems to solve are to make sure that there are no contentions on the tristate bus, and the bus does not float.
The bus floating problem can be solved by adding bus keepers.
The bus contention problem needs careful analysis of the tristate drivers on the bus. If there is full decode on the enables of these drivers (only one driver is on at a time), then there should be no problem, although ATPG tools may have a hard time to recognize that it is fully decoded. If there are flip-flops in the decoding logic, and these flip-flops are scanned, then there is a potential of partial decoding, which can lead to bus contention. In the most extreme case, the enable line of each tristate buffer may be driven by a scan flip-flop. This will cause a major contention problem during scan.
The safest way to solve this problem is to disable all trisate drivers during scan (by ANDing each tristate enable with a testmode signal), then add a bus keeper on the tristate bus.
Hope this helps.