1 //
2 // Copyright (c) 2010-2021 Antmicro
3 //
4 // This file is licensed under the MIT License.
5 // Full license text is available in 'licenses/MIT.txt'.
6 //
7 
8 using Antmicro.Renode.Core;
9 using Antmicro.Renode.Core.Structure.Registers;
10 
11 namespace Antmicro.Renode.Peripherals.Miscellaneous
12 {
13     public class LiteX_SoC_Controller_CSR32 : BasicDoubleWordPeripheral, IKnownSize
14     {
LiteX_SoC_Controller_CSR32(IMachine machine)15         public LiteX_SoC_Controller_CSR32(IMachine machine) : base(machine)
16         {
17             DefineRegisters();
18         }
19 
20         public long Size => 0xC;
21 
DefineRegisters()22         private void DefineRegisters()
23         {
24             Registers.Reset.Define(this)
25                 .WithTag("reset", 0, 1)
26                 .WithReservedBits(1, 31)
27             ;
28 
29             Registers.Scratch.Define(this, 0x12345678)
30                 .WithValueField(0, 32, name: "scratch")
31             ;
32 
33             Registers.BusErrors.Define(this)
34                 .WithTag("bus errors", 0, 32)
35             ;
36         }
37 
38         private enum Registers
39         {
40             Reset = 0x0,
41             Scratch = 0x4,
42             BusErrors = 0x8,
43         }
44     }
45 }
46