| Age | Commit message (Collapse) | Author |
|
This removes the FIRRTL specification as this now lives in its own
repository:
https://github.com/chipsalliance/firrtl-spec
All git history (excluding binary updates to spec.pdf) have been
migrated to the new repository.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
|
|
- Convert FIRRTL spec to Markdown file.
- Add PDF generation via pandoc.
- Remove old LaTeX specification.
Co-authored-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
|
|
Add defname, parameter to extmodule spec, NFC
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
|
|
8abf3085e3efb2b6dd3e123f13577b367d3f2695 reordered the fields, but it
unintentionally placed a closing brace before the actual end of the
write port type. This moves the brace to the end of the port.
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
Correct incorrect type specified for memories in the FIRRTL
specification. This is important because the memory type determines
what is a legal bundle to try to connect to a memory port.
I based this off of FIRRTL accepting the following circuit:
circuit MemOrder:
module MemOrder:
input r: {addr : UInt<3>, en : UInt<1>, clk : Clock, flip data : UInt<1>}
input w: {addr : UInt<3>, en : UInt<1>, clk : Clock, data : UInt<1>, mask : UInt<1>}
input rw: {addr : UInt<3>, en : UInt<1>, clk : Clock, flip rdata : UInt<1>, wmode : UInt<1>, wdata : UInt<1>, wmask : UInt<1>}
mem memory:
data-type => UInt<1>
depth => 8
reader => r
writer => w
readwriter => rw
read-latency => 1
write-latency => 1
read-under-write => undefined
memory.r <= r
memory.w <= w
memory.rw <= rw
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
|
|
Change the FIRRTL spec to disallow a zero-width multiplexer select.
Clarify that the select line can be either one-bit or zero-bit, but will
infer to one-bit.
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
Change the FIRRTL specification document to allow for 0-bit mux selects.
The existing ZeroWidths pass will promote these to a 1-bit, 0-valued
select signal (which effectively means that the mux can be optimized
away to just the false path).
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
|
|
* Fixes #2206
|
|
* firrtl: add optional statement labels for stop, printf, assert, assume and cover
* test: parsing of statement labels
* ir: ensure that name is properly retained
* SymbolTable: add support for labled statements
* test: parsing statement labels
* test: lower types name collisions with named statements
* ignore empty names
* Inline: deal with named and unnamed statements
* RemoveWires: treat stop, printf and verification statements as "others"
* test: fix InlineInstance tests
* DeadCodeEliminations: statements are now als declarations
* CheckHighForm: ensure that statement names are not used as references
* CheckSpec: throw error if statement name collides
* add pass to automatically add missing statement names
* check: make sure that two statements cannot have the same name
* stmtLabel -> stmtName
* scalafmt
* add statement names to spec
* spec: meta data -> metadata
* EnsureStatementNames: explain naming algorithm
* remove returns
* better namespace use
* ir: add CanBeReferenced trait
* ir: add newline as jack requested
|
|
|
|
Co-authored-by: chick <chick@qrhino.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
This should speed up the common case
as the compiler never operates on the
unescaped string.
The new escape function also fixes a bug
where ']' was not escaped even though it
is the delimiting character for FileInfo.
In order to maintain backwards
compatibility for the ProtoBuf format,
this patch adds escape/unescape calls
when going from/to protobuf format.
For better performance we should consider
changing the protobuf format.
|
|
* Define 'same clock' in a syntactic sense
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
|
|
* Add assume, assert, cover statements
* Assert submodule assumptions
* Add warning when removing verification statements
* Remove System Verilog behaviour emitter warning
* Add option to disable AssertSubmoduleAssumptions
* Document verification statements in the spec
The syntax for the new statements is
assert(clk, cond, en, msg)
assume(clk, cond, en, msg)
cover(clk, cond, en, msg)
With assert as a representative example, the semantics is as follows:
`clk` is the clock, `cond` is the expression being asserted, `en` is the
enable signal (if `en` is low then the assert is not checked) and `msg`
is a string message intended to be reported as an error message by the
model checker if the assertion fails.
In the Verilog emitter, the new statements are handled by a new
`formals` map, which groups the statements by clock domain. All model
checking statements are then emitted within the context of an `ifdef
FORMAL` block, which allows model checking tools (like Symbiyosys) to
utilize the statements while keeping them out of synthesis flows.
Co-authored-by: Albert Magyar <albert.magyar@gmail.com>
|
|
* Closes #1597
|
|
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
Co-authored-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Co-authored-by: Albert Magyar <albert.magyar@gmail.com>
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
* [spec] Add Fixed to spec
* Fixes #1195
* Define type & parameters
* Add Fixed as argument type to type conversions
* Add Fixed as argument type to relevent PrimOps (with link to tables)
* Add asFixed PrimOp
* Add IncP/DecP/SetP primops
* Add fixed-point width/point propagation tables
* Update spec pdf
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
|
|
|
|
* Closes #890
|
|
|
|
|
|
|
|
Co-authored-by: Jim Lawson <ucbjrl@berkeley.edu>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
* Add spec for Analog type and attach statement
* Describe role of attaches in partial connection algorithm
* Change references that describe ground types where appropriate
* Closes #1194
* Fix typo
|
|
* Define read-write collison for independently clocked mem ports
* Included definition of initiating write/read operation
|
|
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
* Check mems for legal latencies; ban zero write latency.
* Trigger
|
|
|
|
This updates the spec to refelect the changes made in #587.
It also fixes issue #968.
|
|
|
|
|
|
* Merge makefile changes from dev/specification-fixes
- New top level makefile target: `specification`
- Builds the specification document.
* Number all code examples.
This is more a change of convenience than anything. Referring to syntax
examples is much easier when they are numbered!
This commit is in the context of freechipsproject/firrtl#890 - Updating
examples and syntax specification is made easier if they are numbered.
- Change `verbatim` environments to `lstlisting`
- Add very basic keyword highlighting.
- Rebuild specification PDF.
On branch dev/number-code-examples
Changes to be committed:
modified: spec/spec.pdf
modified: spec/spec.tex
|
|
|
|
|
|
Fixes #450
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
|
|
|
|
SInt representation is no longer 2's complement, but instead a positive number (hex or base 10) that is optionally preceded by a sign (-+).
|
|
Replace with more sensible comment to see LICENSE rather than including the
whole license in every file
|
|
|
|
Fixes #308
Fixes #193
|
|
* Updated FIRRTL spec + related code for readwrite ports.
(write) data -> wdata & mask -> wmask for clarity
* Also removed simple.fir that snuck into master branch.
|
|
Also added clock to reg's abstract syntax
|
|
Added future-release.txt
|
|
Keeps track of proposed changes to add to the next version of the Firrtl spec.
|
|
|