Livt packages
Livt.Bus
Version 2.0.1
Configurable Avalon, AXI4-Lite, and Wishbone memory-mapped masters, interfaces, bridges, and test components.
Published files (67)
tests/Axi4LiteTestMasterTest.lvt
namespace Livt.Bus.Tests
using Livt.Bus.Axi4Lite
using Livt.Bus.Axi4Lite.Testing
@Test
component Axi4LiteTestMasterTest
{
master: Axi4LiteTestMaster32
slave: Axi4LiteTestSlave32
new()
{
this.master = new Axi4LiteTestMaster32()
this.slave = new Axi4LiteTestSlave32(this.master)
}
@Test
fn TestAxi4LiteTransactions()
{
slave.Clear()
var timeoutTicks = this.context.TicksFor(2us)
master.SetTimeoutTicks(timeoutTicks)
slave.ConfigureDelays(0, 3, 2, 1, 2)
master.Write32(0x00000004 as uint, 0x12345678 as uint)
assert master.Read32(0x00000004 as uint) == (0x12345678 as uint)
master.Verify32(0x00000004 as uint, 0x12345678 as uint)
slave.ConfigureDelays(3, 0, 1, 2, 1)
master.Write32(0x00000008 as uint, 0xA5A55A5A as uint)
master.VerifyMasked32(0x00000008 as uint, 0x00005A00 as uint, 0x0000FF00 as uint)
slave.ConfigureDelays(0, 0, 0, 0, 0)
slave.ConfigureResponses(0b00, 0b00)
master.Write32(0x0000000C as uint, 0x11223344 as uint)
master.WriteMasked32(0x0000000C as uint, 0xAABBCCDD as uint, 0b0101)
assert master.Read32(0x0000000C as uint) == (0x11BB33DD as uint)
master.Write8(0x0000000D as uint, 0xEE as byte)
master.Verify8(0x0000000D as uint, 0xEE as byte)
assert master.Read32(0x0000000C as uint) == (0x11BBEEDD as uint)
master.Write16(0x0000000E as uint, 0xCAFE as Logic[16])
master.Verify16(0x0000000E as uint, 0xCAFE as Logic[16])
assert master.Read8(0x0000000D as uint) == (0xEE as byte)
assert master.Read16(0x0000000E as uint) == (0xCAFE as Logic[16])
assert master.Read32(0x0000000C as uint) == (0xCAFEEEDD as uint)
slave.ConfigureResponses(0b10, 0b11)
var writeCompleted = master.TryWrite32(0x00000010 as uint, 0x01020304 as uint, 0b1111)
assert writeCompleted == true
assert master.LastResponse() == 0b10
var readCompleted = master.TryRead32(0x00000010 as uint)
assert readCompleted == true
assert master.LastReadValue() == (0x01020304 as uint)
assert master.LastResponse() == 0b11
assert master.awvalid == 0b0
assert master.wvalid == 0b0
assert master.bready == 0b0
assert master.arvalid == 0b0
assert master.rready == 0b0
master.SetTimeoutTicks(2 as uint)
slave.ConfigureResponses(0b00, 0b00)
slave.ConfigureDelays(20, 20, 0, 0, 0)
var completed = master.TryWrite32(0x00000014 as uint, 0x55AA55AA as uint, 0b1111)
assert completed == false
assert master.LastTimedOut() == true
slave.ConfigureDelays(0, 0, 0, 0, 0)
master.SetTimeoutTicks(10 as uint)
assert master.TryRead32(0x00000014 as uint) == true
assert master.LastReadValue() == (0x55AA55AA as uint)
assert master.LastTimedOut() == false
}
}