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/avalon/AvalonTimeoutBeforeBoundaryTest.lvt

namespace Livt.Bus.Tests.Avalon

using Livt.Bus.Avalon
using Livt.Bus.Avalon.Testing

/**
 * Verifies Avalon-MM timeout immediately before the acceptance boundary.
 */
@Test
component AvalonTimeoutBeforeBoundaryTest
{
	master: AvalonMaster32
	target: AvalonTestSlave32

	/**
	 * Creates a fresh fixture for the failing boundary.
	 */
	new()
	{
		this.master = new AvalonMaster32()
		this.target = new AvalonTestSlave32(this.master)
	}

	/**
	 * Verifies timeout after five stalls, one evaluation before acceptance.
	 * The native edge scoreboard separately checks the protocol-level deadline.
	 */
	@Test
	fn TimesOutImmediatelyBeforeAcceptance()
	{
		target.Clear()
		target.Configure(0 as uint, 0b00)
		master.SetTimeoutTicks(5 as uint)
		assert master.TryRead32(0x00 as uint) == false
		assert master.LastTimedOut() == true
	}
}