Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16624 Discussions

Help with Bi-directional Bus

Altera_Forum
Honored Contributor II
1,746 Views

I need some help in creating a bi-directional bus in a .bdf that links to a TI DSP board. I have logic that creates data that is read by the DSP and I write data to the FPGA from the DSP using the TI EMIF standard. I create bi-dir pins that are assigned to the TI EMIF data pins. There is FPGA logic that creates the data to be read by the DSP, and I create an output pin to simply monitor the data on a logic analyzer. So, the output pins should see both the data written by the logic and the data written by the DSP. 

 

It looks like this: 

 

Logic -------- A ----------------------- Bi-dir Pins 

|---------B----------- Output Pins 

 

(Ooops, this text diagram isn't coming out right on the post. The line containing B is connected AFTER element A.) 

 

Elements A and B have been every combination of: nothing (straight wire), WIRE primitive, or TRI primitive tied high. The DSP read operation (data generated by Logic) always works, but nothing ever appears on the output pins when the DSP writes unless I disconnect the Logic by removing A. I have had success with reading and writing with the DSP on dedicated input or output pins, so I don't think it is an issue from the DSP side (???). I am having bi-directional trouble. 

 

Can anyone lend some advice??
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
779 Views

Why are you tying the TRI primative HIGH all the time. 

 

It should only be enabled when you are reading the FPGA from the TI chip.
0 Kudos
Altera_Forum
Honored Contributor II
779 Views

Without seeing the design, I can't say for sure what is going on. I'm guessing you aren't getting the correct IO element connections. Using primitives in a bdf should look something like my attachement. This gets you the combout pin of the bidir IOE, which is what you want to drive the monitor output.

0 Kudos
Altera_Forum
Honored Contributor II
779 Views

Avatar: Thanks for the feedback. Yes, I was tying it high. I was confused by the Altera literature saying that there are no tri-states internally so for some reason I thought it would not matter (or maybe I was just confused, as always :D ). I also had a glitch up stream that was causing some trouble so that I was getting errors and controlling the tri-state didn't seem to work. Thanks for straightening me out! 

 

Randall: I appreciate the .bdf! I will try the alt_iobuf in place of the TRI primitive. 

 

Thanks for the responses!!:) :)
0 Kudos
Reply