FPGA internal tristate buses
fpgasite.blogspot.com
fpgasite.blogspot.com
The tradeoff in something like the 8008 is lower performance: the 22 bits required to form a full address + data pair need 3 clock cycles to travel from inside the CPU to the peripherals.
What we see instead in FPGAs is "buses" like AMBA - unidirectional data & address, sometimes with wide paths for data (the Xilinx AXI4 generator claims up to 1024 bits). These let designers take advantage of plentiful interconnect to get more bandwidth without needing the underlying FPGA's clock rate to increase.
What what I've heard/read. The RAM change is entirely due to architectural improvements and a shift towards "columnar" design. Architects have learned that having your data flow in a similar direction simplifies routing and leads to more dense and faster designs.
The pattern:
LOGIC <- CONTROLLER <=> RAM
Doesn't translate well to modern FPGA architectures because of the multiple data directions, so architects switched to:
INPUT/CONTROLLER -> RAM -> READ_LOGIC
* This is a simplification as FPGAs place and route is a pretty huge problem with many trades offs to consider.
The tristate buffers were abandoned on the FPGA market, followed by the ASIC market.
I just wanted to see the architectual reasoning behind how switching from tristate -> unidirectional leads to faster interconnects.
I suspect it also provides a nice guarantee that you will never have two drivers on the same line (potentially causing short-circuits).