It's not good practice to use tristate in standard...
# openlane
m
It's not good practice to use tristate in standard cell because skew between the enables can result in short circuit power and even timing issues that STA won't detect. It's better to add a mux.
m
I talked to quite a few people about tristates before using them for my multi project tools. I hadn't heard these issues before.
I was told that mostly tristates are not used on buses any more because of performance issues - for example not able to buffer the signals for added drive strength
k
ok, thank You for the replies. I was trying to use the tri-states because I have 32 macros and in fact each output is 16 bit width, the multiplexer will consume much more resources however seems to be the only way to proceed.
m
@Matt Venn that's another one I hadn't thought of
m
The one current use I know if for fpgas where the tristate enable is part of the fpga configuration and doesn't change during operation (thus no timing issues). You can buffer in that case by using a pair of oppositely-directed one-hot tristates controlled by the same configuration signal.
k
@Matt Liberty thank You, finally I have implemented it using multiplexer, no issue on that.