This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

AXI slave design and verification

Please let me know that how to design AXI slave and do its verification? If we design AXI slave using system verilog(its hdl part) then for verification what do we need to write ?I mean master would be as VIP? and How do we verify please give a general idea in steps.

Parents
  • There is no generic answer to this question as it depends on what the slave implements.

    If you just want to verify the AXI functionality of the slave design, try reading and writing to all the slave registers using all the AXI transfer types you want to support. If there are access restrictions on some registers, test that you can only use the supported access types (for example testing that only secure accesses can access registers defined as secure access only). Try accessing addresses that do not have any register implemented, does the slave return a SLVERR response, or handle the transfer in some other expected way ?

    But if you want to verify the slave functionality as a whole, how you configure the slave to get it functioning is very implementation dependent.

    Unfortunately there is no simple answer, only you know what the slave does, so try testing all the supported functions implemented, and test what happens when an unsupported access is attempted.

Reply
  • There is no generic answer to this question as it depends on what the slave implements.

    If you just want to verify the AXI functionality of the slave design, try reading and writing to all the slave registers using all the AXI transfer types you want to support. If there are access restrictions on some registers, test that you can only use the supported access types (for example testing that only secure accesses can access registers defined as secure access only). Try accessing addresses that do not have any register implemented, does the slave return a SLVERR response, or handle the transfer in some other expected way ?

    But if you want to verify the slave functionality as a whole, how you configure the slave to get it functioning is very implementation dependent.

    Unfortunately there is no simple answer, only you know what the slave does, so try testing all the supported functions implemented, and test what happens when an unsupported access is attempted.

Children