We play with technology. Sometimes we discover things we think are worth sharing.

Latest Comments

Philip

Thank you for taking the time to post your appreciation. I think you have spotted a mistake and I need to re-test with your correction.

The AMD/Xilinx question states “This question is closed", so I can’t add anything new to it. Perhaps one day I will get a reddit account and post there, but feel free to make the link yourself.

Best wishes,

Philip

30/09/25 @ 04:30 pm
Pablo

Hi,

I want to thank you for this post, I don’t have deep knowledge of TCL and without this post I don’t think I would have been able to use the Vivado libraries in QuestaSim.

I think this post is much more useful than the two posts you quote from the AMD forum and Reddit so I encourage you to write an entry in that Reddit post with the link to this website, as it appears much higher than this website in Google searches.

Just a comment: when you compile the XPM library on lines 142-145 I think the correct path to the FIFOs package is

"%xpm%\xpm_fifo\hdl\xpm_fifo.sv" ^

instead of

"%xpm%\xpm_fifo\simulation\xpm_fifo_tb.sv" ^

Or at least that’s how it worked for me.

Regards,

Pablo

30/09/25 @ 09:37 am

In response to: Working With AXI Streaming Data

Comment from: Member

Philip

Hi Erik,

The line of code you point to is a pure signal (wire) assignment outside a clocked process and hence there’s no register on that line. The ready signal takes the output from the register on line 68. It then inverts it before it leaves the component. Strictly speaking that’s not purely registered, but for most cases it is good enough. If you want a fully registered solution take a look at the AXI Register Slice from Xilinx.

I’ve referred to the ITDev blog post many times when working with AXI-S. I use their non-registered solution all the time as it is so simple. I’m glad to have been of use, but I can’t take credit for the original article.

Philip

03/06/25 @ 06:34 pm

In response to: Working With AXI Streaming Data

Comment from: Erik Visitor

Erik

Hi Philip,

Let me thank you for such a wonderful post. I’m starting to battle with managing upstream and downstream axi connections and I felt like missing something, and this post has just nailed it.

Just a quick question: In the pipelined solution, you say you’re registering the ready signal. Does that occur in line 82 where us_ready <= not expansion_valid_reg; , because expansion_valid_reg is assigned synchronously?

03/06/25 @ 12:45 pm
Joseph

It is also worth noting that you can update a VHDL signal from TCL using the force command:
force -deposit <signal_name> <value></value></signal_name>

This means that bidirectional communication between TCL and VHDL is possible.

18/09/22 @ 09:24 pm