# Potential AXI BFM issue

**URL:** <https://forum.uvvm.org/t/potential-axi-bfm-issue/148>\
**Category:** Bitvis VIP AXI\
**Created:** [February 9, 2021, 2:51pm UTC](https://forum.uvvm.org/t/potential-axi-bfm-issue/148 "2021-02-09T14:51:48Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![GeraldCarda](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.uvvm.org/geraldcarda/32/37_2.png) [@GeraldCarda](https://forum.uvvm.org/u/GeraldCarda)\
**Post date:** [February 9, 2021, 2:51pm UTC](https://forum.uvvm.org/t/potential-axi-bfm-issue/148/1 "2021-02-09T14:51:48Z")

</div>

The AXI BFM seams to return ‘X’ on read if there is zero hold time of the input data (coming from a slave DUT). The simulation is run using the Xilinx axi\_emc IP.

 ![Selection_165](https://europe1.discourse-cdn.com/flex017/uploads/uvvm/original/1X/787bb00457c34083c2dcf8b0414be74a4f509e13.png)

Line 859 of axi\_bfm\_pkg.vhd waits for a rising edge of the clock  
Response values are collected starting at line 867. At this point in time (with zero hold time) the data is not longer valid (see the screenshot). Note: this is from a behavioral simulation, a post synthesis simulation would always show some (minimal) hold time.

Did somebody else run into this issue?  
Should here be an independant response sampleing process that will be used as the response ‘source’?

---

<div class="post-metadata">

**Author:** ![GeraldCarda](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.uvvm.org/geraldcarda/32/37_2.png) [@GeraldCarda](https://forum.uvvm.org/u/GeraldCarda)\
**Post date:** [February 10, 2021, 10:25am UTC](https://forum.uvvm.org/t/potential-axi-bfm-issue/148/2 "2021-02-10T10:25:23Z")

</div>

> [@GeraldCarda](#):
>
> behavioral

Forget about the initial ‘zero hold idea’. The error is just because of using a wrong variable for creating the log output:

Line 887 of axi\_bfm\_pkg.vhd: log() uses the wrong variable v\_data\_value:  
log(…to\_string(v\_data\_value…)  
changed to:  
log(…to\_string(rdata\_value( 0 to to\_integer(unsigned(arlen\_value)))…)  
make it work.

The v\_data\_value variable is not used at all. It may be an obstacle from rewriting the code.

Gerald

---

<div class="post-metadata">

**Author:** ![jorgenkrohn](https://avatars.discourse-cdn.com/v4/letter/j/c77e96/32.png) [@jorgenkrohn](https://forum.uvvm.org/u/jorgenkrohn)\
**Post date:** [February 15, 2021, 3:59pm UTC](https://forum.uvvm.org/t/potential-axi-bfm-issue/148/3 "2021-02-15T15:59:14Z")

</div>

Hi Gerald,

You are right, there is a bug in the log message  
We will fix this in the next release.

Regards,  
Jørgen
