Livt packages

Livt

Version 1.2.1

A compatible set of the official Livt standard-library packages for FPGA applications.

Published files (6)

tests/PackageSetCompatibility.lvt

namespace Livt.StandardLibrary.Tests

using Livt.Bits
using Livt.Bus.Axi4Lite
using Livt.Crypto.Hash
using Livt.IO
using Livt.Math.FixedPoint
using Livt.ML.Activation
using Livt.Net
using Livt.Signal.Stream
using Livt.Utils.Hashing

@Test
component PackageSetCompatibility
{
	bits: Bits

	checksum: InternetChecksum

	relu: ReLU

	memory: Ram<byte, 3>

	new()
	{
		this.bits = new Bits()
		this.checksum = new InternetChecksum()
		this.relu = new ReLU()
		this.memory = new Ram<byte, 3>()
	}

	@Test
	fn ResolvesAndRunsPinnedPackageSet()
	{
		var valid = this.bits.GetBit(2, 1) == 1
		valid = valid && Q7.ClampValue(200) == Q7.MAX
		valid = valid && Sha256.BLOCK_SIZE == 64
		valid = valid && this.relu.Apply(-3) == 0
		valid = valid && Axi4LiteMaster32.ALL_BYTES == 0b1111
		valid = valid && Crc32.BLOCK_SIZE == 16
		valid = valid && Q15SampleEncoding.Decode(0x8000) == -32768

		this.memory.Write(0, 0x12)
		this.memory.Write(2, 0xAB)
		assert this.memory.Read(0) == 0x12
		assert this.memory.Read(2) == 0xAB
		assert !this.memory.IsValidAddress(3)

		this.checksum.Reset()
		this.checksum.AddByte(0x45)
		this.checksum.AddByte(0x00)
		assert(valid && this.checksum.GetChecksum() == 47871)
	}
}