-
Notifications
You must be signed in to change notification settings - Fork 16
/
turboencabulator.rdl
162 lines (127 loc) · 5.31 KB
/
turboencabulator.rdl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
addrmap turbo_encab {
name = "Turbo-Encabulator";
desc = "
!!! tip
This is an example output from the [PeakRDL HTML](https://github.com/SystemRDL/PeakRDL-html)
register space documentation generator.
The content of these pages are generated from the register structure and
`desc` properties from [SystemRDL source](https://github.com/SystemRDL/PeakRDL-html/blob/main/example/turboencabulator.rdl).
Description text can be enhanced by using 'RDLFormatCode' tags, or Markdown syntax.
Look for these 'tip' boxes throughout this demo for more highlights of features.
Configuration & status address space for the state-of-the-art Turbo Encabulator.
It is strongly recommended that users of the Turbo Encabulator watch the
[training video](https://www.youtube.com/watch?v=rLDgQg6bq7o) prior to attempting
to supply inverse reactive current. The product brief for Rockwell Automation's
[Retro Encabulator](https://www.youtube.com/watch?v=RXJKdh1KZ0w) is also a sufficient substitute.
![Turbo Encabulator](example.jpg)
";
reg {
name = "System Control Register";
desc = "
!!! tip
This page demonstrates the use of the Markdown Math plugin to insert
LaTeX-style equations that are rendered using MathJax.
For inline math, use `\\(...\\)`.
For standalone math blocks, use `$$...$$`, `\\[...\\]` or `\\begin...\\end`.
Reminder: In RDL strings, backslashes need to be escaped.
";
field {
sw=rw; hw=r;
} reset;
field {
name = "Magneto-reluctance";
desc = "
Set the absolute magneto-reluctance.
The definition of magnetic reluctance is:
$$\\mathcal{R} = \\frac{l}{\\mu_0 \\mu_r A} = \\frac{l}{\\mu A}$$
";
sw=rw; hw=r;
} reluctance[8] = 0x42;
field {
name = "Capactive diractance";
desc = "
Capacitive diractance relative to the lunar waneshaft.
The amount of energy that can be stored in a capacitor is \\(E = \\frac{1}{2} CV^2\\),
but that is irrelevant because nobody knows what 'diractance' is, so we'll leave
that as an exercise to the reader.
";
sw=rw; hw=r;
} diractance[8];
diractance->reset = reluctance;
} ctrl @ 0x0000;
reg {
name = "Encabulator Status";
field {
desc = "Degree of waneshaft side fumbling.
If this reads as non-zero, immediately reduce differential girdle spring tension.";
sw=r; hw=w;
}side_fumbling[12];
field {
name = "Stator revolutions per month";
sw=r; hw=w;
}stator_rpm[31:16];
}status;
regfile {
name = "Cardinal Grammeter";
desc = "
The Turbo Encabulator contains twelve cardinal grammeters.
Each has the following features:
- Automatically synchronizing.
- Fully independent of the five dingle arms.
- Produces reliable entropic measurements.
!!! tip
This page represents an array of regfile components.
The current page represents the grammeter[index] instance, but can be
changed by clicking on the array index of the crumbtrail above.
Notice that when the array index is changed:
- Absolute address is re-calculated
- URL crumbtrail is updated
- RDLFormatCode [lb]index[rb] tags are updated
";
reg {
field {sw=rw; hw=r;} sync_en;
field {sw=rw; hw=r;} disable;
} control;
reg {
field {
name = "Grammeter State";
desc = "Indicates the state of the cardinal grammeter
!!! tip
Any field that uses an enumerated encoding will also include
its enum definition alongside its description.
";
enum grammeter_state_e {
RESET = 2'd0 {
desc = "Grammeter is in reset state and *not* ready to be used.";
};
SYNC = 2'd1 {
desc = "Automatic synchronization in progress.";
};
READY = 2'd2 {
desc = "Grammeter has successfully synchronized with the stator";
};
SYNC_FAIL = 2'd3 {
desc = "Synchronization error!
It is likely that the differential girdlespring is not on the 'up' position.";
};
};
sw=r; hw=w;
encode = grammeter_state_e;
}state[3];
field {
desc = "Sticky-bit indicating whether sync failed";
sw=r; hw=w;
rclr; hwset;
} sync_failed;
} status;
reg {
name = "Grammeter measurement register";
field {
desc = "Current grammeter measurement.
Units are in Amperes per foot-liter (A/F-L)";
sw=r; hw=w;
} value[31:0];
} meter;
} grammeter[12] @ 0x1000 += 0x200;
};