One of the startups working in the AI for Verilog area contacted me with the proposal to test their tool which generates a UVM testbench for a given RTL block. My response:
I can review your results if you use your tool to rewrite my non-UVM AXI Verification IP example to UVM:
The description is here:
Note the generated testbench should support:
1. In-order pipelining for the write transactions.
2. Cases of write address before write data, address and data in the same cycle, and data before address.
3. Out-of-order read response based on read tag.
I am not interested in APB-style sequential one-at-a-time transactions (I saw it in a demo of another AI for Verilog startup). The testbench should handle multiple transactions in flight as I described above.
I expect the solution to include at least:
1. A BFM (Bus Functional Model) driver with the functionality on par with the following, but using UVM means to process the transactions. It should handle pipelining, out-of-order, different timing of address vs data (address before data, address after data), different variants of valid/ready handshake (ready default high or low, following AMBA AXI rules from AXI4 spec):
2. A testbench with UVM sequences covering at least the scenarios in the file below. I am not interested in an unconstrained random-only testbench which another “AI for Verilog” developer showed to me recently. See the direct test scenarios here:
3. You can use the following reference slave as DUT (Design Under Test), but you need to implement from scratch the monitor agent:
Before I review the code, I need to see a simulation log demonstrating that the testbench covered pipelined and out-of-order scenarios. Specifically:
1. Multiple write addresses before multiple write data:
2. Write data before write address:
3. Out-of-order read data with ID tags:
Thank you,
Yuri Panchul



What you want to achieve
I didn’t get
Can you describe me little more
I have written axi3 vip
What I am trying to achieve is:
1. Test claims of AI EDA startups that they generate proper testbenches that support pipelined and out-of-order designs.
2. Collect different variants of an example AXI VIP to teach students. I saw many variants of such IP, you can add yours.