仿真平台内核初版 -tlib库 包含<sparc arm riscv powerPC>
This commit is contained in:
47
tests/unit-tests/AdHocCompiler/nested/SimplePeripheral3.cs
Normal file
47
tests/unit-tests/AdHocCompiler/nested/SimplePeripheral3.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
//
|
||||
// Copyright (c) 2010-2026 Antmicro
|
||||
//
|
||||
// This file is licensed under the MIT License.
|
||||
// Full license text is available in 'licenses/MIT.txt'.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Antmicro.Renode.Core;
|
||||
using Antmicro.Renode.Core.Structure.Registers;
|
||||
using Antmicro.Renode.Utilities;
|
||||
|
||||
namespace Antmicro.Renode.Peripherals
|
||||
{
|
||||
// This class is intentionally named differently than the file it is in to test path resolution logic
|
||||
public class NestedSimplePeripheral : BasicDoubleWordPeripheral, IKnownSize
|
||||
{
|
||||
public NestedSimplePeripheral(Machine machine) : base(machine)
|
||||
{
|
||||
IValueRegisterField value;
|
||||
|
||||
Registers.Base.Define(this)
|
||||
.WithValueField(0, 32, out value, FieldMode.Write);
|
||||
|
||||
Registers.Multiplier.Define(this)
|
||||
.WithValueField(0, 32, FieldMode.Read, valueProviderCallback: _ => value.Value * 2);
|
||||
|
||||
Registers.BitCounter.Define(this)
|
||||
.WithValueField(0, 32, FieldMode.Read, valueProviderCallback: _ => (uint)BitHelper.GetBits(value.Value).Where(x => x).Select(x => 1).Sum(x => x));
|
||||
|
||||
Registers.IsNested.Define(this, 1)
|
||||
.WithFlag(0, FieldMode.Read, name: "nested")
|
||||
.WithReservedBits(1, 31);
|
||||
}
|
||||
|
||||
public long Size { get { return 0x100; } }
|
||||
|
||||
private enum Registers : long
|
||||
{
|
||||
Base = 0x0,
|
||||
Multiplier = 0x04,
|
||||
BitCounter = 0x08,
|
||||
IsNested = 0x0c,
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user