Deprecated: Function get_magic_quotes_gpc() is deprecated in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 99

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 619

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1169

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176
8000 Releases · chipsalliance/chisel · GitHub
Nothing Special   »   [go: up one dir, main page]

Skip to content

Releases: chipsalliance/chisel

Chisel v7.2.0

17 Oct 17:52
767b9eb

Choose a tag to compare

Features

  • [svsim] Add -j, --build-jobs, and --verilate-jobs (by @seldridge in #5051)
  • ChiselEnum convenience functions; support string interaction (by @maartenboersma in #5036)
    Convenience functions to interact between ChiselEnum and String. Allows RTL readability improvements, especially if Enum values are not yet known at compile time (e.g. decode tables in separate files)
  • Make BitPat accept ChiselEnum (by @maartenboersma in #5046)
    BitPat now accept ChiselEnum as an input.
  • Add option to suppress emission of source locators (by @jackkoenig in #5053)
    Users can now pass --no-source-info to suppress emission of source locators in emitted .fir.

API Deprecation

  • Add HasSerializationOverrides (by @jackkoenig in #5044)
    This is a deprecated API in firrtl.annotations that is similar to HasSerializationHints but allows for overriding the serialization class like OverrideSerializationClass does for Annotations themselves.
    Also remove the Annotation self typing on OverrideSerializationClass because it is pointless.

Fixes

  • [svsim] Fix bugs in generated simulation code for Verilator backend. (by @xiaoh105 in #5054)
    Fix the run_simulation API in resource file simulation-driver.cpp for verilator backend to allow delayed events from BlackBox be scheduled by Verilator properly.

Dependency Updates

  • [cd] Bump CIRCT from firtool-1.131.0 to firtool-1.132.0 (by @chiselbot in #5034)
  • Bump to Scala 2.13.17 (by @jackkoenig in #5039)
    Note: Scala 2.13.17 has a new warning for inferred structural types as a Scala 3 compatibility issue. This warning applies to the common val io = IO(new Bundle { ... }) pattern in Chisel. It is not actually a problem because Chisel uses Programmatic Structural Types in Scala 3. You can suppress this warning in your build by adding-Wconf:msg=will no longer have a structural type:s to your scalacOptions. See configurable warnings for more details on -Wconf.
  • [cd] Bump CIRCT from firtool-1.132.0 to firtool-1.133.0 (by @chiselbot in #5045)

Build and Internal Changes

  • [main] Enable MiMa for v7.1.1 (by @chiselbot in #5035)
  • [Scala3] Move CIRCT LTL from src/main/scala-2 to src/main/scala/ (by @adkian-sifive in #5047)
  • [Scala3] BundlePhase updates (by @adkian-sifive in #5043)
    BundlePhase now runs after PickleQuotes to sidestep Scala 3 compiler bug scala/scala3#23793
  • [Scala3] Rewrite svsim Verilator backend argument stringification (by @adkian-sifive in #5042)
    Svsim Verilator Backend argument generation was refactored to work with Scala 3
  • [Scala3] Add apply methods to assert, assume, cover (by @adkian-sifive in #5048)
    Added Scala 3 assert, assume, cover apply methods for Scala 3
  • [Scala3] Add BundleSpec and enable Scala3 CI testing (by @adkian-sifive in #5050)
    Enable CI testing in Scala 3 starting with BundleSpec

Full Changelog: v7.1.1...v7.2.0

Chisel v7.1.1

27 Sep 23:50
5cb6aa7

Choose a tag to compare

Fixes

  • Rename private[chisel3] SourceInfo$Intf to SourceInfoIntf (by @jackkoenig in #5033)
    This works around an issue in IntelliJ around using the macro to materialize SourceInfo.

Documentation

Build and Internal Changes

Full Changelog: v7.1.0...v7.1.1

Chisel v7.1.0

22 Sep 22:18
40c1f46

Choose a tag to compare

Features

Fixes

  • Fix construction of PseudoModules to have correct parent (by @jackkoenig in #5012)
    This fixes subtle bugs where accessing children of an Instance (whether directly or by using Select APIs) could change the result of future Select to be incorrect. For example, a call to Select.unsafe.allCurrentInstancesIn could cause Select.unsafe.currentInstancesIn to also incorrectly include grandchildren and all other transitive children.
  • [svsim] Update c++ CFLAGS for verilator from c++14 to c++17 (by @Gallagator in #5017)
    Verilator CFLAGS bumped from c++14 to c++17
  • Overload Stage methods to use Seq[Annotation] (by @jackkoenig in #5030)
    Also deprecate the older forms using AnnotationSeq.

Documentation

  • [docs] Update layer docs for temporal layer, NFC (by @seldridge in #5020)
  • [docs] Fix duplicate versions in Firrtl Version table (by @jackkoenig in #5025)
    Also refactor some build util code to be Tasks so they can be cached on disk.
  • [doc] Document temporal layers and ChiselSim (by @seldridge in #5027)

Dependency Updates

  • [cd] Bump CIRCT from firtool-1.128.0 to firtool-1.129.0 (by @chiselbot in #5010)
  • [cd] Bump CIRCT from firtool-1.129.0 to firtool-1.130.0 (by @chiselbot in #5015)
  • [cd] Bump CIRCT from firtool-1.130.0 to firtool-1.131.0 (by @chiselbot in #5021)

Build and Internal Changes

Full Changelog: v7.0.0...v7.1.0

Chisel v7.0.0

08 Sep 20:45
c1ed928

Choose a tag to compare

Features

  • Preserve UInt and SInt literals across .pad (by @jackkoenig in #4156)
  • Add support for marking things as readOnly (by @jackkoenig in #4190)
    Users can call .readOnly on any Data to prevent connections to the returned value. Resolves #1267.
  • Add ChiselStage.emitCHIRRTLFile (by @jackkoenig in #4232)
    Emits a file without returning the serialized object which is more memory efficient and supports > 2 GiB of serialized FIRRTL text.
  • Make requireTypeEquivalent public and add context message (by @mwachs5 in #4243)
    Make Add a contextual message to Data.requireTypeEquivalent and expose a public API in DataMirror.requireTypeEquivalent, to make it easier for user code to have good error messages when requiring type equivalence between two chisel Datas
  • Add map method for Valid (by @tymcauley in #4255)
    Users can now apply a function f to the bits field of a Valid instance with the new Valid.map(f) method.
  • Add more information when probe types don't match (by @mwachs5 in #4269)
    Add more information to the error message when attempting to probe.define to a mismatched chisel type.
  • Add AffectsChiselName (by @adkian-sifive in #4283)
    Adds new trait AffectsChiselName that adds support for naming user-defined types
  • Add --remap-layers to ChiselStage (by @seldridge in #4322)
  • Add common layers to Chisel (by @seldridge in #4326)
  • Add skipIfAlreadyInBlock arg to layer.block (by @seldridge in #4327)
  • Add skipIfLayersEnabled param to layer.block (by @seldridge in #4346)
  • Add layer.elideBlocks API (by @seldridge in #4348)
  • Make layer.addLayer API public (by @seldridge in #4349)
  • Add Property expression for list concatenation. (by @mikeurbach in #4347)
    This adds a list concatenation operation for Property[Seq[T]], using the same typeclass approach used for other Property expressions.
  • Add support for circt.OutputDirAnnotation. (by @dtzSiFive in #4352)
    Expose capability to request a Module be placed in a specific directory.
    Functions as with Layer output directories.
  • Make '--module' support arguments (by @seldridge in #4358)
  • Add DataMirror API for currentInstancePorts. (by @mikeurbach in #4362)
    This allows users to query an Instance without it being closed or forcing it to close, which can be useful in atModuleBodyEnd and other scenarios.
  • Add experimental Select APIs for current instances in a BaseModule. (by @mikeurbach in #4363)
    This is useful in situations like atModuleBodyEnd to reflect on the current BaseModule before it is closed.
  • Add Path.apply() to support HasTarget (by @debs-sifive in #4364)
    Adds Path.apply() function that support HasTargets, so that the paths of things that extend HasTarget, like SRAM, can be put into properties.
  • feat: implement SerializableModuleElaborator (by @unlsycn in #4409)
    Add SerializableModuleElaborator
  • Add SourceLocator for Sequence (by @unlsycn in #4436)
    Add source locator for Sequence
  • Add Property expression for integer shift left (by @maerhart in #4440)
    This adds an API for integer Property shift left.
  • Support creation of Paths from HasTargets (by @debs-sifive in #4455)
  • Add --firtool-option arg to ChiselStage (by @seldridge in #4463)
  • switch SRAMDescription to Class (by @sequencer in #4437)
  • add additionalAnnotations for SerializableModuleElaborator (by @sequencer in #4477)
  • Implement Lookupable for HasTarget (used by SRAM) (by @jackkoenig in #4481)
  • Allow BoringUtils to use existing port in a closed module (by @tmckay-sifive in #4484)
    When trying to drill a port, it doesn't matter if the module is closed. We do not need to construct new hardware and can just use the existing port.
  • Implement Lookupable for Unit (by @jackkoenig in #4497)
  • [Module] Add afterModuleBuilt hook (by @fabianschuiki in #4479)
    The new afterModuleBuilt hook can be used to schedule code to be executed once a module has been fully generated and its definition is available. This allows further collateral such as unit tests to be generated alongside a module.
  • Add withModulePrefix (by @mmaloney-sf in #4487)
  • Add AutoBlackbox (by @unlsycn in #4495)
  • Add new InlineInstanceAllowDedup trait (by @rwy7 in #4508)
  • Add module prefixing to BaseModule definitions (by @jackkoenig in #4509)
    • BaseModule.localModulePrefix can be used to set a prefix for the module and its children.
    • BaseModule.localPrefixAppliesToSelf (defaults to true) allows the module to exclude itself from the prefix.
    • localModulePrefix composes with prefixes added via withModulePrefix.
  • feat: add CIRCTSRAMInterface (by @unlsycn in #4494)
    Add CIRCTSRAMInterface
  • Add APIs to omit module prefix separator (by @jackkoenig in #4532)
    • withModulePrefix now optionally takes a 2nd parameter includeSeparator (passing false will omit separator).
    • Overriding localModulePrefixUseSeparator in a Module to false will omit separator for local prefix applied by overriding localModulePrefix in that Module.
  • feat: add SRAMBlackBox (by @unlsycn in #4544)
  • Add partial cross-compilation for Scala 3 (by @adkian-sifive in #4549)
    Adds initial support for Scala 3 LTS version 3.3.3
  • [util] Add a withShadowLayer Queue (by @seldridge in #4589)
  • Add FormalTest marker (by @fabianschuiki in #4635)
  • [core] Add layer block that returns colored wire (by @seldridge in #4623)
  • Add UnitTest marker and test discovery utility (by @fabianschuiki in #4642)
  • [chiselsim] Add Default (non-Ephemeral) Simulator (by @seldridge in #4665)
  • [Chiselsim] Add WithTestingDirectory (by @seldridge in #4669)
  • [chiselsim] Rewrite EphemeralSimulator in terms of DefaultSimulator (by @seldridge in #4675)
  • [chiselsim] Add, use HasSimulator type class (by @seldridge in #4678)
  • [firrtl] Add, use dramaticMessage (by @seldridge in #4684)
  • [chiselsim] Add SimulatorAPI, reduce DefaultSimulator to nothing (by @seldridge in #4680)
  • [chiselsim] Add ChiselSim APIs (by @seldridge in #4685)
  • Add simple API for generating testharnesses inline (by @tmckay-sifive in #4629)
    Add an API to generate testharnesses inline that are emitted as additional public modules in the output.
  • Dev/seldridge/switch to chisel settings (by @seldridge in #4708)
  • Add RequireProperty and EnsureProperty (by @fabianschuiki in #4681)
  • [chiselsim] Add FIRRTL macro control (by @seldridge in #4699)
  • [Chiselsim] Replace Chiselspec w/ ChiselSim (by @seldridge in #4706)
  • [testing] Add FileCheck API (by @seldridge in #4749)
  • Add formal contracts (by @fabianschuiki in #4682)
  • [testing] Add HasTestingDirectory subdir factory (by @seldridge in #4774)
  • [chiselsim] Allow command line options to be passed to ChiselSim tests (by @seldridge in #4773)
  • [scalatest] Add HasCliSimulator (by @seldridge in #4776)
  • Change Data._fromUInt to protected (by @jackkoenig in #4782)
    This enables external libraries like FixedPoint to override it. This is not an ideal API, but it works until we have a better way to do this.
  • [chiselsim] Add ControlAPI w/ Waveform Enable/Disable Support (by @seldridge in #4779)
  • [ChiselSim] Factor reset procedure out of SimulatorAPI and into stimulus (by @seldridge in #4784)
    -...
Read more

Chisel v7.0.0-RC4

29 Aug 17:53
c1ed928

Choose a tag to compare

Chisel v7.0.0-RC4 Pre-release
Pre-release

Features

  • Add PopCount compare functions to reduce circuitry for common cases (by @maartenboersma in #5002)
    Can call PopCount.greaterThan(n), PopCount.equalTo(n), PopCount.atLeast(n). If n is such that it allows for optimization, the generated circuitry is cheaper and faster compared to "first PopCount, then compare".

API Modification

  • Make ChiselEnum width inference consider known-width Value() literals (by @CSharperMantle in #4990)
    The inferred width for a ChiselEnum using Value() now correctly accommodates both known-width values and the largest specified literal integer. Closes #4989.

Backend Code Generation

  • Support emitting variadic cat (by @jackkoenig in #4992)
    This should not be visible to most users unless they inspect emitted .fir. It reduces memory use, improves performance, and reduces the size of emitted .fir a little bit, ~2-5% depending on the design.
  • Bump emitted FIRRTL version to 6.0.0 (by @jackkoenig in #5008)

Fixes

Dependency Updates

  • [cd] Bump CIRCT from firtool-1.125.0 to firtool-1.126.0 (by @chiselbot in #4991)
  • [cd] Bump CIRCT from firtool-1.126.0 to firtool-1.127.0 (by @chiselbot in #4998)
  • [cd] Bump CIRCT from firtool-1.127.0 to firtool-1.128.0 (by @chiselbot in #5007)

Build and Internal Changes

Full Changelog: v7.0.0-RC3...v7.0.0-RC4

Chisel v7.0.0-RC3

11 Jul 23:01
1a2980c

Choose a tag to compare

Chisel v7.0.0-RC3 Pre-release
Pre-release

Features

Dependency Updates

  • [cd] Bump CIRCT from firtool-1.124.0 to firtool-1.125.0 (by @chiselbot in #4973)
  • [cd] Bump CIRCT from firtool-1.124.0 to firtool-1.125.0 (by @chiselbot in #4974)

Build and Internal Changes

  • [Scala3] Split plugin resource files based on Scala major version (by @adkian-sifive in #4971)
    Split plugin resource files into separate directories for Scala 2 and Scala 3
  • [Scala3] Add Bundle plugin (by @adkian-sifive in #4947)
    Adds Bundle plugin
  • Upgrade to Mill 1.0.0 (by @jackkoenig in #4972)
    No SNAPSHOT publishing yet, that will be follow on work. See the Mill 1.0.0 changelog.

Full Changelog: v7.0.0-RC2...v7.0.0-RC3

Chisel v7.0.0-RC2

03 Jul 22:45

Choose a tag to compare

Chisel v7.0.0-RC2 Pre-release
Pre-release

Features

  • [core] Add Bool "implies" method (by @seldridge in #4933)
  • Add timing parameter support to Verilator backend (by @shahzaibk23 in #4934)
    Added extra option Verilator Backend for Timing option. User now has choice to either add --timing or --no-timing or nothing for this parameter, in the Verilator Args Seq
  • [svsim] Trace options for the Verilator backend (by @kammoh in #4911)
  • [chiselsim] Add Randomization.x (by @seldridge in #4939)
  • Allow bare Chisel types to be looked up from a Hierarchy (by @tmckay-sifive in #4940)
    • Allow lookup of bare Chisel types from a Hierarchy
  • [chiselsim] Add frequency control to stimulus (by @seldridge in #4942)
  • Add API to include comments in the FIRRTL (by @jackkoenig in #4949)
    This is for debugging generated FIRRTL only--comments are ignored by the FIRRTL compiler.
  • Add Lookupable for ActualDirection (by @tmckay-sifive in #4950)
    • Allow ActualDirection to be looked up from a Hierarchy
  • ChiselSim API for inline testing (by @tmckay-sifive in #4946)
    • Add a ChiselSim API for simulating inline tests
  • Add OverrideSerializationClass for custom annotation serialization (by @jackkoenig in #4953)
    Annotations can now mixin OverrideSerializationClass to customize the "class" field in annotation serialization. This allows annotation classes to reside in a different package than firtool is expecting for the class field. Note that this breaks automatic deserialization which does not matter to firtool but would matter for annotations communicating information between Chisel generator invocations.
  • ChiselSim peek/poke/expect for Enums, Records, Vecs, and generic Data (by @kammoh in #4824)

API Modification

  • Support concatenating Properties of Seq subtypes (by @debs-sifive in #4907)
  • Fail boring into module with endIOCreation set (by @azidar in #4925)
    Setting endIOCreation now also errors if any IOs are created using BoringUtils.

Fixes

  • Improve error for bad connections with null module name (by @jackkoenig in #4917)
  • [testing] Mangle more directories (by @seldridge in #4927)
  • [testing] Mangle even more directories (by @kammoh in #4928)
  • [svsim/ChiselSim] Discover the project's root directory in a sandboxed build (by @kammoh in #4931)
  • Fix naming plugin support for unapply (by @jackkoenig in #4943)
    Previously, naming support on unapply only worked for subtypes of Data, but now it works for all namable types, including user-extensible AffectsChiselName as well as non-Data Chisel built-in types: Mem, VerificationStatement, properties.DynamicObject, and Disable.

Documentation

Dependency Updates

  • [cd] Bump CIRCT from firtool-1.114.1 to firtool-1.115.0 (by @chiselbot in #4908)
  • [cd] Bump CIRCT from firtool-1.115.0 to firtool-1.116.0 (by @chiselbot in #4912)
  • [cd] Bump CIRCT from firtool-1.116.0 to firtool-1.117.0 (by @chiselbot in #4920)
  • [cd] Bump CIRCT from firtool-1.117.0 to firtool-1.118.0 (by @chiselbot in #4926)
  • [cd] Bump CIRCT from firtool-1.118.0 to firtool-1.119.0 (by @chiselbot in #4936)
  • [cd] Bump CIRCT from firtool-1.119.0 to firtool-1.120.0 (by @chiselbot in #4944)
  • [cd] Bump CIRCT from firtool-1.120.0 to firtool-1.121.0 (by @chiselbot in #4948)
  • [cd] Bump CIRCT from firtool-1.121.0 to firtool-1.122.0 (by @chiselbot in #4954)
  • [cd] Bump CIRCT from firtool-1.122.0 to firtool-1.123.0 (by @chiselbot in #4960)
  • [cd] Bump CIRCT from firtool-1.123.0 to firtool-1.123.1 (by @chiselbot in #4962)
  • [cd] Bump CIRCT from firtool-1.123.1 to firtool-1.123.2 (by @chiselbot in #4965)
  • [cd] Bump CIRCT from firtool-1.123.2 to firtool-1.124.0 (by @chiselbot in #4966)
  • Bump os-lib to 0.10.7 (by @jackkoenig in #4967)
    Also bump mdoc to 2.7.1 (but this isn't visible to users).
    Note that we are not yet bumping os-lib to 0.11 because it will raise the minimum supported JVM to 11. Similarly we are not bumping upickle to 4.0 because it does not support Scala 3.3 which is our target for Scala 3 support (because 3.3 is LTS).

Build and Internal Changes

Full Changelog: v7.0.0-RC1...v7.0.0-RC2

Chisel v7.0.0-RC1

25 Apr 17:52
d15f145

Choose a tag to compare

Chisel v7.0.0-RC1 Pre-release
Pre-release

Features

  • Add AffectsChiselName (by @adkian-sifive in #4283)
    Adds new trait AffectsChiselName that adds support for naming user-defined types
  • Add --remap-layers to ChiselStage (by @seldridge in #4322)
  • Add common layers to Chisel (by @seldridge in #4326)
  • Add skipIfAlreadyInBlock arg to layer.block (by @seldridge in #4327)
  • Add skipIfLayersEnabled param to layer.block (by @seldridge in #4346)
  • Add layer.elideBlocks API (by @seldridge in #4348)
  • Make layer.addLayer API public (by @seldridge in #4349)
  • Add Property expression for list concatenation. (by @mikeurbach in #4347)
    This adds a list concatenation operation for Property[Seq[T]], using the same typeclass approach used for other Property expressions.
  • Add support for circt.OutputDirAnnotation. (by @dtzSiFive in #4352)
    Expose capability to request a Module be placed in a specific directory.
    Functions as with Layer output directories.
  • Make '--module' support arguments (by @seldridge in #4358)
  • Add DataMirror API for currentInstancePorts. (by @mikeurbach in #4362)
    This allows users to query an Instance without it being closed or forcing it to close, which can be useful in atModuleBodyEnd and other scenarios.
  • Add experimental Select APIs for current instances in a BaseModule. (by @mikeurbach in #4363)
    This is useful in situations like atModuleBodyEnd to reflect on the current BaseModule before it is closed.
  • Add Path.apply() to support HasTarget (by @debs-sifive in #4364)
    Adds Path.apply() function that support HasTargets, so that the paths of things that extend HasTarget, like SRAM, can be put into properties.
  • feat: implement SerializableModuleElaborator (by @unlsycn in #4409)
    Add SerializableModuleElaborator
  • Add SourceLocator for Sequence (by @unlsycn in #4436)
    Add source locator for Sequence
  • Add Property expression for integer shift left (by @maerhart in #4440)
    This adds an API for integer Property shift left.
  • Support creation of Paths from HasTargets (by @debs-sifive in #4455)
  • Add --firtool-option arg to ChiselStage (by @seldridge in #4463)
  • switch SRAMDescription to Class (by @sequencer in #4437)
  • add additionalAnnotations for SerializableModuleElaborator (by @sequencer in #4477)
  • Implement Lookupable for HasTarget (used by SRAM) (by @jackkoenig in #4481)
  • Allow BoringUtils to use existing port in a closed module (by @tmckay-sifive in #4484)
    When trying to drill a port, it doesn't matter if the module is closed. We do not need to construct new hardware and can just use the existing port.
  • Implement Lookupable for Unit (by @jackkoenig in #4497)
  • [Module] Add afterModuleBuilt hook (by @fabianschuiki in #4479)
    The new afterModuleBuilt hook can be used to schedule code to be executed once a module has been fully generated and its definition is available. This allows further collateral such as unit tests to be generated alongside a module.
  • Add withModulePrefix (by @mmaloney-sf in #4487)
  • Add AutoBlackbox (by @unlsycn in #4495)
  • Add new InlineInstanceAllowDedup trait (by @rwy7 in #4508)
  • Add module prefixing to BaseModule definitions (by @jackkoenig in #4509)
    • BaseModule.localModulePrefix can be used to set a prefix for the module and its children.
    • BaseModule.localPrefixAppliesToSelf (defaults to true) allows the module to exclude itself from the prefix.
    • localModulePrefix composes with prefixes added via withModulePrefix.
  • feat: add CIRCTSRAMInterface (by @unlsycn in #4494)
    Add CIRCTSRAMInterface
  • Add APIs to omit module prefix separator (by @jackkoenig in #4532)
    • withModulePrefix now optionally takes a 2nd parameter includeSeparator (passing false will omit separator).
    • Overriding localModulePrefixUseSeparator in a Module to false will omit separator for local prefix applied by overriding localModulePrefix in that Module.
  • feat: add SRAMBlackBox (by @unlsycn in #4544)
  • Add partial cross-compilation for Scala 3 (by @adkian-sifive in #4549)
    Adds initial support for Scala 3 LTS version 3.3.3
  • [util] Add a withShadowLayer Queue (by @seldridge in #4589)
  • Add FormalTest marker (by @fabianschuiki in #4635)
  • [core] Add layer block that returns colored wire (by @seldridge in #4623)
  • Add UnitTest marker and test discovery utility (by @fabianschuiki in #4642)
  • [chiselsim] Add Default (non-Ephemeral) Simulator (by @seldridge in #4665)
  • [Chiselsim] Add WithTestingDirectory (by @seldridge in #4669)
  • [chiselsim] Rewrite EphemeralSimulator in terms of DefaultSimulator (by @seldridge in #4675)
  • [chiselsim] Add, use HasSimulator type class (by @seldridge in #4678)
  • [firrtl] Add, use dramaticMessage (by @seldridge in #4684)
  • [chiselsim] Add SimulatorAPI, reduce DefaultSimulator to nothing (by @seldridge in #4680)
  • [chiselsim] Add ChiselSim APIs (by @seldridge in #4685)
  • Add simple API for generating testharnesses inline (by @tmckay-sifive in #4629)
    Add an API to generate testharnesses inline that are emitted as additional public modules in the output.
  • Dev/seldridge/switch to chisel settings (by @seldridge in #4708)
  • Add RequireProperty and EnsureProperty (by @fabianschuiki in #4681)
  • [chiselsim] Add FIRRTL macro control (by @seldridge in #4699)
  • [Chiselsim] Replace Chiselspec w/ ChiselSim (by @seldridge in #4706)
  • [testing] Add FileCheck API (by @seldridge in #4749)
  • Add formal contracts (by @fabianschuiki in #4682)
  • [testing] Add HasTestingDirectory subdir factory (by @seldridge in #4774)
  • [chiselsim] Allow command line options to be passed to ChiselSim tests (by @seldridge in #4773)
  • [scalatest] Add HasCliSimulator (by @seldridge in #4776)
  • Change Data._fromUInt to protected (by @jackkoenig in #4782)
    This enables external libraries like FixedPoint to override it. This is not an ideal API, but it works until we have a better way to do this.
  • [chiselsim] Add ControlAPI w/ Waveform Enable/Disable Support (by @seldridge in #4779)
  • [ChiselSim] Factor reset procedure out of SimulatorAPI and into stimulus (by @seldridge in #4784)
  • Add resetType to inline test TestParameters (by @tmckay-sifive in #4789)
    • Add resetType to chisel3.experimental.inlinetest.TestParameters. It will now be easier to properly handle DUTs with uninferred resets.
  • [svsim] Add coverage collection to VCS backend (by @seldridge in #4793)
  • [svsim][chiselsim] Add plusarg support (by @seldridge in #4796)
  • [chiselsim] Add CLI FSDB, VPD support, enable waves (VCD, too) (by @seldridge in #4797)
  • [chiselsim] Add waves at time zero to settings (by @seldridge in #4801)
  • Provide custom error for Mem masked write wrong data type (by @jackkoenig in #4805)
    The old error was Cannot prove that chisel3.UInt <:< chisel3.Vec[_], the new error is Masked write requires that the data type is a Vec, got chisel3.UInt.
  • [chiselsim] HasCliOptions, EmitVcd for ChiselSim (by @seldridge in #4807)
  • [chiselsim] Chisel/firtool update type classes (by @seldridge in #4808)
  • [svsim] Add Coverage Directory and Name to VCS Backend (by @seldridge in #4812)
  • [chiselsim] Add subdirectory to SimulatorAPI fns (by @seldridge in https://github.com/chipsalliance/chisel/pull/...
Read more

Chisel v6.7.0

07 Mar 23:09
8db8c1e

Choose a tag to compare

This release primarily exists to help get users ready for the coming Chisel 7 release--there are several advanced APIs that are now deprecated and will be removed in the Chisel 7.0 release.

API Deprecation

  • Add ElaboratedCircuit and deprecate use of internal ir Circuit (backport #4683) (by @chiselbot in #4693)
    Change ChiselCircuitAnnotation and CircuitSerializationAnnotation to no longer be case classes to help with the transition to ElaboratedCircuit.
  • Add safer Chisel annotation API, deprecate old ones (backport #4643) (by @chiselbot in #4697)
    Creating annotations in Chisel now requires reporting what InstanceIds are going to be annotated so that Chisel can do some safety checks.
  • [testers] Deprecate everything the testers package (backport #4742) (by @chiselbot in #4743)
  • Mass deprecations, to be removed in Chisel 7 (backport #4754) (by @chiselbot in #4756)
  • Warn on .asUInt|.asSInt(_: Int) (backport #4764) (by @chiselbot in #4766)
    The user probably forgot .W. Apply the same technique as used for .U|.S.

Performance

  • Speedup Computation for whether Aggregates containsProbe (backport #4656) (by @chiselbot in #4664)
    Add a private containsProbe var to Aggregate and use it to speed up containsProbe checks.

Fixes

  • fix up extra waveform dump behavior in svsim (backport #4592) (by @mergify[bot] in #4600)
  • Fixes sendBits()'s handling of signed numbers in svsim (backport #4599) (by @jackkoenig in #4606)
  • Deterministic FibonacciLFSR reductions (backport #4688) (by @chiselbot in #4690)
  • Escape special characters in Property String literals (backport #4564) (by @mergify[bot] in #4565)
    This technically breaks backwards compatibility for firrtl.ir.StringPropertyLiteral but firrtl.ir is considered an internal API.
  • Dev/biancolin/fix module choice under di (backport #4569) (by @mergify[bot] in #4570)
  • Support boring on original Module after .toInstance call (backport #4602) (by @mergify[bot] in #4604)

Documentation

  • fix typo in SourceInfoTransform.scala (backport #4594) (by @mergify[bot] in #4597)
    Fix typo in scaladoc for sourceInfoTransform macro

Dependency Updates

Build and Internal Changes

  • Update CD permissions for uploading release artifacts (backport #4529) (by @mergify[bot] in #4531)
    Also bump softprops/action-gh-release to v2.1.0.
  • [6.x] Enable MiMa for v6.6.0 (by @chiselbot in #4527)

Full Changelog: v6.6.0...v6.7.0

Chisel v6.6.0

26 Nov 17:38
6e0428d

Choose a tag to compare

Features

  • Implement Lookupable for HasTarget (used by SRAM) (backport #4481) (by @mergify[bot] in #4482)
  • Allow BoringUtils to use existing port in a closed module (backport #4484) (by @mergify[bot] in #4486)
    When trying to drill a port, it doesn't matter if the module is closed. We do not need to construct new hardware and can just use the existing port.
  • Implement Lookupable for Unit (backport #4497) (by @mergify[bot] in #4498)

API Modification

API Deprecation

Fixes

  • Remove unnecessary overrides of lref and ref in Property (backport #4309) (by @mergify[bot] in #4310)
    This fixes an issue with views of List of Property.
  • Improve error messages for empty Mux1H and PriorityMux (backport #4391) (by @mergify[bot] in #4393)
  • Handle define on views of Probes (backport #4308) (by @mergify[bot] in #4311)
  • Support BoringUtils.bore on OpaqueType wrapping a Property. (backport #4337) (by @mergify[bot] in #4338)
    This ensures boring from an OpaqueType that wraps a Property uses the correct connection operator in the IR.
  • Make it legal to extract zero bits from a zero-width UInt (backport #4445) (by @mergify[bot] in #4447)
  • Fix Arg.name and earlyLocalName for probes (backport #4359) (by @mergify[bot] in #4360)
  • Fix Boring.rwTap on instance ports (backport #4451) (by @mergify[bot] in #4452)
    BoringUtils.rwTap can now works on a port of an instance: Instance[..]
  • Fix Select.attachedTo (backport #4458) (by @mergify[bot] in #4461)
  • Fix missing string interpolators, add -Xlint:missing-interpolator (backport #4471) (by @mergify[bot] in #4473)
  • Add Probes to .toString Data methods (backport #4478) (by @mergify[bot] in #4480)
    Probe chisel types now include the kind of probe and layer in their .toString method

Documentation

  • Improve the error message for mismatched types in Mux (backport #4331) (by @mergify[bot] in #4332)

Dependency Updates

  • [6.x] Bump to CIRCT 1.62.1 (by @jackkoenig in #4387)
  • Add Scala 2.13.15 to compiler plugin cross-build (backport #4410) (by @mergify[bot] in #4413)
    Add support for Scala 2.13.15

Build and Internal Changes

Full Changelog: v6.5.0...v6.6.0

0