Forum Discussion
Altera_Forum
Honored Contributor
12 years ago --- Quote Start --- I have another question, unrelated to bidirectional ports. --- Quote End --- I think, the question can't be answered without an exact specification of intended behaviour. Particularly: - intended reaction on conflicting writes - presumed SPI bus and user logic are unrelated clock domains, you might read inconsistent data when a register is updated at the same time. What's the expected behaviour in this regard? --- Quote Start --- Is it possible receive data from the slave without driving the bidirectional port with 'Z' on the master side? --- Quote End --- Obviously it's impossible for a bidirectional output with tristate driver. --- Quote Start --- This is the RTL representation of the bidir port in Quartus: --- Quote End --- The tristate driver in front of a register is useless (and won't be synthesized). Tristate driver can be only implemented on external pins, internal tristate drivers are converted to multiplexers (if meaningful at all). I'm not familiar with "single wire" can, but I guess it should use majority logic as standard can bus. Using FPGA, an open drain driver with pull-up would be the nearest equivalent.