-
Notifications
You must be signed in to change notification settings - Fork 28
/
revision-history.yaml
180 lines (180 loc) · 8.01 KB
/
revision-history.yaml
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# Information about revision history. This is used by the LaTeX template.
revisionHistory:
# Information about what was added in the current version. This will be
# populated using the "version" that the Makefile grabs from git. Notable
# additions to the specification should append entries here.
thisVersion:
spec:
- Add a second standard layer convention, "inline".
abi:
- Add inline layer convention ABI.
# Information about the old versions. This should be static.
oldVersions:
- version: 4.0.0
spec:
- Fix mistake in layer-associated probe grammar.
- Define "Storable Type".
- Change the minimum width of the result of "Shift Right" on UInt to
0-bit.
- Allow assert and assume statements to have a format string
- Add Property primitive operations, starting with integer addition
- Define/clarify layer-colored probe semantics.
- Add Property primitive operation for integer multiplication
- Add Property primitive operation for integer shift right
- Drop "ref statement" support.
- Correct mistakes in code examples.
- Drop support for input probes.
- Add "enablelayer" to grammar.
- Main module must be public.
- Make commas mandatory, not whitespace.
- Restore flow description.
- Update intrinsic module example to use a real intrinsic.
- Restore id and info in printf grammar, add to verif commands.
- Add intrinsic expressions and statements.
- Remove intrinsic modules.
- Allow layerbocks anywhere in a module.
- Add language clarifying behavior statements affected by conditionals.
- No abstract reset on externally-defined modules.
- Add Property type and primitive operations for List.
- Add `formal` unit test construct.
- Add Property primitive operation for integer shift left
abi:
- Use EBNF to describe probe port macros and filename.
- Correct mistakes in code examples.
- Change layer filenames to use "-" and not "_" to avoid ambiguity with
module or layer names.
- version: 3.3.0
spec:
- Add public modules.
- Rename a "FIRRTL Language Definition" to "Grammar".
- Rename "Details about Syntax" to "Notes on Syntax".
- Add section "Circuit Components".
- Reorganized statements section.
- Rewrite of the Types section.
abi:
- Add ABI for public modules and filelist output.
- Changed ABI for group and ref generated files.
These now use the public module and not the circuit.
- version: 3.2.0
spec:
- Add optional groups.
- Fix position of "Type Alias" (it used to be in the middle of
"Reference Types").
abi:
- Add ABI for optional groups.
- version: 3.1.0
spec:
- Add Integer property literals.
- Add property assignment.
- Add Integer property type.
- Add initial description of property types.
- Change/clarify mux selector width inference to align with other
operations (must infer to some width by itself, pad if infers to less
than 1-bit).
- Fix printf grammar, expect commas between arguments.
- Fix spec bug where string-encoded literals were still used in examples
of "Constant Integer Expression".
- Fix bug in grammar where int was incorrectly specified as being binary
instead of decimal.
abi:
- Add initial description of property types.
- version: 3.0.0
spec:
- Add intrinsic modules to syntax highlighting
- Add connect, invalidate to syntax highlighting
- Add alternative `regreset` syntax
- Add literal identifiers to allow for legal numeric fields
- Simplify last-connect semantics explanation, remove "statement groups"
(which are not part of the spec) which are only used in the original
explanation
- Add enumeration types, match statements, and enumeration expressions
- Fixup probe endpoint and non-passive force examples.
- Add type alias
- Restrict string-encoded integers to only being usable in the
construction of hardware literals.
- Change string-encoded integers to radix-encoded integers.
- Remove legacy connect (`<=`) and invalidate (`is invalid`) syntax
- Make connect disallow implicit truncation (again).
abi:
- Initial ABI description.
- version: 2.4.0
spec:
- Add radix-encoded integer literals as alternative syntax for
string-encoded integer literals.
- Add missing deprecation notice for "reg with" syntax.
- version: 2.3.0
spec:
- Add intrinsic modules to syntax highlighting
- Add connect, invalidate to syntax highlighting
- Add alternative `regreset` syntax
- version: 2.2.0
spec:
- Add 'asAsyncReset' to primop_1expr_keyword in "FIRRTL Language
Definition"
- Fix grammar for force_release statements
- Add a description of conventions for modules
- version: 2.1.1
spec:
- Fix typos in force/release examples, force takes expr not int literal.
- Delineate string and single-quoted/double-quoted string in grammar.
- Deprecate reference-first statements.
- Tweak grammar of 'read' to support 'read(probe(x))' as in examples.
- version: 2.0.1
spec:
- Clarify int/string types and their allowed usage.
- version: 2.0.0
spec:
- Remove Fixed Point Types.
- Remove conditionally valid expression (`validif`)
- Remove partial connect ("<-")
- Remove FIRRTL forms and lowering, indicate that high-level constructs
may be preserved by a FIRRTL compiler
- Add Compiler Implementation Details documenting Lower Types pass
- Define constant type modifier.
- Remove stray language leftover from removing conditionally valid.
- Render inline annotations as JSON, fix typo in example.
- Fix rendering of type modifiers (const) in document.
- Fix grammar for registers.
- Add reference types and related statements.
- version: 1.2.0
spec:
- Specify behavior of zero bit width integers, add zero-width literals
- Specify behavior of indeterminate values
- Add an explicit section about "Aggregate Types" and move "Vector Type"
and "Bundle Type" under it.
- Move "head" and "tail" from primop_1expr_keyword to
primop_1expr1int_keyword in the "FIRRTL Language Definition".
- Add in-line annotation format
- Specify behavior of combinational loops
- Change connect to truncate widths to align with all existing FIRRTL
Compiler implementations
- Fix spelling/grammar issues
- Allow out-of-bounds errors to be caught at compile time.
- Clarify the string argument for cover is a comment, not a message
as it is for assert and assume.
- Add intrinsics.
- Fix parameter grammar to include name of parameter.
- version: 1.1.0
spec:
- Add version information to FIRRTL files
- Specify "As-If" limited to boolean
- version: 1.0.0
spec:
- Document the versioning scheme of this specification.
- version: 0.4.0
spec:
- >
Add documentation for undocumented features of the Scala-based FIRRTL
Compiler (SFC) that are de facto a part of the FIRRTL specification
due to their widespread use in Chisel and the SFC: Annotations,
Targets, Asynchronous Reset, Abstract Reset
- Minor typo corrections and prose clarifications.
- version: 0.3.1
spec:
- Clarify analog usage in registers
- Rework authorship as "The FIRRTL Specification Contributors"
- Add version information as subtitle
- Formatting fixes
- version: 0.3.0
spec:
- Document moved to Markdown