Is it possible to program a CPLD to connect it's pins together without buffers?
Say I've got an AVR on one side, it's io pins connected to CPLD pins, and peripherals on the other side, connected to other CPLD pins.
Can the CPLD be programmed to direct connect between the two - without buffers or latches? (which would be complicated for things like I2C)
Thanks!
Short answer: yes and maybe.
Long answer: It's no problem to directly route signals through the CPLD without any latches. There will be buffers, since the CPLD somehow needs to drive the lines (the resistance of the internal interconnects can easily be 1k or so, so it's not like a direct wire). But I2C will be a little bit of work. Most (if not any) CPLDs I know of don't have open drain outputs, so you need to simulate them. To do that, you connect (physically on your board) an output and an input together (to simulate a bi-directional connection). The output needs to be driven to 0 if a 0 needs to be send and is disabled (driven to High-Z) when a 1 needs to be send (look at http://http://www.xilinx.com/support/answers/6717.htm for an example).
Very interesting, gives me something to think on...
Thanks!