95df06e458af7549352a73f25ed4c8edfb23e7ea
[soc.git] / src / soc / sv / svstate.py
1 # SPDX-License-Identifier: LGPLv3+
2 # Copyright (C) 2021 Luke Kenneth Casson Leighton <lkcl@lkcl.net>
3 # Funded by NLnet http://nlnet.nl
4 """SVSATE SPR Record. actually a peer of PC (CIA/NIA) and MSR
5
6 https://libre-soc.org/openpower/sv/sprs/
7
8 | Field | Name | Description |
9 | ----- | -------- | --------------------- |
10 | 0:6 | maxvl | Max Vector Length |
11 | 7:13 | vl | Vector Length |
12 | 14:20 | srcstep | for srcstep = 0..VL-1 |
13 | 21:27 | dststep | for dststep = 0..VL-1 |
14 | 28:29 | subvl | Sub-vector length |
15 | 30:31 | svstep | for svstep = 0..SUBVL-1 |
16 """
17
18 from nmigen import Record
19
20 class SVSTATERec(Record):
21 def __init__(self, name=None):
22 Record.__init__(self, layout=[("maxvl" : 7),
23 ("vl" : 7),
24 ("srcstep" : 7),
25 ("dststep" : 7),
26 ("subvl" : 2),
27 ("svstep" : 2)], name=name)
28