Skip to content
This repository has been archived by the owner on Aug 20, 2024. It is now read-only.

Releases: chipsalliance/firrtl

v1.3.0-RC2

28 Apr 19:24
Compare
Choose a tag to compare
v1.3.0-RC2 Pre-release
Pre-release

Fix

(#1450) Fix dynamic SubAccess of zero-length vectors Fixes #230
(#1474) Fix InlineCasts
(#1481) Fix InlineCasts (bp #1474)

Feature

(#1471) Nuclear Option (-Xfatal-warnings) for Scaladoc Build
(#1482) Add 'did you update spec' box to PR template
(#1493) Disable unidoc -Xfatal-warning for Scala 2.11
(#1495) Add Release Notes section and check-box for checklist.
(#1497) Remove deprecated gender

v1.3.0-RC1

28 Apr 19:24
Compare
Choose a tag to compare
v1.3.0-RC1 Pre-release
Pre-release

API Modification

(#1123) Dependency API 2 (take 3)
(#1258) Remove scala-logging fully in favor of our own logger
(#1265) Move --no-dedup from stage-global to firrtl-local
(#1266) Remove incorrect --firrtl-source option
(#1357) Omnibus Dependency API Updates
(#1387) Include Dead Modules in InstanceGraph.staticInstanceCount
(#1388) Allow self renames
(#1412) [RFC] Factor-out common test classes; package them
(#1413) Remove DiGraph.seededLinearize
(#1440) Remove dead passes.DeadCodeElimination code
(#1447) Revert Compiler.execute to public (was protected)
(#1461) Change annotation logging

Fix

(#1217) Add explicit EOF to top-level parser rule - Fixes #1154
(#1228) Use getName instead of getSimpleName
(#1241) improve the tail ir usability - bug fix for chipsalliance/chisel#1240
(#1278) {Firrtl, Circuit}Option should be Unserializable
(#1288) Make EmittedAnnotation Unserializable
(#1307) Change LoggerState.globalLevel to Warn
(#1310) Filter ResolvePaths in EliminateTargetPaths
(#1362) Change zero-width base case for Andr* - Fixes #1344
(#1366) Better register const prop through speculative de-optimization - Fixes #1240
(#1370) Rename Modules Duplicated by EliminateTargetPaths
(#1374) Fixing lint error: x + -1
(#1392) Short Circuit resolvePaths if no Targets
(#1394) EliminateTargetPaths and Unreachable Modules
(#1396) Remove last connect semantics from reset inference
(#1397) Add test: driving multiple downstream reset types with cast
(#1422) Revert inline nots
(#1437) Check for name collisions of Modules - Fixes #1436, #1096
(#1441) Don't const-prop a register's self-init - Fixes #1214
(#1454) Make InlineInstances invalidate ResolveKinds - Fixes #1453
(#1477) Support all the bases (octal/bin) outlined in the spec - Fixes #1464

Feature

(#1050) Add Support for Bitstream Preset-registers
(#1190) Logger comment tweaks
(#1191) Add check for multiple sources for same wiring pin
(#1206) Add separate Issue and PR templates
(#1211) Supply a trait to allow user annotations to provide JsonProtocol type hints
(#1216) Change findInstancesInHierarchy to return implicit top instance
(#1218) Ignore extmodule instances in Flatten - Closes #1162
(#1219) Guard initial blocks in emitted Verilog with ifndef SYNTHESIS
(#1222) Add spec for Analog type and attach statement - Closes #1194
(#1224) Move CheckResets after CheckCombLoops
(#1231) Use Mergify to automate backporting to 1.2.x
(#1238) Error on nested memory datatypes
(#1243) Make updated type info available in VerilogMemDelays - Closes #1242
(#1245) [Mergify] Automatically merge backport PRs when ready
(#1259) Cleanup testing console
(#1264) Cleanup verilog emitter casts
(#1270) Verilog emitter transform InlineNots
(#1271) Make the member 'logger' added by the trait LazyLogging protected.
(#1275) Support object transforms
(#1282) Fix incorrect ScalaDoc link
(#1284) Improve Scaladoc
(#1291) Infer resets last connect semantics
(#1296) Verilog emitter transform InlineBitExtractions
(#1297) Fix .run_formal_checks.sh skipping logic
(#1302) Dedup PassTests, add NoCircuitDedupAnnotations
(#1305) Change default LogLevel to Warn
(#1315) clean up warnings: trim unused imports
(#1317) Refactoring checkCatArgumentLegality
(#1321) add IsModule, IsMember, CompleteTarget serializers
(#1323) Dedup: check if moduleOpt exists before getting
(#1324) Fix copy-paste error in DiGraph.linearize documentation
(#1326) Update sbt-scalafix to 0.9.11
(#1327) Update sbt-assembly to 0.14.10
(#1328) Update sbt-buildinfo to 0.9.0
(#1329) Update sbt-unidoc to 0.4.2
(#1330) Update protoc-jar to 3.11.1
(#1331) Update sbt-antlr4 to 0.8.2
(#1332) Update junit to 4.13
(#1333) Update commons-text to 1.8
(#1335) Update sbt-scoverage to 1.6.1
(#1336) Update scalacheck to 1.14.3
(#1345) Update sbt-unidoc to 0.4.3
(#1354) Update sbt to 1.3.8
(#1355) Add constant prop to async regs
(#1359) Emit 'else' case for trivial-valued async reset regs to avoid latches
(#1361) Constant prop binary PrimOps with matching arguments
(#1367) Support MemConfs with very deep memories
(#1368) Mill Support
(#1375) Add reviewer checklist / update contributor checklist
(#1378) [spec] Change sub(UInt, UInt) output type to UInt
(#1381) Removed unused imports in src/test/
(#1382) Update ScalaTest deprecations.
(#1383) Update scalatest 3.1.0
(#1391) Add InstaceGraph (Un)?Reachable Helpers
(#1401) Add more docs / tests for DiGraph reachableFrom method
(#1407) sbt compatible publish for mill
(#1408) mill: add testOnly
(#1409) [spec] clarify that div-by-zero is undefined
(#1414) Update single-line when/else example in spec to match implementation - Closes #890
(#1416) Remove RenameMap logging from EliminateTargetPaths
(#1418) Fix error message for NegWidthException
(#1420) Support Java API doc Scaladoc/Unidoc References
(#1421) Check sign of primop constants where appropriate
(#1423) Clone Verilator from GitHub, fix tag name
(#1429) Make mergify open backport PRs & signal on failed cherry-picks
(#1430) Add firrtl-json serializers
(#1433) Provide an annotation mix-in that marks RTs as dontTouch
(#1439) [mergify] Update match string for labeling backported PRs
(#1446) Avoid generating out-of-bounds indices in ReplaceAccesses
(#1449) Remove toNamed (and friends) deprecation.
(#1451) [spec] Update Mid FIRRTL spec to reflect removal of subaccesses
(#1458) Add method to CheckCompLoops which returns its full netlist
(#1463) Explicitly initialize firrtl.stage.Forms to prevent multi-thread collisions - addresses #1462
(#1465) Refactor build.sbt into more normal style
(#1470) Eliminate warnings on sbt doc and sbt unidoc
(#1473) Bump to Scala 2.12.11

v1.2.4

11 Mar 22:24
Compare
Choose a tag to compare

Fix

(#1404) Short Circuit resolvePaths if no Targets (bp #1392)
(#1411) [spec] clarify that div-by-zero is undefined (bp #1409)
(#1415) Update single-line when/else example in spec to match implementation (bp #1414)
(#1419) Fix error message for NegWidthException (bp #1418)
(#1425) Revert inline nots only 1.2.x (bp #1422). Fixes #1426
(#1423) Clone Verilator from GitHub, fix tag name
(#1431) Check sign of primop constants where appropriate (bp #1421)

v1.2.3

02 Mar 21:54
Compare
Choose a tag to compare

Bug

This release contains #1270, which unfortunately introduced issue #1426.

API Modification

(#1294) Make EmittedAnnotation Unserializable (bp #1288)
(#1342) add IsModule, IsMember, CompleteTarget serializers (bp #1321)

Fix

(#1283) Fix incorrect ScalaDoc link (bp #1282)
(#1352) Fix conversion of Reference-containing expressions to ReferenceTargets (bp #1349)
(#1369) Better register const prop through speculative de-optimization (bp #1366) - fixes #1240
(#1386) Fixing lint error: x + -1 (bp #1374)
(#1398) Remove last connect semantics from reset inference (bp #1396)

Feature

(#1285) Improve Scaladoc (bp #1284)
(#1295) Verilog emitter transform InlineNots (bp #1270)
(#1299) Cleanup verilog emitter casts (bp #1264)
(#1303) Dedup PassTests, add NoCircuitDedupAnnotations (bp #1302)
(#1306) Change default LogLevel to Warn (bp #1305)
(#1313) Filter ResolvePaths in EliminateTargetPaths (bp #1310)
(#1314) Verilog emitter transform InlineBitExtractions (bp #1296)
(#1318) Refactoring checkCatArgumentLegality (bp #1317)
(#1353) Dedup: check if moduleOpt exists before getting (bp #1323)
(#1360) Emit 'else' case for trivial-valued async reset regs to avoid latches (bp #1359)
(#1363) Add constant prop to async regs (bp #1355)
(#1373) Rename Modules Duplicated by EliminateTargetPaths (bp #1370)
(#1384) Add reviewer checklist / update contributor checklist (bp #1375)
(#1385) Support MemConfs with very deep memories (bp #1367)
(#1395) Constant prop binary PrimOps with matching arguments (bp #1361)
(#1402) Add more docs / tests for DiGraph reachableFrom method (bp #1401)

v1.2.2

19 Dec 23:54
Compare
Choose a tag to compare

Feature

(#1268) Logger comment tweaks (bp #1190)

(#1281) {Firrtl, Circuit}Option should be Unserializable (bp #1278)

v1.2.1

02 Dec 21:22
f7cf257
Compare
Choose a tag to compare

Fix

(#1202/#1225) Fix handling of read enables for write-first (default) memories in VerilogMemDelays
Add tests for memories with latency >1, toggling enables
Add library for streamlined Verilog execution tests
Add test for #1179: comb-loops from VerilogMemDelays
Fix write-first mem enable handling in VerilogMemDelays

(#1246) Error on nested memory datatypes (bp #1238)

Feature

(#1204) Emit Verilog else-if for Register Updates

(#1208) Enhance CheckCombLoops errors with connection info
Add EdgeData trait to mix in to graphs

(#1223) Revert binary-compatibility breaking changes since 1.2.0 and enforce checking
Set up CI for 1.2.x branch

(#1226) Change findInstancesInHierarchy to return implicit top instance (bp #1216)

(#1236) [Backport #1222] Add spec for Analog type and attach statement

(#1243) Make updated type info available in VerilogMemDelays

(#1248) Guard initial blocks in emitted Verilog with `ifndef SYNTHESIS (bp #1219)

(#1250) Add explicit EOF to top-level parser rule (bp #1217)

(#1251) Add separate Issue and PR templates (bp #1206)

(#1252) Add check for multiple sources for same wiring pin (bp #1191)

(#1253) Move CheckResets after CheckCombLoops (bp #1224)

(#1254) getSimpleName considered harmful (bp #1228)

(#1255) Ignore extmodule instances in Flatten (bp #1218)

(#1256) Try fixing travis binary compatibility check

v1.2.0

18 Oct 22:11
Compare
Choose a tag to compare

Fix

(#1183) Implement read-first memory behavior in Verilog
Implement read-first memories in VerilogMemDelays
Add read-under-write checks for memory emission
Improve read-under-write parameter support

(#1192) Restore ResolveGenders to its status as a Pass

Feature

(#1186) Absorb some instance analysis into InstanceGraph, use safer boxed Strings

(#1187) Bump sbt to 1.3.2

(#1188) [RFC] Define read-write collison for independently clocked mem ports

(#1189) Add explicit hline instead of phantom h1

(#1197) Add Block factory from argument list of Statements

(#1199) Make TopWiringTransform Idempotent
Add test for TopWiringTransform idempotency

v1.2.0-RC2

01 Oct 23:57
Compare
Choose a tag to compare
v1.2.0-RC2 Pre-release
Pre-release

Feature

(#1073) Rename annotations in InlineInstances
update inline transform and testcases

(#1124) Gender to Flow
Update Spec from Gender to Flow
Deprecate Gender and add implicit Flow conversion
Rename gender to flow

(#1155) Bump Scala to 2.12.10

(#1167) Add cold benchmarking script

(#1174) Provide a name for each Travis build stage

(#1177) Add space, s/Github/GitHub/ in DontTouchException

(#1180) Update Travis stage names to match new versions

(#1181) Bump sbt to 1.3.0

(#1182) Speed up InlineInstances

(#1184) Faster inline renaming

v1.2.0-RC1

01 Oct 22:49
Compare
Choose a tag to compare
v1.2.0-RC1 Pre-release
Pre-release

API Modification

(#952) Add foreach as alternative to map

(#1107) Remove deprecated ComponentName from CombinationalPath annotation

Fix

(#854) Binding support - load memory from file
Binding support

(#868) Make RemoveWires properly include registers in dependency graph
Respect register references in RemoveWires

(#876) Fix NoDedupMem to be cognizant of Module scope

(#883) Filter resource file names to avoid including the same file multiple times.

(#901) Use "" for Inline Name Mangling, Respect Namespaces
Inlining uses "
", respects namespaces
Make some Uniquify methods private [firrtl]
Add cloneUnderlying method to Namespace

(#909) Verilog renaming uses "_", works on whole AST
Refactor VerilogRename -> RemoveKeywordCollisions

(#924) Fix TRAVIS_COMMIT_RANGE in .run_chisel_tests, replace ... with ..

(#936) Fix bug in TargetDirAnnotation compatibility

(#963) Remove side effect from DiGraph sum
Remove side effect from DiGraph summation

(#976) Fix NoneCompiler outputForm
Require transforms.size >= 1 for Compilers
Use IdentityTransform to construct NoneCompiler
Add IdentityTransform

(#987) Fix grouping
Fix GroupComponents to work with unused components
Make GroupComponents run ResolveKinds

(#989) Avoid enforcing time constrains during coverage tests.

(#992) Constant Propagate dshl and dshr with constant amounts
Suppress unchecked warning in Constant Propagation
Keep constant propagating expressions until done optimizing

(#1078) Add register init to RemoveWires dependencies

(#1135) Add ExpandConnects to TopWiringTransform fixup

Feature

(#548) Run CheckHighForm after all non-emitter transforms in firrtl tests

(#833) Support for load memory annotations in chisel

(#848) Make Scala 2.12.4 the default.

(#849) Constant prop add

(#851) Combine cats

(#855) Use LinkedHashSet in propagateAnnotations

(#858) Fix Travis

(#859) allowing overrides to $random

(#861) add link to repo for firrtl syntax highlighting in sublime text 3

(#864) Update DontTouchAnnotation not found error message

(#865) Instance Annotations

(#867) Stop reporting exceptions in custom transformations as internal errors

(#869) Add targetDirName test

(#872) Allow the #delay before random initialization to be overridden

(#874) Emit Verilog Comments

(#875) [F764.1] Bump scopt from 3.6.0 -> 3.7.0
Bump scopt from 3.6.0 -> 3.7.0

(#877) [F764.2] Easy conversion of String => LogLevel.value
Add LogLevel apply for String => LogLevel.Value

(#878) [F764.3] Add explicit SystemVerilogCompiler class
Add SystemVerilogCompiler class

(#879) [F764.5] Add firrtl.options package, but do not use
Add firrtl.options tests
Add firrtl.options

(#885) Bug Fixes in TopWiring

(#888) Do not remove ExtMods with no ports by default

(#889) Another TopWiring Bug Fix (Multi-Level Annotations)

(#894) Number all code examples & add specification build to Makefile

(#895) Add CODEOWNERS file

(#898) Enforce port uniqueness in Chirrtl/High Checks

(#900) Add Utils.expandPrefixes as Prefix Unique helper

(#903) add BlackBoxPathAnno

(#915) Added reference to ICCAD paper

(#918) Don't include verilog header files in "FileList" for VCS/Verilator.

(#919) [F764.6] Add, but do not use Options-mirroring Annotations
Make ClockListAnnotation a RegisteredTransform
Make InlineInstances a RegisteredTransform
Make CheckCombLoops a RegisteredTransform
Make DeadCodeElimination a RegisteredTransform
Add MemLibOptions RegisteredLibrary
Make ReplSeqMem mixin HasScoptOptions
Make InferReadWrite mixin HasScoptOptions
Add FirrtlOptions

(#921) Better error message on missing BlackBox resource

(#925) Revert "Instance Annotations"
Revert "Instance Annotations (#865)"

(#926) Instance Annotations, Try No. 2
Instance Annotations

(#927) Fix $TRAVIS_COMMIT_RANGE

(#928) Dont append to lists
Remove all uses of get_flip and deprecate
Use Vector instead of List for bulk renaming in RenameMap
Speed up LowerTypes by replacing foldLeft + List appends with flatMap
Speed up ExpandWhens by replacing foldLeft + List appends with flatMap
Speed up create_exps by replacing foldLeft + List appends with flatMap
Speed up ExpandConnects by replacing foldLeft + List appends with flatMap

(#930) fix renaming of port annotations in Uniquify
Fix renaming in UniquifyPorts

(#931) Update commandline sbt publishLocal

(#932) Better error message for UninferredWidth exception
Add prettyPrint method to Target

(#938) Add FIRRTL logo to repo and README

(#940) Bump sbt to 1.2.6; update dependencies

(#942) Memoize type of instance refs in RemoveKeywordCollisions

(#945) Change firrtl.options API, add Phase

(#946) Remove firrtl.altIR package

(#949) Make return types of utility functions more specific

(#953) Add "none" compiler

(#954) Replace Mappers with Foreachers in several passes

(#956) Add Width Constraints with Annotations

(#958) Fix bug in dedup where lots of annotations could prevent dedup

(#959) Bump SBT from 1.2.6 to 1.2.7 to fix partial recompilation issue

(#961) Small convenience tweaks to IR/WIR APIs

(#962) Enhance CheckCombLoops to support annotated ExtModule paths

(#967) Fix renaming of annotations with paths

(#969) [Top Wiring] Expand top wiring to work on aggregates

(#975) Give better error when mport references non-existant memory.

(#980) Performance fix of Uniquify for deep bundles

(#982) Update documentation links

(#984) Correctly handle dots in loaded memory paths

(#994) Improve Shl codegen; eliminate Shlw WIR node

(#996) Remove ghpages plugin

(#999) Bump copyright year

(#1000) Attempt to deal with timing vagaries in UniquifySpec.quicklyrenamedeepbundles

(#1001) typo fix

(#1002) Fork all sbt tasks
Fork all sbt test and run tasks

(#1003) Add MidFIRRTL spec

(#1004) Add "mverilog" Compiler Option, MinimumVerilogEmitter
Do Shr constant propagation in Legalize
Add RemoveValidIf to -X mverilog
Add "mverilog" and "sverilog" DriverSpec tests
Add "mverilog" Compiler Option, Compiler Fixes

(#1005) Stage/Phase
Add ShellOption, DeletedWrapper
OptionsView/Viewer typeclass canonicalizations
Add tests for Annotations/Options refactor
Add FirrtlStage, make Driver compatibility layer
Improve registered library help text

(#1006) Use default test_run_dir for more DriverSpec tests.

(#1008) Use apache commons for string escaping instead of reflection

(#1009) Missed constprop opportunity

(#1010) Mem helpers

(#1011) Asynchronous Reset

(#1012) Correct Kind info from #1010

(#1014) Fix typo for -c: compiler -> circuit

(#1023) Don't let the main module become deduped out of existence.

(#1024) Prevent Flatten from stripping all annotations

(#1025) No time left for you - quickly rename deep bundles still occasionally fails.

(#1026) Added mergify configuration

(#1027) Added mergify badge to README

(#1029) Bump yosys to 0.8

(#1030) Change mergify to just require an approval

(#1031) Detect and error on registers with flip in type

(#1032) Fix almost all scaladoc warnings, add source links
Add GitHub source links to Scaladoc
Fix almost all Scaladoc warnings

(#1034) Create a simple generic GraphViz renderer for DiGraph

(#1035) Add --nodedup option to facilitate FIRRTL to verilog regression testing.

(#1039) [ExpandWhens] Don't create nodes to hold Muxes with >0 void cases

(#1041) Add a data structure for memory conf reading and writing

(#1043) Make mergify run when no reviews request changes

(#1046) Advertise FIRRTL grammar support in Atom

(#1052) More constprop on muxes

(#1056) Add serialization support for LoadMemoryFileType in LoadMemoryAnnotation

(#1058) Convert the RemoveAccesses object into a class.

(#1060) Fix error reading empty MemConf strings
Designs with no SeqMems should produce empty MemConf strings, and this should be parsable without excepting

(#1063) Correct a typo in spec.tex

(#1065) DCE printf and stop statements with constant-0 enables
Add test for DCE of printf and stop

(#1067) Faster reg constprop

(#1068) Infer reset

(#1069) Remove redundant code

(#1071) LowerTypesSpec: additional unit test

(#1072) Remove unnecessary 'FIRRTLParser' prefix

(#1074) Use scalafix to remove unused import and deprecated procedure syntax

(#1075) Change Memory Depth to a BigInt

(#1076) Use UnknownKind instead misrepresented NodeKind

(#1079) Dependency API
Make Transform extend TransformLike
Add PhaseManager tests
Add DependencyManager and PhaseManager
Add PreservesAll stackable trait for DependencyAPI
Add a DependencyAPI to firrtl.options.Phase
Add seeded topological sort to DiGraph

(#1081) Update NoCircuitDedupAnnotation so it's available from firrtl.stage.FirrtlMain

(#1082) Bugfix: GroupComponents

(#1085) spec: mixed-input arguments for prim ops are no longer allowed

(#1087) Emit legal Verilog literals for ExtModule IntParams > 32-bit

(#1089) Analog attach order
make analog attachment order fixed with linked hash map

(#1093) Fix typo.

(#1094) Fix bad FirrtlStage deprecation warning

(#1095) Remove unused variables

(#1101) Fix typo

(#1102) Use pattern match instead of hardcode position

(#1106) Add Test for AddDefaults phase

(#1108) Remove shadow type parameter

(#1109) Implement MultiTargetAnnotation

(#1110) Make sure directory exist before writing

(#1111) Add SimplifyMems transform to lower memories without splitting

(#1113) README.md Patches
Fix custom transform example for Stage/Phase
Add Yosys 0.8 as prerequisite (sbt test needs it)

(#1114) Fix typo

(#1118) Remove some warnings

(#1121) Change Dependency API to Class[_ <: A]
Add type aliases for dependencies

(#1126) Fix RenameMap chaining

(#1129) Allow name of blackbox resource .f file to change from static value

(#1134) Filter out more fi...

Read more

v1.1.7

20 Mar 22:51
Compare
Choose a tag to compare

Incorporate the following fixes:

  • [ExpandWhens] Don't create nodes to hold Muxes with >0 void cases #1039