Skip to content

Releases: calyxir/calyx

0.7.1

29 Feb 19:48
Compare
Choose a tag to compare

What's Changed

Read more

0.6.1

15 Oct 14:46
Compare
Choose a tag to compare

0.6.1

  • Fix checking for large constants (#1743)
  • Better static inlining for single cycle if (#1734)
  • Implement schedule-compaction pass to optimize inferred static islands (#1722)
  • Add std_signext primitive

0.6.0

31 Aug 12:22
Compare
Choose a tag to compare
  • BREAKING: Deprecate Cell::find_with_attr in favor of Cell::find_with_unique_attr. The former is error-prone because pass logic might implicitly assume that there is only one port with a particular attribute.
  • BREAKING: Redesign the ir::Rewriter interface to take all the rewrite maps when constructing the ir::Rewriter struct.
  • Merge the logic of compile-ref pass into compile-invoke so that ref cells can be invoked.
  • The guard! macro supports parsing complex guard expressions that use logical connectives and comparison operators.
  • The calyx library no longer exposes any methods and should not be depended upon. Instead, the new calyx-backend crate provides the code needed to emit Verilog from Calyx.

0.5.1

23 Aug 01:37
Compare
Choose a tag to compare
  • Change the calyx build script to use the CALYX_PRIMITIVES_DIR env variable to install primitive libraries. If unset, use $HOME/.calyx.

0.5.0

22 Aug 13:17
Compare
Choose a tag to compare
  • Don't require @clk and @reset ports in comb components
  • inline pass supports inlining ref cells
  • comb-prop: disable rewrite from wire.in = port when the output of a wire is read.
  • BREAKING: Remove PortDef::into() because it makes it easy to miss copying attributes.
  • Remove the futil binary.
  • The calyx binary ships all the primitives and therefore self-contained now.
    • Add the calyx-stdlib package
    • Add a new build script that installs primitives when the package is installed.

0.4.0

22 Jul 20:22
Compare
Choose a tag to compare
  • Language: New repeat operator that can be used in dynamic contexts as well. When possible, static-promotion will attempt to promote it.
  • Fix: wrap-main correctly instantiates the original "toplevel" component in the generated main component.
  • Make Workspace::construct_with_all_deps public to allow construction of multi-file workspaces.
  • Don't emit clk ports for @external cells in the AXI generator.
  • BREAKING: Redesign the interface for LibrarySignatures.
    • Expose methods to add new primitives to the library
    • Rewrite the IR printer to print out source primitives when skip_primitive is set.

Version 0.3.0

23 May 13:53
Compare
Choose a tag to compare
  • ir::Component takes a has_interface argument and ensures that interface ports are present when it is true.
  • The Visitor trait supports new start_context and finish_context methods which allow the pass to affect the context before and after the components are visited respectively.
  • New wrap-main pass that generates a top-level main component if the top-level component is not named that.
  • Pretty printer prints code more tersely.

Version 0.2.1

20 May 16:23
Compare
Choose a tag to compare
  • Remove necessary indentation inlined verilog primitives
  • Add new discover-external pass to transform inlined cells into @external cells
  • Implementation of static primitives and components and finish work on static milestone paving way for deprecation of the @static attribute.

ASPLOS 21

21 Aug 16:07
Compare
Choose a tag to compare

State of the repository for the ASPLOS '21 submission