Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers

fpga triststate

Altera_Forum
Honored Contributor II
1,058 Views

Im considering using fpga for a system that I want to design, that would use a number of internal buses. Can the outputs of LEs be routed through tristates to be connected to such an internal bus. For my application, the cycloneIII would have plenty of registers and logic, however I couldnt find any information on tristates. I would need a device that either has these on the output of the LEs or in a separate bank that I could route the LE outputs to. Is there an fpga or cpld that will accomodate this? 

 

The design I am thinking of would require a couple of thousand of them
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
358 Views

To understand the restrictions in synthesis of internal tristate nodes, it's important to know, that CPLD, FPGA or ASIC have no real internal tristate capability, only unidirectional point-to-point connections between logic cells.  

 

Thus an internal tristate construct has always to be translated to multiplexers. In a real tristate circuit, multiple drivers can drive out simultaneously (although causing a bus contention). This can't happen in multiplexer circuits, all concurrent enable signals for a particular tristate node must be combined to an unequivocal multiplexer select signal.  

 

Internal tristate conflicts respectively synthesis failure ususally happens, if no clear multiplexer select condition can be found. This may be the case, cause the select conditions are actually conflicting or at least unknown in part. You have to change the design to remove the problem. As a simple rule, all select conditions should be derived by asynchronous logic from the same signal set in an exclusive way.  

 

The other option would be to use multiplexers instead of tristate nodes explicitely in your design.
0 Kudos
Reply