All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.19 - 2021-03-14
- Bits indexing bug in verilog gen when indexing results in a scalar
Signal
0.1.18 - 2020-12-13
- Duplicate trace member names in Rust sim gen in some cases
0.1.17 - 2020-12-13
- Cycle delay helpers to
Signal
API (reg_next
,reg_next_with_default
)
0.1.16 - 2020-12-13
- Stack overflow bugs that were still present when cloning IR expressions in the Rust sim compiler
- Broken changelog link for 0.1.15
0.1.15 - 2020-12-07
- Reduced the amount of temporary bindings used in the generated sim code, which reduces rustc compile time dramatically!
- Mark generated Rust simulator impl's with
#[automatically_derived]
to skip expensive lints during compilation
0.1.14 - 2020-11-29
- Doc comments link to items by name instead of by path, as this is now supported as of Rust 1.48.0.
- Dependencies updated to latest versions
- Stack overflow bugs by eliminating recursive graph traversals
- Invalid/outdated code in README.md
- Code formatting lints in kaze-sim-tests
0.1.13 - 2020-10-12
- Tracing for generated sim modules
0.1.12 - 2020-08-29
- Hack which relied on an automatically-derived
Default
impl to default-initialize most sim struct fields, which was no longer valid afterMem
was implemented. Technically this is a breaking API change, but sinceDefault
was never meant to be used directly, user code shouldn't contain this.
0.1.11 - 2020-07-19
- Indexing scalars produced invalid Verilog code
0.1.10 - 2020-07-17
- Signed multiplication op to
Signal
API (mul_signed
)
0.1.9 - 2020-07-01
- Unsigned multiplication op to
Signal
API (mul
)
0.1.8 - 2020-06-28
- Clarified docs for
Mem
read port values whenenable
is not asserted - Various small doc fixes/regularizations
- Added more
if_
sugar variants for tuples with up to 12 elements (previously 8)
0.1.7 - 2020-03-27
- Complete Verilog codegen
- Validation tests for Verilog codegen
Context::modules
method to borrow aContext
'sModule
s, primarily useful for iterating over them for generating Verilog code
- Simultaneous reads/writes to the same location in a
Mem
on a given cycle results in reads returning the value previously at that memory location, not the newly-written value
- Wrong publish date for 0.1.6 in changelog
0.1.6 - 2020-02-22
- Broken default value for
Mem
s with single-bit elements in generated simulators
0.1.5 - 2020-02-15
Mem
construct for creating synchronous memories
- Internal sim compiler refactorings to simplify/unify some implementation details
- Missing shift doc tests
0.1.4 - 2020-02-09
- Link errors in top-level docs
- Error in
rhs_arithmetic
docs for underflow case
0.1.3 - 2020-02-09
- Subtraction and shift ops to
Signal
API (sub
,shl
,shr
,shr_arithmetic
)
- Small readme edits/link fixes
- Module naming convention in top-level docs
0.1.2 - 2020-02-02
- Implement Eq/PartialEq/Hash for
Signal
(note that these are not documented/tested, which we might want to revisit later)
- Switched naming convention for
Module
s fromsnake_case
toCamelCase
- Redesigned entire (unstable) sugar API
- Small changelog formatting fixes
- Removed the last remaining
unsafe
block in the API impl
0.1.1 - 2020-01-30
- Signed comparison ops to
Signal
API (lt_signed
,le_signed
,gt_signed
,ge_signed
) - Error check for
concat
to ensure its inputSignal
s belong to the sameModule
- This changelog
- Small typo/link fixes in API docs
- Small clarifications in top-level docs/examples
- Broken link fixes in README
- Changed tag format to be
vx.y.z
instead ofx.y.z
, and not use annotated tags