aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.run_chisel_tests.sh1
-rwxr-xr-x.run_formal_checks.sh3
-rw-r--r--LICENSE.apache184
-rw-r--r--TODO168
-rwxr-xr-xbenchmark/scripts/benchmark_cold_compile.py3
-rwxr-xr-xbenchmark/scripts/find_heap_bound.py2
-rw-r--r--benchmark/scripts/monitor_job.py2
-rw-r--r--benchmark/src/main/scala/firrtl/benchmark/hot/PassBenchmark.scala3
-rw-r--r--benchmark/src/main/scala/firrtl/benchmark/hot/SerializationBenchmark.scala2
-rw-r--r--benchmark/src/main/scala/firrtl/benchmark/hot/TransformBenchmark.scala3
-rw-r--r--benchmark/src/main/scala/firrtl/benchmark/util/package.scala1
-rw-r--r--build.sbt2
-rw-r--r--build.sc2
-rw-r--r--fuzzer/src/main/scala/firrtl/ExprGen.scala2
-rw-r--r--fuzzer/src/main/scala/firrtl/ExprGenParams.scala2
-rw-r--r--fuzzer/src/main/scala/firrtl/ExprState.scala2
-rw-r--r--fuzzer/src/main/scala/firrtl/FirrtlCompileTests.scala2
-rw-r--r--fuzzer/src/main/scala/firrtl/FirrtlEquivalenceTest.scala2
-rw-r--r--fuzzer/src/main/scala/firrtl/GenMonad.scala2
-rw-r--r--fuzzer/src/main/scala/firrtl/StateGen.scala2
-rw-r--r--fuzzer/src/test/scala/Example.scala2
-rw-r--r--fuzzer/src/test/scala/GenMonad.scala2
-rw-r--r--jqf/src/main/scala/JQFFuzz.scala2
-rw-r--r--jqf/src/main/scala/JQFRepro.scala2
-rw-r--r--regress/AddNot.fir1
-rw-r--r--regress/FPU.fir1
-rw-r--r--regress/HwachaSequencer.fir3
-rw-r--r--regress/ICache.fir1
-rw-r--r--regress/Ops.fir1
-rw-r--r--regress/Rob.fir1
-rw-r--r--regress/RocketCore.fir1
-rwxr-xr-xscripts/formal_equiv.sh3
-rwxr-xr-xscripts/parse_firrtl_transform_log.py2
-rw-r--r--spec/spec.tex1
-rw-r--r--src/LICENSE.txt26
-rw-r--r--src/main/antlr4/FIRRTL.g42
-rw-r--r--src/main/proto/firrtl.proto2
-rw-r--r--src/main/scala/firrtl/AddDescriptionNodes.scala2
-rw-r--r--src/main/scala/firrtl/Compiler.scala2
-rw-r--r--src/main/scala/firrtl/DependencyAPIMigration.scala2
-rw-r--r--src/main/scala/firrtl/Driver.scala2
-rw-r--r--src/main/scala/firrtl/EmissionOption.scala2
-rw-r--r--src/main/scala/firrtl/Emitter.scala2
-rw-r--r--src/main/scala/firrtl/ExecutionOptionsManager.scala2
-rw-r--r--src/main/scala/firrtl/FileUtils.scala2
-rw-r--r--src/main/scala/firrtl/FirrtlException.scala2
-rw-r--r--src/main/scala/firrtl/Implicits.scala2
-rw-r--r--src/main/scala/firrtl/LexerHelper.scala2
-rw-r--r--src/main/scala/firrtl/LoweringCompilers.scala2
-rw-r--r--src/main/scala/firrtl/Mappers.scala2
-rw-r--r--src/main/scala/firrtl/Namespace.scala2
-rw-r--r--src/main/scala/firrtl/Parser.scala2
-rw-r--r--src/main/scala/firrtl/PrimOps.scala2
-rw-r--r--src/main/scala/firrtl/RenameMap.scala2
-rw-r--r--src/main/scala/firrtl/Utils.scala2
-rw-r--r--src/main/scala/firrtl/Visitor.scala2
-rw-r--r--src/main/scala/firrtl/WIR.scala2
-rw-r--r--src/main/scala/firrtl/analyses/CircuitGraph.scala2
-rw-r--r--src/main/scala/firrtl/analyses/ConnectionGraph.scala2
-rw-r--r--src/main/scala/firrtl/analyses/GetNamespace.scala2
-rw-r--r--src/main/scala/firrtl/analyses/IRLookup.scala2
-rw-r--r--src/main/scala/firrtl/analyses/InstanceGraph.scala2
-rw-r--r--src/main/scala/firrtl/analyses/InstanceKeyGraph.scala2
-rw-r--r--src/main/scala/firrtl/analyses/NodeCount.scala2
-rw-r--r--src/main/scala/firrtl/analyses/SymbolTable.scala2
-rw-r--r--src/main/scala/firrtl/annotations/Annotation.scala2
-rw-r--r--src/main/scala/firrtl/annotations/AnnotationUtils.scala2
-rw-r--r--src/main/scala/firrtl/annotations/JsonProtocol.scala2
-rw-r--r--src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala2
-rw-r--r--src/main/scala/firrtl/annotations/MemoryInitAnnotation.scala2
-rw-r--r--src/main/scala/firrtl/annotations/PresetAnnotations.scala2
-rw-r--r--src/main/scala/firrtl/annotations/Target.scala2
-rw-r--r--src/main/scala/firrtl/annotations/TargetToken.scala2
-rw-r--r--src/main/scala/firrtl/annotations/analysis/DuplicationHelper.scala2
-rw-r--r--src/main/scala/firrtl/annotations/transforms/CleanupNamedTargets.scala2
-rw-r--r--src/main/scala/firrtl/annotations/transforms/EliminateTargetPaths.scala2
-rw-r--r--src/main/scala/firrtl/backends/experimental/smt/Btor2Serializer.scala2
-rw-r--r--src/main/scala/firrtl/backends/experimental/smt/FirrtlExpressionSemantics.scala2
-rw-r--r--src/main/scala/firrtl/backends/experimental/smt/FirrtlToTransitionSystem.scala2
-rw-r--r--src/main/scala/firrtl/backends/experimental/smt/SMTEmitter.scala2
-rw-r--r--src/main/scala/firrtl/backends/experimental/smt/SMTExpr.scala2
-rw-r--r--src/main/scala/firrtl/backends/experimental/smt/SMTExprVisitor.scala2
-rw-r--r--src/main/scala/firrtl/backends/experimental/smt/SMTLibSerializer.scala2
-rw-r--r--src/main/scala/firrtl/backends/experimental/smt/SMTTransitionSystemEncoder.scala2
-rw-r--r--src/main/scala/firrtl/backends/experimental/smt/StutteringClockTransform.scala2
-rw-r--r--src/main/scala/firrtl/checks/CheckResets.scala2
-rw-r--r--src/main/scala/firrtl/constraint/Constraint.scala2
-rw-r--r--src/main/scala/firrtl/constraint/ConstraintSolver.scala2
-rw-r--r--src/main/scala/firrtl/constraint/Inequality.scala2
-rw-r--r--src/main/scala/firrtl/constraint/IsAdd.scala2
-rw-r--r--src/main/scala/firrtl/constraint/IsFloor.scala2
-rw-r--r--src/main/scala/firrtl/constraint/IsKnown.scala2
-rw-r--r--src/main/scala/firrtl/constraint/IsMax.scala2
-rw-r--r--src/main/scala/firrtl/constraint/IsMin.scala2
-rw-r--r--src/main/scala/firrtl/constraint/IsMul.scala2
-rw-r--r--src/main/scala/firrtl/constraint/IsNeg.scala2
-rw-r--r--src/main/scala/firrtl/constraint/IsPow.scala2
-rw-r--r--src/main/scala/firrtl/constraint/IsVar.scala2
-rw-r--r--src/main/scala/firrtl/features/LetterCaseTransform.scala2
-rw-r--r--src/main/scala/firrtl/graph/DiGraph.scala2
-rw-r--r--src/main/scala/firrtl/graph/EdgeData.scala2
-rw-r--r--src/main/scala/firrtl/graph/EulerTour.scala2
-rw-r--r--src/main/scala/firrtl/graph/RenderDiGraph.scala2
-rw-r--r--src/main/scala/firrtl/ir/IR.scala2
-rw-r--r--src/main/scala/firrtl/ir/Serializer.scala2
-rw-r--r--src/main/scala/firrtl/ir/StructuralHash.scala2
-rw-r--r--src/main/scala/firrtl/options/DependencyManager.scala2
-rw-r--r--src/main/scala/firrtl/options/Exceptions.scala2
-rw-r--r--src/main/scala/firrtl/options/ExitCodes.scala2
-rw-r--r--src/main/scala/firrtl/options/OptionParser.scala2
-rw-r--r--src/main/scala/firrtl/options/OptionsView.scala2
-rw-r--r--src/main/scala/firrtl/options/Phase.scala2
-rw-r--r--src/main/scala/firrtl/options/Registration.scala2
-rw-r--r--src/main/scala/firrtl/options/Shell.scala2
-rw-r--r--src/main/scala/firrtl/options/Stage.scala2
-rw-r--r--src/main/scala/firrtl/options/StageAnnotations.scala2
-rw-r--r--src/main/scala/firrtl/options/StageOptions.scala2
-rw-r--r--src/main/scala/firrtl/options/StageUtils.scala2
-rw-r--r--src/main/scala/firrtl/options/package.scala2
-rw-r--r--src/main/scala/firrtl/options/phases/AddDefaults.scala2
-rw-r--r--src/main/scala/firrtl/options/phases/Checks.scala2
-rw-r--r--src/main/scala/firrtl/options/phases/ConvertLegacyAnnotations.scala2
-rw-r--r--src/main/scala/firrtl/options/phases/DeletedWrapper.scala2
-rw-r--r--src/main/scala/firrtl/options/phases/GetIncludes.scala2
-rw-r--r--src/main/scala/firrtl/options/phases/WriteOutputAnnotations.scala2
-rw-r--r--src/main/scala/firrtl/package.scala2
-rw-r--r--src/main/scala/firrtl/passes/CInferMDir.scala2
-rw-r--r--src/main/scala/firrtl/passes/CheckChirrtl.scala2
-rw-r--r--src/main/scala/firrtl/passes/CheckFlows.scala2
-rw-r--r--src/main/scala/firrtl/passes/CheckHighForm.scala2
-rw-r--r--src/main/scala/firrtl/passes/CheckInitialization.scala2
-rw-r--r--src/main/scala/firrtl/passes/CheckTypes.scala2
-rw-r--r--src/main/scala/firrtl/passes/CheckWidths.scala2
-rw-r--r--src/main/scala/firrtl/passes/CommonSubexpressionElimination.scala2
-rw-r--r--src/main/scala/firrtl/passes/ConvertFixedToSInt.scala2
-rw-r--r--src/main/scala/firrtl/passes/ExpandConnects.scala2
-rw-r--r--src/main/scala/firrtl/passes/ExpandWhens.scala2
-rw-r--r--src/main/scala/firrtl/passes/InferBinaryPoints.scala2
-rw-r--r--src/main/scala/firrtl/passes/InferTypes.scala2
-rw-r--r--src/main/scala/firrtl/passes/InferWidths.scala2
-rw-r--r--src/main/scala/firrtl/passes/Inline.scala2
-rw-r--r--src/main/scala/firrtl/passes/Legalize.scala2
-rw-r--r--src/main/scala/firrtl/passes/LowerTypes.scala2
-rw-r--r--src/main/scala/firrtl/passes/PadWidths.scala2
-rw-r--r--src/main/scala/firrtl/passes/Pass.scala2
-rw-r--r--src/main/scala/firrtl/passes/PullMuxes.scala2
-rw-r--r--src/main/scala/firrtl/passes/RemoveAccesses.scala2
-rw-r--r--src/main/scala/firrtl/passes/RemoveCHIRRTL.scala2
-rw-r--r--src/main/scala/firrtl/passes/RemoveEmpty.scala2
-rw-r--r--src/main/scala/firrtl/passes/RemoveIntervals.scala2
-rw-r--r--src/main/scala/firrtl/passes/RemoveValidIf.scala2
-rw-r--r--src/main/scala/firrtl/passes/ReplaceAccesses.scala2
-rw-r--r--src/main/scala/firrtl/passes/ResolveFlows.scala2
-rw-r--r--src/main/scala/firrtl/passes/ResolveKinds.scala2
-rw-r--r--src/main/scala/firrtl/passes/SplitExpressions.scala2
-rw-r--r--src/main/scala/firrtl/passes/ToWorkingIR.scala2
-rw-r--r--src/main/scala/firrtl/passes/TrimIntervals.scala2
-rw-r--r--src/main/scala/firrtl/passes/Uniquify.scala2
-rw-r--r--src/main/scala/firrtl/passes/VerilogModulusCleanup.scala2
-rw-r--r--src/main/scala/firrtl/passes/VerilogPrep.scala2
-rw-r--r--src/main/scala/firrtl/passes/ZeroLengthVecs.scala2
-rw-r--r--src/main/scala/firrtl/passes/ZeroWidth.scala2
-rw-r--r--src/main/scala/firrtl/passes/clocklist/ClockList.scala2
-rw-r--r--src/main/scala/firrtl/passes/clocklist/ClockListTransform.scala2
-rw-r--r--src/main/scala/firrtl/passes/clocklist/ClockListUtils.scala2
-rw-r--r--src/main/scala/firrtl/passes/clocklist/RemoveAllButClocks.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/DecorateMems.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/InferReadWrite.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/MemConf.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/MemIR.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/MemLibOptions.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/MemTransformUtils.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/MemUtils.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/RenameAnnotatedMemoryPorts.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/ReplaceMemMacros.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/ReplaceMemTransform.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/ResolveMaskGranularity.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/ResolveMemoryReference.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/ToMemIR.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/VerilogMemDelays.scala2
-rw-r--r--src/main/scala/firrtl/passes/memlib/YamlUtils.scala2
-rw-r--r--src/main/scala/firrtl/passes/wiring/Wiring.scala2
-rw-r--r--src/main/scala/firrtl/passes/wiring/WiringTransform.scala2
-rw-r--r--src/main/scala/firrtl/passes/wiring/WiringUtils.scala2
-rw-r--r--src/main/scala/firrtl/proto/FromProto.scala2
-rw-r--r--src/main/scala/firrtl/proto/ToProto.scala2
-rw-r--r--src/main/scala/firrtl/stage/FirrtlAnnotations.scala2
-rw-r--r--src/main/scala/firrtl/stage/FirrtlCli.scala2
-rw-r--r--src/main/scala/firrtl/stage/FirrtlOptions.scala2
-rw-r--r--src/main/scala/firrtl/stage/FirrtlStage.scala2
-rw-r--r--src/main/scala/firrtl/stage/FirrtlStageUtils.scala2
-rw-r--r--src/main/scala/firrtl/stage/Forms.scala2
-rw-r--r--src/main/scala/firrtl/stage/TransformManager.scala2
-rw-r--r--src/main/scala/firrtl/stage/package.scala2
-rw-r--r--src/main/scala/firrtl/stage/phases/AddCircuit.scala2
-rw-r--r--src/main/scala/firrtl/stage/phases/AddDefaults.scala2
-rw-r--r--src/main/scala/firrtl/stage/phases/AddImplicitEmitter.scala2
-rw-r--r--src/main/scala/firrtl/stage/phases/AddImplicitOutputFile.scala2
-rw-r--r--src/main/scala/firrtl/stage/phases/CatchExceptions.scala2
-rw-r--r--src/main/scala/firrtl/stage/phases/Checks.scala2
-rw-r--r--src/main/scala/firrtl/stage/phases/Compiler.scala2
-rw-r--r--src/main/scala/firrtl/stage/phases/ConvertCompilerAnnotations.scala2
-rw-r--r--src/main/scala/firrtl/stage/phases/DriverCompatibility.scala2
-rw-r--r--src/main/scala/firrtl/stage/phases/WriteEmitted.scala2
-rw-r--r--src/main/scala/firrtl/stage/transforms/CatchCustomTransformExceptions.scala2
-rw-r--r--src/main/scala/firrtl/stage/transforms/CheckScalaVersion.scala2
-rw-r--r--src/main/scala/firrtl/stage/transforms/Compiler.scala2
-rw-r--r--src/main/scala/firrtl/stage/transforms/ExpandPrepares.scala2
-rw-r--r--src/main/scala/firrtl/stage/transforms/TrackTransforms.scala2
-rw-r--r--src/main/scala/firrtl/stage/transforms/UpdateAnnotations.scala2
-rw-r--r--src/main/scala/firrtl/stage/transforms/WrappedTransform.scala2
-rw-r--r--src/main/scala/firrtl/transforms/BlackBoxSourceHelper.scala2
-rw-r--r--src/main/scala/firrtl/transforms/CheckCombLoops.scala2
-rw-r--r--src/main/scala/firrtl/transforms/CombineCats.scala2
-rw-r--r--src/main/scala/firrtl/transforms/ConstantPropagation.scala2
-rw-r--r--src/main/scala/firrtl/transforms/DeadCodeElimination.scala2
-rw-r--r--src/main/scala/firrtl/transforms/Dedup.scala2
-rw-r--r--src/main/scala/firrtl/transforms/FixAddingNegativeLiteralsTransform.scala2
-rw-r--r--src/main/scala/firrtl/transforms/Flatten.scala2
-rw-r--r--src/main/scala/firrtl/transforms/FlattenRegUpdate.scala2
-rw-r--r--src/main/scala/firrtl/transforms/GroupComponents.scala2
-rw-r--r--src/main/scala/firrtl/transforms/IdentityTransform.scala2
-rw-r--r--src/main/scala/firrtl/transforms/InferResets.scala2
-rw-r--r--src/main/scala/firrtl/transforms/InlineBitExtractions.scala2
-rw-r--r--src/main/scala/firrtl/transforms/InlineBooleanExpressions.scala2
-rw-r--r--src/main/scala/firrtl/transforms/InlineCasts.scala2
-rw-r--r--src/main/scala/firrtl/transforms/LegalizeClocksAndAsyncResets.scala2
-rw-r--r--src/main/scala/firrtl/transforms/LegalizeReductions.scala2
-rw-r--r--src/main/scala/firrtl/transforms/ManipulateNames.scala2
-rw-r--r--src/main/scala/firrtl/transforms/OptimizationAnnotations.scala2
-rw-r--r--src/main/scala/firrtl/transforms/PropagatePresetAnnotations.scala2
-rw-r--r--src/main/scala/firrtl/transforms/RemoveKeywordCollisions.scala2
-rw-r--r--src/main/scala/firrtl/transforms/RemoveReset.scala2
-rw-r--r--src/main/scala/firrtl/transforms/RemoveWires.scala2
-rw-r--r--src/main/scala/firrtl/transforms/RenameModules.scala2
-rw-r--r--src/main/scala/firrtl/transforms/ReplaceTruncatingArithmetic.scala2
-rw-r--r--src/main/scala/firrtl/transforms/SimplifyMems.scala2
-rw-r--r--src/main/scala/firrtl/transforms/TopWiring.scala2
-rw-r--r--src/main/scala/firrtl/transforms/formal/AssertSubmoduleAssumptions.scala2
-rw-r--r--src/main/scala/firrtl/transforms/formal/ConvertAsserts.scala2
-rw-r--r--src/main/scala/firrtl/transforms/formal/RemoveVerificationStatements.scala2
-rw-r--r--src/main/scala/firrtl/transforms/package.scala2
-rw-r--r--src/main/scala/firrtl/traversals/Foreachers.scala2
-rw-r--r--src/main/scala/firrtl/util/BackendCompilationUtilities.scala2
-rw-r--r--src/main/scala/firrtl/util/ClassUtils.scala2
-rw-r--r--src/main/scala/firrtl/util/TestOptions.scala2
-rw-r--r--src/main/scala/logger/Logger.scala2
-rw-r--r--src/main/scala/logger/LoggerAnnotations.scala2
-rw-r--r--src/main/scala/logger/LoggerOptions.scala2
-rw-r--r--src/main/scala/logger/package.scala2
-rw-r--r--src/main/scala/logger/phases/AddDefaults.scala2
-rw-r--r--src/main/scala/logger/phases/Checks.scala2
-rw-r--r--src/main/scala/tutorial/lesson1-circuit-traversal/AnalyzeCircuit.scala2
-rw-r--r--src/main/scala/tutorial/lesson2-ir-fields/AnalyzeCircuit.scala2
-rw-r--r--src/test/resources/blackboxes/AdderExtModule.v2
-rw-r--r--src/test/resources/blackboxes/LargeParam.v2
-rw-r--r--src/test/resources/blackboxes/LargeParamTester.fir2
-rw-r--r--src/test/resources/blackboxes/MultiExtModuleTester.fir2
-rw-r--r--src/test/resources/blackboxes/ParameterizedExtModule.v2
-rw-r--r--src/test/resources/blackboxes/ParameterizedExtModuleTester.fir2
-rw-r--r--src/test/resources/blackboxes/ParameterizedViaHeaderAdderExtModule.v2
-rw-r--r--src/test/resources/blackboxes/RenamedExtModuleTester.fir2
-rw-r--r--src/test/resources/blackboxes/SimpleExtModule.v2
-rw-r--r--src/test/resources/blackboxes/SimpleExtModuleTester.fir2
-rw-r--r--src/test/resources/blackboxes/VerilogHeaderFile.vh2
-rw-r--r--src/test/resources/features/AsyncResetTester.fir2
-rw-r--r--src/test/resources/features/ChirrtlMems.fir2
-rw-r--r--src/test/resources/features/CustomTransform.fir2
-rw-r--r--src/test/resources/features/EmptyChirrtlMem.fir2
-rw-r--r--src/test/resources/features/HasDeadCode.fir1
-rw-r--r--src/test/resources/features/HasLoops.fir1
-rw-r--r--src/test/resources/features/NestedSubAccessTester.fir2
-rw-r--r--src/test/resources/features/NodeType.fir1
-rw-r--r--src/test/resources/features/PresetTester.fir2
-rw-r--r--src/test/resources/features/Printf.fir2
-rw-r--r--src/test/resources/features/ZeroPortMem.fir2
-rw-r--r--src/test/resources/features/ZeroWidthMem.fir2
-rw-r--r--src/test/resources/firrtl/testTop.cpp2
-rw-r--r--src/test/resources/passes/ExpandWhens/ExpandWhens.fir2
-rw-r--r--src/test/resources/passes/Legalize/Legalize.fir2
-rw-r--r--src/test/scala/firrtl/JsonProtocolSpec.scala2
-rw-r--r--src/test/scala/firrtl/analysis/SymbolTableSpec.scala2
-rw-r--r--src/test/scala/firrtl/backends/experimental/smt/Btor2Spec.scala2
-rw-r--r--src/test/scala/firrtl/backends/experimental/smt/FirrtlExpressionSemanticsSpec.scala2
-rw-r--r--src/test/scala/firrtl/backends/experimental/smt/FirrtlModuleToTransitionSystemSpec.scala2
-rw-r--r--src/test/scala/firrtl/backends/experimental/smt/SMTBackendBaseSpec.scala2
-rw-r--r--src/test/scala/firrtl/backends/experimental/smt/SMTLibSpec.scala2
-rw-r--r--src/test/scala/firrtl/backends/experimental/smt/end2end/AsyncResetSpec.scala2
-rw-r--r--src/test/scala/firrtl/backends/experimental/smt/end2end/EndToEndSMTSpec.scala2
-rw-r--r--src/test/scala/firrtl/backends/experimental/smt/end2end/MemorySpec.scala2
-rw-r--r--src/test/scala/firrtl/backends/experimental/smt/end2end/RequiresZ3.scala2
-rw-r--r--src/test/scala/firrtl/backends/experimental/smt/end2end/SMTCompilationTest.scala2
-rw-r--r--src/test/scala/firrtl/backends/experimental/smt/end2end/UndefinedFirrtlSpec.scala2
-rw-r--r--src/test/scala/firrtl/ir/StructuralHashSpec.scala2
-rw-r--r--src/test/scala/firrtl/passes/LowerTypesSpec.scala2
-rw-r--r--src/test/scala/firrtl/stage/phases/tests/ConvertCompilerAnnotationsSpec.scala2
-rw-r--r--src/test/scala/firrtl/stage/phases/tests/DriverCompatibilitySpec.scala2
-rw-r--r--src/test/scala/firrtl/testutils/FirrtlSpec.scala2
-rw-r--r--src/test/scala/firrtl/testutils/LeanTransformSpec.scala2
-rw-r--r--src/test/scala/firrtl/testutils/PassTests.scala2
-rw-r--r--src/test/scala/firrtlTests/AnnotationTests.scala2
-rw-r--r--src/test/scala/firrtlTests/AsyncResetSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/AttachSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/CInferMDirSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/CheckCombLoopsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/CheckInitializationSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/CheckSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ChirrtlMemSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ChirrtlSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ClockListTests.scala2
-rw-r--r--src/test/scala/firrtlTests/CompilerTests.scala2
-rw-r--r--src/test/scala/firrtlTests/CompilerUtilsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ConstantPropagationTests.scala2
-rw-r--r--src/test/scala/firrtlTests/CustomTransformSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/DCETests.scala2
-rw-r--r--src/test/scala/firrtlTests/DriverSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ExecutionOptionsManagerSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ExpandWhensSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ExtModuleSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ExtModuleTests.scala2
-rw-r--r--src/test/scala/firrtlTests/FeatureSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/FileUtilsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/FlattenTests.scala2
-rw-r--r--src/test/scala/firrtlTests/InferReadWriteSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/InferResetsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/InfoSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/InlineBooleanExpressionsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/InlineCastsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/InlineInstancesTests.scala2
-rw-r--r--src/test/scala/firrtlTests/IntegrationSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/LegalizeSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/LowerTypesSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/LoweringCompilersSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/MemEnFeedbackSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/MemLatencySpec.scala2
-rw-r--r--src/test/scala/firrtlTests/MemSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/MemoryInitSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/MultiThreadingSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/NamespaceSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ParserSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/PresetSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ProtoBufSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/RegisterUpdateSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/RemoveWiresSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/RenameMapSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ReplSeqMemTests.scala2
-rw-r--r--src/test/scala/firrtlTests/ReplaceAccessesSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ReplaceTruncatingArithmeticSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/SerializerSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/SimplifyMemsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/StringSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/UniquifySpec.scala2
-rw-r--r--src/test/scala/firrtlTests/UnitTests.scala2
-rw-r--r--src/test/scala/firrtlTests/UtilsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/VerilogEmitterTests.scala2
-rw-r--r--src/test/scala/firrtlTests/VerilogMemDelaySpec.scala2
-rw-r--r--src/test/scala/firrtlTests/WidthSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/WiringTests.scala2
-rw-r--r--src/test/scala/firrtlTests/ZeroLengthVecsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/ZeroWidthTests.scala2
-rw-r--r--src/test/scala/firrtlTests/analyses/CircuitGraphSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/analyses/ConnectionGraphSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/analyses/IRLookupSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/analyses/InstanceGraphTests.scala2
-rw-r--r--src/test/scala/firrtlTests/analyses/InstanceKeyGraphSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/annotationTests/CleanupNamedTargetsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/annotationTests/EliminateTargetPathsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/annotationTests/LoadMemoryAnnotationSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/annotationTests/MorphismSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/annotationTests/TargetDirAnnotationSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/annotationTests/TargetSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/constraint/InequalitySpec.scala2
-rw-r--r--src/test/scala/firrtlTests/execution/ExecutionTestHelper.scala2
-rw-r--r--src/test/scala/firrtlTests/execution/ParserHelpers.scala2
-rw-r--r--src/test/scala/firrtlTests/execution/SimpleExecutionTest.scala2
-rw-r--r--src/test/scala/firrtlTests/execution/VerilogExecution.scala2
-rw-r--r--src/test/scala/firrtlTests/features/LetterCaseTransformSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/fixed/FixedPointMathSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/fixed/FixedSerializationSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/fixed/FixedTypeInferenceSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/fixed/RemoveFixedTypeSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/formal/AssertSubmoduleAssumptionsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/formal/ConvertAssertsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/formal/RemoveVerificationStatementsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/formal/VerificationSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/graph/DiGraphTests.scala2
-rw-r--r--src/test/scala/firrtlTests/graph/EulerTourTests.scala2
-rw-r--r--src/test/scala/firrtlTests/interval/IntervalMathSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/interval/IntervalSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/options/OptionParserSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/options/OptionsViewSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/options/PhaseManagerSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/options/RegistrationSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/options/ShellSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/options/phases/AddDefaultsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/options/phases/ChecksSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/options/phases/GetIncludesSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/options/phases/WriteOutputAnnotationsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/passes/InferTypesFlowsAndKindsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/stage/FirrtlCliSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/stage/FirrtlMainSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/stage/FirrtlOptionsViewSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/stage/phases/AddCircuitSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/stage/phases/AddDefaultsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/stage/phases/AddImplicitEmitterSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/stage/phases/AddImplicitOutputFileSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/stage/phases/ChecksSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/stage/phases/CompilerSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/stage/phases/WriteEmittedSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/transforms/BlackBoxSourceHelperSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/transforms/CombineCatsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/transforms/DedupTests.scala2
-rw-r--r--src/test/scala/firrtlTests/transforms/GroupComponentsSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/transforms/InferWidthsWithAnnosSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/transforms/LegalizeClocksAndAsyncResets.scala2
-rw-r--r--src/test/scala/firrtlTests/transforms/LegalizeReductions.scala2
-rw-r--r--src/test/scala/firrtlTests/transforms/ManipulateNamesSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/transforms/RemoveResetSpec.scala2
-rw-r--r--src/test/scala/firrtlTests/transforms/TopWiringTest.scala2
-rw-r--r--src/test/scala/loggertests/LoggerSpec.scala2
-rw-r--r--test/integration/GCDTester.fir3
-rw-r--r--test/integration/MemTester.fir2
-rw-r--r--test/integration/PipeTester.fir2
-rw-r--r--test/integration/RightShiftTester.fir3
425 files changed, 660 insertions, 558 deletions
diff --git a/.run_chisel_tests.sh b/.run_chisel_tests.sh
index 6c10e9b6..dfa54307 100644
--- a/.run_chisel_tests.sh
+++ b/.run_chisel_tests.sh
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: Apache-2.0
set -e
# Use appropriate branches.
diff --git a/.run_formal_checks.sh b/.run_formal_checks.sh
index 1caa2297..f5ffec25 100755
--- a/.run_formal_checks.sh
+++ b/.run_formal_checks.sh
@@ -1,4 +1,7 @@
#!/usr/bin/env bash
+
+# SPDX-License-Identifier: Apache-2.0
+
set -e
if [ $# -ne 1 ]; then
diff --git a/LICENSE.apache b/LICENSE.apache
new file mode 100644
index 00000000..83a82c68
--- /dev/null
+++ b/LICENSE.apache
@@ -0,0 +1,184 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ ------------------------------------------------------------------------
+ Note:
+ Individual files contain the following tag instead of the full license text.
+
+ // SPDX-License-Identifier: Apache-2.0
+
diff --git a/TODO b/TODO
deleted file mode 100644
index a54f6edf..00000000
--- a/TODO
+++ /dev/null
@@ -1,168 +0,0 @@
-Add check passes
-Fix all test cases
-Add chirrtl support
-Test with real RTL
-Add optimization passes
-Figure out naming
-Convert to scala
-Tech Report
-ROM node
-
-
-Support ASIC backend
- Pass to generate writemasks for ram's in general (ASICs and FPGAs)
- Mem of vec, should just work?
- ASIC rams (pass to replace smem with black box)
- Readwrite Port
-Add %s, %b, %e etc. to spec
-
-================================================
-========== ADAM's BIG ARSE TODO LIST ============
-================================================
-
-======== Current Tasks ========
-don't split on asuint and assint, and no need to emit cast of $unsigned
-put clocks on accessors
-add clock check to high firrtl check
-
-naming still doesn't work - x!0 will conflict with x
-think about inferring read enable from lo firrtl
-
-Tests:
- Lowering for instance types with bundle ports
- More prefix tests
- Expand-when semantics
- Ensure module names are unique
- Large width of dshl
-
-fix expand-whens to have correct semantics
-need an annotation example
-move width inference earlier (required for consistent vec width inference)
-Temp elimination needs to count # uses
-Check for recursively defined instances
-Names in bundles must be unique
-Fix reset scope
-Scaling
-Adam, could you add the following to firrtl (the program)
- - exit(0) on success, exit(1) on any failure
- - a “-“ as a file indicates stdin for input or stdout for output so:
- firrtl -i - -o - fir -X flo
- operates like a filter.
- - and we should also support:
- firrtl -X flo < foo.fir > foo.flo
- (another more common filter form).
-
-======== Verilog Backend Notes ========
-* 1) Emit module. No Parameters. Include clk and reset signals
-o 2) Emit all declarations (wires,regs)
-o 3) Initialize all regs with random values under synthesis
-o 4) Emit all connections as assign statements
-o 5) Emit assertions under always @ posedge clk, under synthesis
-o 6) Emit all register updates:
- if(io_update_valid) begin
- R4 <= io_update_bits_target;
- end
- Note: muxes turn into if/else statements within the always@ block
-Notes:
- For now, emit mems as reg with nothing else.
- WritePorts?
-Checks:
- names in fields should be special renamed
- widths are -1 of size
- zero width?
-
-======== Update Core ==========
-Add RdWrPort
-
-======== Check Passes ==========
-High-Firrtl
- No combinational loops
- Clocks are used correctly
-
-After adding dynamic assertions, insert bounds check with accessor expansion
-Width inference
- No names
- No Unknowns
- All widths are positive, and nonzero
- Pad's width is greater than value's width
- pad's width is greater than value's width
- connect can connect from big to small?? <- I think this shouldn't be allowed
-Width pad check?
-
-======== Other Passes ========
-constant folding (partial eval) pass
- Get rid of unnecessary pads
- push pad into literal
-common subexpression elimination pass
-deadcode elimination
-
-======== Consultations ========
-Andrew: Way to keep Array information for backends to avoid code explosion
-
-======== Think About ========
-verilog style guide
-annotation system
-zero-width wires
-expanding mems (consider changing defmem to be size, and element type)
-Multi-streams for print statements/asserts (Jack)
-Consider def female node. (Patrick)
-Add FIFOs to the IR (Palmer)
-Union Types
-Enums?
-Convert to scala
-Firrtl interpreter (in scala)
-
-======== Update Spec ========
-Add explanation of an instance type, ie converting from input/output to default/reverse
- also, can only be used on the right side of :=
-Write a better conditional section
-Improve node section
-Add priority of connect statements to spec
-Use source/sink instead of input/output
-Add assert statement explanation
-think about printfs
-think about subword on accessors, non-ground types
-think about mems in lowered form - change ReadPort's reference to mem to be either exp or id
-think about ROMS
-think about how widths propagate - add section explicitly addressing this
-
-FIRRTL rule: No name can be a prefix of any other name.
-Future questions to address in spec:
- Introduction – motivation, and intended usage
- Philosophical justifications for all constructs
- More introduction for types, e.g. what is a ground type?
- What is a statement? What is an expression? What is a memory? Difference between vector type and memory? What are accessors for?
- Why would I ever write an empty statement? Mainly for use by compiler/passes
- What is a structural element? Duplication?
- Subtracting two unsigned numbers… Should talk to a math guy to figure it out
- What are shift left and shift right operations? HW doesn’t have these concepts. Need justification.
- What is lowered form? What is it for?
-
-======== Pass Ideas ==========
-Bounds checks for accessors
-Overflow checks for add/add-wrap
-Check combinational
-Fast C++ where wires/register/instances are predicated
-Verilog backend - put stuff in posedge clock, not assign statements, for speedup
-Annotate mems with location stuff
-Coverage tests, such as statespace or specific instances (like asserts, sort of)
- check all predicates of whens
-Generate a ROM, and index with cycle counter, and dynamically check any wire on a given cycle
-
-======== FIRRTL++ =========
-Variable size FIFOs
-TruthTable node
-Custom types? Parameterized Types?
-Priority encoder/Log2 nodes
-
-======== Next Layer Components =======
-Accelerator with config registers
-Schedulable
- Decouple
- Nack
-Scheduler
-
-======== Notes ========
-Which ones
-Treat everything as just bits - the only operators that should exist are ones that emit different bits
-Go through all primops with Andrew
diff --git a/benchmark/scripts/benchmark_cold_compile.py b/benchmark/scripts/benchmark_cold_compile.py
index c480987c..2a0431be 100755
--- a/benchmark/scripts/benchmark_cold_compile.py
+++ b/benchmark/scripts/benchmark_cold_compile.py
@@ -1,5 +1,6 @@
#!/usr/bin/env python3
-# See LICENSE for license details.
+# SPDX-License-Identifier: Apache-2.0
+
import subprocess
from statistics import median, stdev
diff --git a/benchmark/scripts/find_heap_bound.py b/benchmark/scripts/find_heap_bound.py
index c230c35b..e89cfa5d 100755
--- a/benchmark/scripts/find_heap_bound.py
+++ b/benchmark/scripts/find_heap_bound.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# See LICENSE for license details.
+# SPDX-License-Identifier: Apache-2.0
import re
import argparse
diff --git a/benchmark/scripts/monitor_job.py b/benchmark/scripts/monitor_job.py
index f0465e7c..088b6803 100644
--- a/benchmark/scripts/monitor_job.py
+++ b/benchmark/scripts/monitor_job.py
@@ -1,4 +1,4 @@
-# See LICENSE for license details.
+# SPDX-License-Identifier: Apache-2.0
"""
Utilities for running a subprocess and collecting runtime and memory use information.
diff --git a/benchmark/src/main/scala/firrtl/benchmark/hot/PassBenchmark.scala b/benchmark/src/main/scala/firrtl/benchmark/hot/PassBenchmark.scala
index e7d907cd..707c7170 100644
--- a/benchmark/src/main/scala/firrtl/benchmark/hot/PassBenchmark.scala
+++ b/benchmark/src/main/scala/firrtl/benchmark/hot/PassBenchmark.scala
@@ -1,5 +1,4 @@
-// See LICENSE for license details.
-
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package benchmark
package hot
diff --git a/benchmark/src/main/scala/firrtl/benchmark/hot/SerializationBenchmark.scala b/benchmark/src/main/scala/firrtl/benchmark/hot/SerializationBenchmark.scala
index e6ef04ec..592b0eb8 100644
--- a/benchmark/src/main/scala/firrtl/benchmark/hot/SerializationBenchmark.scala
+++ b/benchmark/src/main/scala/firrtl/benchmark/hot/SerializationBenchmark.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.benchmark.hot
import firrtl.benchmark.util._
diff --git a/benchmark/src/main/scala/firrtl/benchmark/hot/TransformBenchmark.scala b/benchmark/src/main/scala/firrtl/benchmark/hot/TransformBenchmark.scala
index abbee5a9..4845bcff 100644
--- a/benchmark/src/main/scala/firrtl/benchmark/hot/TransformBenchmark.scala
+++ b/benchmark/src/main/scala/firrtl/benchmark/hot/TransformBenchmark.scala
@@ -1,5 +1,4 @@
-// See LICENSE for license details.
-
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package benchmark
package hot
diff --git a/benchmark/src/main/scala/firrtl/benchmark/util/package.scala b/benchmark/src/main/scala/firrtl/benchmark/util/package.scala
index 2923d8b5..d69ec483 100644
--- a/benchmark/src/main/scala/firrtl/benchmark/util/package.scala
+++ b/benchmark/src/main/scala/firrtl/benchmark/util/package.scala
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package benchmark
diff --git a/build.sbt b/build.sbt
index f329808a..a371aa1b 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
enablePlugins(SiteScaladocPlugin)
diff --git a/build.sc b/build.sc
index 5b17abbb..c67306c5 100644
--- a/build.sc
+++ b/build.sc
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
import mill._
import mill.scalalib._
import mill.scalalib.publish._
diff --git a/fuzzer/src/main/scala/firrtl/ExprGen.scala b/fuzzer/src/main/scala/firrtl/ExprGen.scala
index fe85799a..cdb4cedf 100644
--- a/fuzzer/src/main/scala/firrtl/ExprGen.scala
+++ b/fuzzer/src/main/scala/firrtl/ExprGen.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.fuzzer
import firrtl.ir._
diff --git a/fuzzer/src/main/scala/firrtl/ExprGenParams.scala b/fuzzer/src/main/scala/firrtl/ExprGenParams.scala
index 4c11b860..0febc47c 100644
--- a/fuzzer/src/main/scala/firrtl/ExprGenParams.scala
+++ b/fuzzer/src/main/scala/firrtl/ExprGenParams.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.fuzzer
import com.pholser.junit.quickcheck.generator.{Generator, GenerationStatus}
diff --git a/fuzzer/src/main/scala/firrtl/ExprState.scala b/fuzzer/src/main/scala/firrtl/ExprState.scala
index f1a2f0d1..b2fd40ab 100644
--- a/fuzzer/src/main/scala/firrtl/ExprState.scala
+++ b/fuzzer/src/main/scala/firrtl/ExprState.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.fuzzer
import firrtl.ir.{Expression, Reference, Type}
diff --git a/fuzzer/src/main/scala/firrtl/FirrtlCompileTests.scala b/fuzzer/src/main/scala/firrtl/FirrtlCompileTests.scala
index 3091e4d6..213fc8e8 100644
--- a/fuzzer/src/main/scala/firrtl/FirrtlCompileTests.scala
+++ b/fuzzer/src/main/scala/firrtl/FirrtlCompileTests.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.fuzzer
import com.pholser.junit.quickcheck.From
diff --git a/fuzzer/src/main/scala/firrtl/FirrtlEquivalenceTest.scala b/fuzzer/src/main/scala/firrtl/FirrtlEquivalenceTest.scala
index 822744c2..23c62758 100644
--- a/fuzzer/src/main/scala/firrtl/FirrtlEquivalenceTest.scala
+++ b/fuzzer/src/main/scala/firrtl/FirrtlEquivalenceTest.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.fuzzer
import com.pholser.junit.quickcheck.From
diff --git a/fuzzer/src/main/scala/firrtl/GenMonad.scala b/fuzzer/src/main/scala/firrtl/GenMonad.scala
index 36627f62..c45260be 100644
--- a/fuzzer/src/main/scala/firrtl/GenMonad.scala
+++ b/fuzzer/src/main/scala/firrtl/GenMonad.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.fuzzer
import scala.language.higherKinds
diff --git a/fuzzer/src/main/scala/firrtl/StateGen.scala b/fuzzer/src/main/scala/firrtl/StateGen.scala
index 67a02eed..20cd479c 100644
--- a/fuzzer/src/main/scala/firrtl/StateGen.scala
+++ b/fuzzer/src/main/scala/firrtl/StateGen.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.fuzzer
import scala.language.higherKinds
diff --git a/fuzzer/src/test/scala/Example.scala b/fuzzer/src/test/scala/Example.scala
index 9779f7b0..89fd19cf 100644
--- a/fuzzer/src/test/scala/Example.scala
+++ b/fuzzer/src/test/scala/Example.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.fuzzer
import org.scalacheck.{Gen, Prop, Properties}
diff --git a/fuzzer/src/test/scala/GenMonad.scala b/fuzzer/src/test/scala/GenMonad.scala
index 0eaadd13..4bd4f5ec 100644
--- a/fuzzer/src/test/scala/GenMonad.scala
+++ b/fuzzer/src/test/scala/GenMonad.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.fuzzer
import org.scalacheck.{Gen, Properties}
diff --git a/jqf/src/main/scala/JQFFuzz.scala b/jqf/src/main/scala/JQFFuzz.scala
index 74af236a..970abdf7 100644
--- a/jqf/src/main/scala/JQFFuzz.scala
+++ b/jqf/src/main/scala/JQFFuzz.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.jqf
import java.io.{File, FileNotFoundException, IOException}
diff --git a/jqf/src/main/scala/JQFRepro.scala b/jqf/src/main/scala/JQFRepro.scala
index 6497e05c..b676db80 100644
--- a/jqf/src/main/scala/JQFRepro.scala
+++ b/jqf/src/main/scala/JQFRepro.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.jqf
import collection.JavaConverters._
diff --git a/regress/AddNot.fir b/regress/AddNot.fir
index 38c72a16..e238a020 100644
--- a/regress/AddNot.fir
+++ b/regress/AddNot.fir
@@ -1,3 +1,4 @@
+; SPDX-License-Identifier: Apache-2.0
circuit AddNot:
module AddNot:
input a: UInt<8>
diff --git a/regress/FPU.fir b/regress/FPU.fir
index 75045296..4da41af1 100644
--- a/regress/FPU.fir
+++ b/regress/FPU.fir
@@ -1,3 +1,4 @@
+; SPDX-License-Identifier: Apache-2.0
circuit FPU :
module FPU :
input clock : Clock
diff --git a/regress/HwachaSequencer.fir b/regress/HwachaSequencer.fir
index b217c810..d43377da 100644
--- a/regress/HwachaSequencer.fir
+++ b/regress/HwachaSequencer.fir
@@ -1,4 +1,5 @@
-circuit HwachaSequencer :
+; SPDX-License-Identifier: Apache-2.0
+circuit HwachaSequencer :
module HwachaSequencer :
input clock : Clock
input reset : UInt<1>
diff --git a/regress/ICache.fir b/regress/ICache.fir
index d848982e..7c572478 100644
--- a/regress/ICache.fir
+++ b/regress/ICache.fir
@@ -1,3 +1,4 @@
+; SPDX-License-Identifier: Apache-2.0
circuit ICache :
module ICache :
input clock : Clock
diff --git a/regress/Ops.fir b/regress/Ops.fir
index 51cffad5..a5b8018d 100644
--- a/regress/Ops.fir
+++ b/regress/Ops.fir
@@ -1,3 +1,4 @@
+; SPDX-License-Identifier: Apache-2.0
circuit Ops:
module Ops:
input sel: UInt<4>
diff --git a/regress/Rob.fir b/regress/Rob.fir
index 473de212..b1aabfc7 100644
--- a/regress/Rob.fir
+++ b/regress/Rob.fir
@@ -1,3 +1,4 @@
+; SPDX-License-Identifier: Apache-2.0
circuit Rob :
module Rob :
input clk : Clock
diff --git a/regress/RocketCore.fir b/regress/RocketCore.fir
index e86b0877..a6482612 100644
--- a/regress/RocketCore.fir
+++ b/regress/RocketCore.fir
@@ -1,3 +1,4 @@
+; SPDX-License-Identifier: Apache-2.0
circuit RocketCore :
module RocketCore :
input clock : Clock
diff --git a/scripts/formal_equiv.sh b/scripts/formal_equiv.sh
index b595ff9a..2304b74e 100755
--- a/scripts/formal_equiv.sh
+++ b/scripts/formal_equiv.sh
@@ -1,4 +1,7 @@
#!/usr/bin/env bash
+
+# SPDX-License-Identifier: Apache-2.0
+
# This script is for formally comparing the Verilog emitted by different git revisions
# There must be two valid git revision arguments
set -e
diff --git a/scripts/parse_firrtl_transform_log.py b/scripts/parse_firrtl_transform_log.py
index 16ea77cd..c5bbd361 100755
--- a/scripts/parse_firrtl_transform_log.py
+++ b/scripts/parse_firrtl_transform_log.py
@@ -1,5 +1,7 @@
#!/usr/bin/env python3
+# SPDX-License-Identifier: Apache-2.0
+
import sys
import os
import re
diff --git a/spec/spec.tex b/spec/spec.tex
index e20a8b22..41de5d5e 100644
--- a/spec/spec.tex
+++ b/spec/spec.tex
@@ -1,3 +1,4 @@
+% SPDX-License-Identifier: Apache-2.0
%Useful Macros
\newcommand{\id}{\text{id }}
diff --git a/src/LICENSE.txt b/src/LICENSE.txt
deleted file mode 100644
index 89fd3d00..00000000
--- a/src/LICENSE.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-FIRRTL licence terms
-
-Copyright (c) 2014 - 2019 The Regents of the University of
-California (Regents). All Rights Reserved. Redistribution and use in
-source and binary forms, with or without modification, are permitted
-provided that the following conditions are met:
- * Redistributions of source code must retain the above
- copyright notice, this list of conditions and the following
- two paragraphs of disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- two paragraphs of disclaimer in the documentation and/or other materials
- provided with the distribution.
- * Neither the name of the Regents nor the names of its contributors
- may be used to endorse or promote products derived from this
- software without specific prior written permission.
-IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
-SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
-ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
-REGENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE. THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF
-ANY, PROVIDED HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO OBLIGATION
-TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
diff --git a/src/main/antlr4/FIRRTL.g4 b/src/main/antlr4/FIRRTL.g4
index f0ea5b10..54ad8d0e 100644
--- a/src/main/antlr4/FIRRTL.g4
+++ b/src/main/antlr4/FIRRTL.g4
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
grammar FIRRTL;
diff --git a/src/main/proto/firrtl.proto b/src/main/proto/firrtl.proto
index b4c8f36d..e8451d7a 100644
--- a/src/main/proto/firrtl.proto
+++ b/src/main/proto/firrtl.proto
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
syntax = "proto3";
package firrtl;
diff --git a/src/main/scala/firrtl/AddDescriptionNodes.scala b/src/main/scala/firrtl/AddDescriptionNodes.scala
index 7adb28af..9424d4a7 100644
--- a/src/main/scala/firrtl/AddDescriptionNodes.scala
+++ b/src/main/scala/firrtl/AddDescriptionNodes.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/Compiler.scala b/src/main/scala/firrtl/Compiler.scala
index ec09cace..fc852208 100644
--- a/src/main/scala/firrtl/Compiler.scala
+++ b/src/main/scala/firrtl/Compiler.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/DependencyAPIMigration.scala b/src/main/scala/firrtl/DependencyAPIMigration.scala
index dc5957f2..b62b99c5 100644
--- a/src/main/scala/firrtl/DependencyAPIMigration.scala
+++ b/src/main/scala/firrtl/DependencyAPIMigration.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/Driver.scala b/src/main/scala/firrtl/Driver.scala
index 28eb2d6a..52ea122e 100644
--- a/src/main/scala/firrtl/Driver.scala
+++ b/src/main/scala/firrtl/Driver.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/EmissionOption.scala b/src/main/scala/firrtl/EmissionOption.scala
index d097e14a..074d9c28 100644
--- a/src/main/scala/firrtl/EmissionOption.scala
+++ b/src/main/scala/firrtl/EmissionOption.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/Emitter.scala b/src/main/scala/firrtl/Emitter.scala
index 397956d8..c0be071e 100644
--- a/src/main/scala/firrtl/Emitter.scala
+++ b/src/main/scala/firrtl/Emitter.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/ExecutionOptionsManager.scala b/src/main/scala/firrtl/ExecutionOptionsManager.scala
index e673a5af..8602b984 100644
--- a/src/main/scala/firrtl/ExecutionOptionsManager.scala
+++ b/src/main/scala/firrtl/ExecutionOptionsManager.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/FileUtils.scala b/src/main/scala/firrtl/FileUtils.scala
index 3db86b7c..ff997168 100644
--- a/src/main/scala/firrtl/FileUtils.scala
+++ b/src/main/scala/firrtl/FileUtils.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/FirrtlException.scala b/src/main/scala/firrtl/FirrtlException.scala
index 6f98fda3..91d5350e 100644
--- a/src/main/scala/firrtl/FirrtlException.scala
+++ b/src/main/scala/firrtl/FirrtlException.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/Implicits.scala b/src/main/scala/firrtl/Implicits.scala
index fd732917..62ddf03a 100644
--- a/src/main/scala/firrtl/Implicits.scala
+++ b/src/main/scala/firrtl/Implicits.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/LexerHelper.scala b/src/main/scala/firrtl/LexerHelper.scala
index 3ddfc5b9..e1327cd7 100644
--- a/src/main/scala/firrtl/LexerHelper.scala
+++ b/src/main/scala/firrtl/LexerHelper.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/LoweringCompilers.scala b/src/main/scala/firrtl/LoweringCompilers.scala
index 90881a57..e27cafb7 100644
--- a/src/main/scala/firrtl/LoweringCompilers.scala
+++ b/src/main/scala/firrtl/LoweringCompilers.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/Mappers.scala b/src/main/scala/firrtl/Mappers.scala
index e9a698ae..55adf29f 100644
--- a/src/main/scala/firrtl/Mappers.scala
+++ b/src/main/scala/firrtl/Mappers.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/Namespace.scala b/src/main/scala/firrtl/Namespace.scala
index c036b5f7..25f4a805 100644
--- a/src/main/scala/firrtl/Namespace.scala
+++ b/src/main/scala/firrtl/Namespace.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/Parser.scala b/src/main/scala/firrtl/Parser.scala
index 40eaa88f..2d2bd350 100644
--- a/src/main/scala/firrtl/Parser.scala
+++ b/src/main/scala/firrtl/Parser.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/PrimOps.scala b/src/main/scala/firrtl/PrimOps.scala
index baa8638a..f6ff5694 100644
--- a/src/main/scala/firrtl/PrimOps.scala
+++ b/src/main/scala/firrtl/PrimOps.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/RenameMap.scala b/src/main/scala/firrtl/RenameMap.scala
index d85998b5..c32823b2 100644
--- a/src/main/scala/firrtl/RenameMap.scala
+++ b/src/main/scala/firrtl/RenameMap.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/Utils.scala b/src/main/scala/firrtl/Utils.scala
index e8a00518..ac987456 100644
--- a/src/main/scala/firrtl/Utils.scala
+++ b/src/main/scala/firrtl/Utils.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/Visitor.scala b/src/main/scala/firrtl/Visitor.scala
index b14c39c7..7ba8a0bf 100644
--- a/src/main/scala/firrtl/Visitor.scala
+++ b/src/main/scala/firrtl/Visitor.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/WIR.scala b/src/main/scala/firrtl/WIR.scala
index 4153fc74..a0b85007 100644
--- a/src/main/scala/firrtl/WIR.scala
+++ b/src/main/scala/firrtl/WIR.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/analyses/CircuitGraph.scala b/src/main/scala/firrtl/analyses/CircuitGraph.scala
index a1fb0f19..e13cadad 100644
--- a/src/main/scala/firrtl/analyses/CircuitGraph.scala
+++ b/src/main/scala/firrtl/analyses/CircuitGraph.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.analyses
diff --git a/src/main/scala/firrtl/analyses/ConnectionGraph.scala b/src/main/scala/firrtl/analyses/ConnectionGraph.scala
index f98cf14c..e5e3bde2 100644
--- a/src/main/scala/firrtl/analyses/ConnectionGraph.scala
+++ b/src/main/scala/firrtl/analyses/ConnectionGraph.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.analyses
diff --git a/src/main/scala/firrtl/analyses/GetNamespace.scala b/src/main/scala/firrtl/analyses/GetNamespace.scala
index ad4dab43..dddfc338 100644
--- a/src/main/scala/firrtl/analyses/GetNamespace.scala
+++ b/src/main/scala/firrtl/analyses/GetNamespace.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.analyses
diff --git a/src/main/scala/firrtl/analyses/IRLookup.scala b/src/main/scala/firrtl/analyses/IRLookup.scala
index b8528a95..e403c149 100644
--- a/src/main/scala/firrtl/analyses/IRLookup.scala
+++ b/src/main/scala/firrtl/analyses/IRLookup.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.analyses
diff --git a/src/main/scala/firrtl/analyses/InstanceGraph.scala b/src/main/scala/firrtl/analyses/InstanceGraph.scala
index 4aab9a3a..0017ff8b 100644
--- a/src/main/scala/firrtl/analyses/InstanceGraph.scala
+++ b/src/main/scala/firrtl/analyses/InstanceGraph.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.analyses
diff --git a/src/main/scala/firrtl/analyses/InstanceKeyGraph.scala b/src/main/scala/firrtl/analyses/InstanceKeyGraph.scala
index 5354888d..06c0b377 100644
--- a/src/main/scala/firrtl/analyses/InstanceKeyGraph.scala
+++ b/src/main/scala/firrtl/analyses/InstanceKeyGraph.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.analyses
diff --git a/src/main/scala/firrtl/analyses/NodeCount.scala b/src/main/scala/firrtl/analyses/NodeCount.scala
index 63571503..486c3be8 100644
--- a/src/main/scala/firrtl/analyses/NodeCount.scala
+++ b/src/main/scala/firrtl/analyses/NodeCount.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package analyses
diff --git a/src/main/scala/firrtl/analyses/SymbolTable.scala b/src/main/scala/firrtl/analyses/SymbolTable.scala
index 36549160..3b304bc1 100644
--- a/src/main/scala/firrtl/analyses/SymbolTable.scala
+++ b/src/main/scala/firrtl/analyses/SymbolTable.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.analyses
diff --git a/src/main/scala/firrtl/annotations/Annotation.scala b/src/main/scala/firrtl/annotations/Annotation.scala
index 16f85e67..bea88e51 100644
--- a/src/main/scala/firrtl/annotations/Annotation.scala
+++ b/src/main/scala/firrtl/annotations/Annotation.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package annotations
diff --git a/src/main/scala/firrtl/annotations/AnnotationUtils.scala b/src/main/scala/firrtl/annotations/AnnotationUtils.scala
index eccb4e13..10894b26 100644
--- a/src/main/scala/firrtl/annotations/AnnotationUtils.scala
+++ b/src/main/scala/firrtl/annotations/AnnotationUtils.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package annotations
diff --git a/src/main/scala/firrtl/annotations/JsonProtocol.scala b/src/main/scala/firrtl/annotations/JsonProtocol.scala
index 144cd894..c284c788 100644
--- a/src/main/scala/firrtl/annotations/JsonProtocol.scala
+++ b/src/main/scala/firrtl/annotations/JsonProtocol.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package annotations
diff --git a/src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala b/src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala
index 043c1b3b..f3300f7c 100644
--- a/src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala
+++ b/src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.annotations
diff --git a/src/main/scala/firrtl/annotations/MemoryInitAnnotation.scala b/src/main/scala/firrtl/annotations/MemoryInitAnnotation.scala
index 7cefdef8..44656e0d 100644
--- a/src/main/scala/firrtl/annotations/MemoryInitAnnotation.scala
+++ b/src/main/scala/firrtl/annotations/MemoryInitAnnotation.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.annotations
diff --git a/src/main/scala/firrtl/annotations/PresetAnnotations.scala b/src/main/scala/firrtl/annotations/PresetAnnotations.scala
index d6066aa7..32f24f13 100644
--- a/src/main/scala/firrtl/annotations/PresetAnnotations.scala
+++ b/src/main/scala/firrtl/annotations/PresetAnnotations.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package annotations
diff --git a/src/main/scala/firrtl/annotations/Target.scala b/src/main/scala/firrtl/annotations/Target.scala
index afde84dc..137d070e 100644
--- a/src/main/scala/firrtl/annotations/Target.scala
+++ b/src/main/scala/firrtl/annotations/Target.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package annotations
diff --git a/src/main/scala/firrtl/annotations/TargetToken.scala b/src/main/scala/firrtl/annotations/TargetToken.scala
index a4a98eed..190e85fa 100644
--- a/src/main/scala/firrtl/annotations/TargetToken.scala
+++ b/src/main/scala/firrtl/annotations/TargetToken.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.annotations
diff --git a/src/main/scala/firrtl/annotations/analysis/DuplicationHelper.scala b/src/main/scala/firrtl/annotations/analysis/DuplicationHelper.scala
index d4bac8ba..c16a2670 100644
--- a/src/main/scala/firrtl/annotations/analysis/DuplicationHelper.scala
+++ b/src/main/scala/firrtl/annotations/analysis/DuplicationHelper.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.annotations.analysis
diff --git a/src/main/scala/firrtl/annotations/transforms/CleanupNamedTargets.scala b/src/main/scala/firrtl/annotations/transforms/CleanupNamedTargets.scala
index 20304378..28f50993 100644
--- a/src/main/scala/firrtl/annotations/transforms/CleanupNamedTargets.scala
+++ b/src/main/scala/firrtl/annotations/transforms/CleanupNamedTargets.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.annotations.transforms
diff --git a/src/main/scala/firrtl/annotations/transforms/EliminateTargetPaths.scala b/src/main/scala/firrtl/annotations/transforms/EliminateTargetPaths.scala
index 596a344f..b63dd13e 100644
--- a/src/main/scala/firrtl/annotations/transforms/EliminateTargetPaths.scala
+++ b/src/main/scala/firrtl/annotations/transforms/EliminateTargetPaths.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.annotations.transforms
diff --git a/src/main/scala/firrtl/backends/experimental/smt/Btor2Serializer.scala b/src/main/scala/firrtl/backends/experimental/smt/Btor2Serializer.scala
index 66690f56..4cd5c9f7 100644
--- a/src/main/scala/firrtl/backends/experimental/smt/Btor2Serializer.scala
+++ b/src/main/scala/firrtl/backends/experimental/smt/Btor2Serializer.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
// Author: Kevin Laeufer <laeufer@cs.berkeley.edu>
package firrtl.backends.experimental.smt
diff --git a/src/main/scala/firrtl/backends/experimental/smt/FirrtlExpressionSemantics.scala b/src/main/scala/firrtl/backends/experimental/smt/FirrtlExpressionSemantics.scala
index efa89687..d85fbfe5 100644
--- a/src/main/scala/firrtl/backends/experimental/smt/FirrtlExpressionSemantics.scala
+++ b/src/main/scala/firrtl/backends/experimental/smt/FirrtlExpressionSemantics.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
// Author: Kevin Laeufer <laeufer@cs.berkeley.edu>
package firrtl.backends.experimental.smt
diff --git a/src/main/scala/firrtl/backends/experimental/smt/FirrtlToTransitionSystem.scala b/src/main/scala/firrtl/backends/experimental/smt/FirrtlToTransitionSystem.scala
index 75f6a326..41d3c6f0 100644
--- a/src/main/scala/firrtl/backends/experimental/smt/FirrtlToTransitionSystem.scala
+++ b/src/main/scala/firrtl/backends/experimental/smt/FirrtlToTransitionSystem.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
// Author: Kevin Laeufer <laeufer@cs.berkeley.edu>
package firrtl.backends.experimental.smt
diff --git a/src/main/scala/firrtl/backends/experimental/smt/SMTEmitter.scala b/src/main/scala/firrtl/backends/experimental/smt/SMTEmitter.scala
index 1c7ea42f..ca472578 100644
--- a/src/main/scala/firrtl/backends/experimental/smt/SMTEmitter.scala
+++ b/src/main/scala/firrtl/backends/experimental/smt/SMTEmitter.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
// Author: Kevin Laeufer <laeufer@cs.berkeley.edu>
package firrtl.backends.experimental.smt
diff --git a/src/main/scala/firrtl/backends/experimental/smt/SMTExpr.scala b/src/main/scala/firrtl/backends/experimental/smt/SMTExpr.scala
index ebb9e309..63692006 100644
--- a/src/main/scala/firrtl/backends/experimental/smt/SMTExpr.scala
+++ b/src/main/scala/firrtl/backends/experimental/smt/SMTExpr.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
// Author: Kevin Laeufer <laeufer@cs.berkeley.edu>
// Inspired by the uclid5 SMT library (https://github.com/uclid-org/uclid).
// And the btor2 documentation (BTOR2 , BtorMC and Boolector 3.0 by Niemetz et.al.)
diff --git a/src/main/scala/firrtl/backends/experimental/smt/SMTExprVisitor.scala b/src/main/scala/firrtl/backends/experimental/smt/SMTExprVisitor.scala
index defc787c..19f1de84 100644
--- a/src/main/scala/firrtl/backends/experimental/smt/SMTExprVisitor.scala
+++ b/src/main/scala/firrtl/backends/experimental/smt/SMTExprVisitor.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
// Author: Kevin Laeufer <laeufer@cs.berkeley.edu>
package firrtl.backends.experimental.smt
diff --git a/src/main/scala/firrtl/backends/experimental/smt/SMTLibSerializer.scala b/src/main/scala/firrtl/backends/experimental/smt/SMTLibSerializer.scala
index bd5e4d8c..7bc0a077 100644
--- a/src/main/scala/firrtl/backends/experimental/smt/SMTLibSerializer.scala
+++ b/src/main/scala/firrtl/backends/experimental/smt/SMTLibSerializer.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
// Author: Kevin Laeufer <laeufer@cs.berkeley.edu>
package firrtl.backends.experimental.smt
diff --git a/src/main/scala/firrtl/backends/experimental/smt/SMTTransitionSystemEncoder.scala b/src/main/scala/firrtl/backends/experimental/smt/SMTTransitionSystemEncoder.scala
index 4c60a1b0..f6d9a26f 100644
--- a/src/main/scala/firrtl/backends/experimental/smt/SMTTransitionSystemEncoder.scala
+++ b/src/main/scala/firrtl/backends/experimental/smt/SMTTransitionSystemEncoder.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
// Author: Kevin Laeufer <laeufer@cs.berkeley.edu>
package firrtl.backends.experimental.smt
diff --git a/src/main/scala/firrtl/backends/experimental/smt/StutteringClockTransform.scala b/src/main/scala/firrtl/backends/experimental/smt/StutteringClockTransform.scala
index 95db95ef..eac9f00a 100644
--- a/src/main/scala/firrtl/backends/experimental/smt/StutteringClockTransform.scala
+++ b/src/main/scala/firrtl/backends/experimental/smt/StutteringClockTransform.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
// Author: Kevin Laeufer <laeufer@cs.berkeley.edu>
package firrtl.backends.experimental.smt
diff --git a/src/main/scala/firrtl/checks/CheckResets.scala b/src/main/scala/firrtl/checks/CheckResets.scala
index a17e3e7b..ae300d1f 100644
--- a/src/main/scala/firrtl/checks/CheckResets.scala
+++ b/src/main/scala/firrtl/checks/CheckResets.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.checks
diff --git a/src/main/scala/firrtl/constraint/Constraint.scala b/src/main/scala/firrtl/constraint/Constraint.scala
index 1a3bc21a..87d15737 100644
--- a/src/main/scala/firrtl/constraint/Constraint.scala
+++ b/src/main/scala/firrtl/constraint/Constraint.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/constraint/ConstraintSolver.scala b/src/main/scala/firrtl/constraint/ConstraintSolver.scala
index 64271ae1..051a9653 100644
--- a/src/main/scala/firrtl/constraint/ConstraintSolver.scala
+++ b/src/main/scala/firrtl/constraint/ConstraintSolver.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/constraint/Inequality.scala b/src/main/scala/firrtl/constraint/Inequality.scala
index a01b7c85..91c989d5 100644
--- a/src/main/scala/firrtl/constraint/Inequality.scala
+++ b/src/main/scala/firrtl/constraint/Inequality.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/constraint/IsAdd.scala b/src/main/scala/firrtl/constraint/IsAdd.scala
index 9305db89..db2e0f15 100644
--- a/src/main/scala/firrtl/constraint/IsAdd.scala
+++ b/src/main/scala/firrtl/constraint/IsAdd.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/constraint/IsFloor.scala b/src/main/scala/firrtl/constraint/IsFloor.scala
index 60f049bb..48173b55 100644
--- a/src/main/scala/firrtl/constraint/IsFloor.scala
+++ b/src/main/scala/firrtl/constraint/IsFloor.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/constraint/IsKnown.scala b/src/main/scala/firrtl/constraint/IsKnown.scala
index 07e0531c..b11adc3a 100644
--- a/src/main/scala/firrtl/constraint/IsKnown.scala
+++ b/src/main/scala/firrtl/constraint/IsKnown.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/constraint/IsMax.scala b/src/main/scala/firrtl/constraint/IsMax.scala
index 0ba20c08..6c5372fa 100644
--- a/src/main/scala/firrtl/constraint/IsMax.scala
+++ b/src/main/scala/firrtl/constraint/IsMax.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/constraint/IsMin.scala b/src/main/scala/firrtl/constraint/IsMin.scala
index 2c5db14d..744b3561 100644
--- a/src/main/scala/firrtl/constraint/IsMin.scala
+++ b/src/main/scala/firrtl/constraint/IsMin.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/constraint/IsMul.scala b/src/main/scala/firrtl/constraint/IsMul.scala
index a4acd74c..da63d0f9 100644
--- a/src/main/scala/firrtl/constraint/IsMul.scala
+++ b/src/main/scala/firrtl/constraint/IsMul.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/constraint/IsNeg.scala b/src/main/scala/firrtl/constraint/IsNeg.scala
index 574cfd47..e2e590ae 100644
--- a/src/main/scala/firrtl/constraint/IsNeg.scala
+++ b/src/main/scala/firrtl/constraint/IsNeg.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/constraint/IsPow.scala b/src/main/scala/firrtl/constraint/IsPow.scala
index 2a1fb14a..92ca649f 100644
--- a/src/main/scala/firrtl/constraint/IsPow.scala
+++ b/src/main/scala/firrtl/constraint/IsPow.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/constraint/IsVar.scala b/src/main/scala/firrtl/constraint/IsVar.scala
index 18fb53b2..1675a6fc 100644
--- a/src/main/scala/firrtl/constraint/IsVar.scala
+++ b/src/main/scala/firrtl/constraint/IsVar.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.constraint
diff --git a/src/main/scala/firrtl/features/LetterCaseTransform.scala b/src/main/scala/firrtl/features/LetterCaseTransform.scala
index 8610d7b1..6d0c2b30 100644
--- a/src/main/scala/firrtl/features/LetterCaseTransform.scala
+++ b/src/main/scala/firrtl/features/LetterCaseTransform.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.features
diff --git a/src/main/scala/firrtl/graph/DiGraph.scala b/src/main/scala/firrtl/graph/DiGraph.scala
index 7720028c..b99c6961 100644
--- a/src/main/scala/firrtl/graph/DiGraph.scala
+++ b/src/main/scala/firrtl/graph/DiGraph.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.graph
diff --git a/src/main/scala/firrtl/graph/EdgeData.scala b/src/main/scala/firrtl/graph/EdgeData.scala
index 6a63c3b9..92ff3405 100644
--- a/src/main/scala/firrtl/graph/EdgeData.scala
+++ b/src/main/scala/firrtl/graph/EdgeData.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.graph
diff --git a/src/main/scala/firrtl/graph/EulerTour.scala b/src/main/scala/firrtl/graph/EulerTour.scala
index 5e075ae2..5268f91c 100644
--- a/src/main/scala/firrtl/graph/EulerTour.scala
+++ b/src/main/scala/firrtl/graph/EulerTour.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.graph
diff --git a/src/main/scala/firrtl/graph/RenderDiGraph.scala b/src/main/scala/firrtl/graph/RenderDiGraph.scala
index 45be3a8f..d726c8b4 100644
--- a/src/main/scala/firrtl/graph/RenderDiGraph.scala
+++ b/src/main/scala/firrtl/graph/RenderDiGraph.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.graph
diff --git a/src/main/scala/firrtl/ir/IR.scala b/src/main/scala/firrtl/ir/IR.scala
index 2536a77e..a26a2a94 100644
--- a/src/main/scala/firrtl/ir/IR.scala
+++ b/src/main/scala/firrtl/ir/IR.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package ir
diff --git a/src/main/scala/firrtl/ir/Serializer.scala b/src/main/scala/firrtl/ir/Serializer.scala
index 08ea1445..4a1bfbed 100644
--- a/src/main/scala/firrtl/ir/Serializer.scala
+++ b/src/main/scala/firrtl/ir/Serializer.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.ir
diff --git a/src/main/scala/firrtl/ir/StructuralHash.scala b/src/main/scala/firrtl/ir/StructuralHash.scala
index f1ed91f3..20c63e4e 100644
--- a/src/main/scala/firrtl/ir/StructuralHash.scala
+++ b/src/main/scala/firrtl/ir/StructuralHash.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.ir
import firrtl.PrimOps
diff --git a/src/main/scala/firrtl/options/DependencyManager.scala b/src/main/scala/firrtl/options/DependencyManager.scala
index 561e32ab..39998ed7 100644
--- a/src/main/scala/firrtl/options/DependencyManager.scala
+++ b/src/main/scala/firrtl/options/DependencyManager.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/Exceptions.scala b/src/main/scala/firrtl/options/Exceptions.scala
index 3773e156..1b183d10 100644
--- a/src/main/scala/firrtl/options/Exceptions.scala
+++ b/src/main/scala/firrtl/options/Exceptions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/ExitCodes.scala b/src/main/scala/firrtl/options/ExitCodes.scala
index 94e525de..79915e93 100644
--- a/src/main/scala/firrtl/options/ExitCodes.scala
+++ b/src/main/scala/firrtl/options/ExitCodes.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/OptionParser.scala b/src/main/scala/firrtl/options/OptionParser.scala
index e7ea68bf..79163aea 100644
--- a/src/main/scala/firrtl/options/OptionParser.scala
+++ b/src/main/scala/firrtl/options/OptionParser.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/OptionsView.scala b/src/main/scala/firrtl/options/OptionsView.scala
index 4235b660..01d2a4d4 100644
--- a/src/main/scala/firrtl/options/OptionsView.scala
+++ b/src/main/scala/firrtl/options/OptionsView.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/Phase.scala b/src/main/scala/firrtl/options/Phase.scala
index 6a3f4a8c..b836c386 100644
--- a/src/main/scala/firrtl/options/Phase.scala
+++ b/src/main/scala/firrtl/options/Phase.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/Registration.scala b/src/main/scala/firrtl/options/Registration.scala
index 55772c79..1ebccea4 100644
--- a/src/main/scala/firrtl/options/Registration.scala
+++ b/src/main/scala/firrtl/options/Registration.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/Shell.scala b/src/main/scala/firrtl/options/Shell.scala
index b0ead81f..f7b9371f 100644
--- a/src/main/scala/firrtl/options/Shell.scala
+++ b/src/main/scala/firrtl/options/Shell.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/Stage.scala b/src/main/scala/firrtl/options/Stage.scala
index 77c8133b..8e2c11d1 100644
--- a/src/main/scala/firrtl/options/Stage.scala
+++ b/src/main/scala/firrtl/options/Stage.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/StageAnnotations.scala b/src/main/scala/firrtl/options/StageAnnotations.scala
index e2835e16..2b12dd4e 100644
--- a/src/main/scala/firrtl/options/StageAnnotations.scala
+++ b/src/main/scala/firrtl/options/StageAnnotations.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/StageOptions.scala b/src/main/scala/firrtl/options/StageOptions.scala
index 6b9190a7..3899fee1 100644
--- a/src/main/scala/firrtl/options/StageOptions.scala
+++ b/src/main/scala/firrtl/options/StageOptions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/StageUtils.scala b/src/main/scala/firrtl/options/StageUtils.scala
index 2411da6e..c3867c7e 100644
--- a/src/main/scala/firrtl/options/StageUtils.scala
+++ b/src/main/scala/firrtl/options/StageUtils.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options
diff --git a/src/main/scala/firrtl/options/package.scala b/src/main/scala/firrtl/options/package.scala
index f87fb8a8..7e826039 100644
--- a/src/main/scala/firrtl/options/package.scala
+++ b/src/main/scala/firrtl/options/package.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/options/phases/AddDefaults.scala b/src/main/scala/firrtl/options/phases/AddDefaults.scala
index 0ef1832a..dcd5b031 100644
--- a/src/main/scala/firrtl/options/phases/AddDefaults.scala
+++ b/src/main/scala/firrtl/options/phases/AddDefaults.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options.phases
diff --git a/src/main/scala/firrtl/options/phases/Checks.scala b/src/main/scala/firrtl/options/phases/Checks.scala
index 024c13a9..64d81fb4 100644
--- a/src/main/scala/firrtl/options/phases/Checks.scala
+++ b/src/main/scala/firrtl/options/phases/Checks.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options.phases
diff --git a/src/main/scala/firrtl/options/phases/ConvertLegacyAnnotations.scala b/src/main/scala/firrtl/options/phases/ConvertLegacyAnnotations.scala
index d75acbb2..8a363b58 100644
--- a/src/main/scala/firrtl/options/phases/ConvertLegacyAnnotations.scala
+++ b/src/main/scala/firrtl/options/phases/ConvertLegacyAnnotations.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options.phases
diff --git a/src/main/scala/firrtl/options/phases/DeletedWrapper.scala b/src/main/scala/firrtl/options/phases/DeletedWrapper.scala
index 3661d836..fe2c6d78 100644
--- a/src/main/scala/firrtl/options/phases/DeletedWrapper.scala
+++ b/src/main/scala/firrtl/options/phases/DeletedWrapper.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options.phases
diff --git a/src/main/scala/firrtl/options/phases/GetIncludes.scala b/src/main/scala/firrtl/options/phases/GetIncludes.scala
index dd08e09b..15692e79 100644
--- a/src/main/scala/firrtl/options/phases/GetIncludes.scala
+++ b/src/main/scala/firrtl/options/phases/GetIncludes.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options.phases
diff --git a/src/main/scala/firrtl/options/phases/WriteOutputAnnotations.scala b/src/main/scala/firrtl/options/phases/WriteOutputAnnotations.scala
index e9a39c67..54f0951f 100644
--- a/src/main/scala/firrtl/options/phases/WriteOutputAnnotations.scala
+++ b/src/main/scala/firrtl/options/phases/WriteOutputAnnotations.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.options.phases
diff --git a/src/main/scala/firrtl/package.scala b/src/main/scala/firrtl/package.scala
index 11b2ab44..999b123d 100644
--- a/src/main/scala/firrtl/package.scala
+++ b/src/main/scala/firrtl/package.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
import firrtl.annotations.Annotation
diff --git a/src/main/scala/firrtl/passes/CInferMDir.scala b/src/main/scala/firrtl/passes/CInferMDir.scala
index 1fe8d57c..90f1c739 100644
--- a/src/main/scala/firrtl/passes/CInferMDir.scala
+++ b/src/main/scala/firrtl/passes/CInferMDir.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/CheckChirrtl.scala b/src/main/scala/firrtl/passes/CheckChirrtl.scala
index 97d614c1..472de13b 100644
--- a/src/main/scala/firrtl/passes/CheckChirrtl.scala
+++ b/src/main/scala/firrtl/passes/CheckChirrtl.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/CheckFlows.scala b/src/main/scala/firrtl/passes/CheckFlows.scala
index bc455a20..2816887f 100644
--- a/src/main/scala/firrtl/passes/CheckFlows.scala
+++ b/src/main/scala/firrtl/passes/CheckFlows.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/CheckHighForm.scala b/src/main/scala/firrtl/passes/CheckHighForm.scala
index 559c9060..5514741a 100644
--- a/src/main/scala/firrtl/passes/CheckHighForm.scala
+++ b/src/main/scala/firrtl/passes/CheckHighForm.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/CheckInitialization.scala b/src/main/scala/firrtl/passes/CheckInitialization.scala
index 96057831..896e21fc 100644
--- a/src/main/scala/firrtl/passes/CheckInitialization.scala
+++ b/src/main/scala/firrtl/passes/CheckInitialization.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/CheckTypes.scala b/src/main/scala/firrtl/passes/CheckTypes.scala
index 956c1134..bbccb353 100644
--- a/src/main/scala/firrtl/passes/CheckTypes.scala
+++ b/src/main/scala/firrtl/passes/CheckTypes.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/CheckWidths.scala b/src/main/scala/firrtl/passes/CheckWidths.scala
index f7fefa87..3f30e124 100644
--- a/src/main/scala/firrtl/passes/CheckWidths.scala
+++ b/src/main/scala/firrtl/passes/CheckWidths.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/CommonSubexpressionElimination.scala b/src/main/scala/firrtl/passes/CommonSubexpressionElimination.scala
index 55a9c53a..e70346d4 100644
--- a/src/main/scala/firrtl/passes/CommonSubexpressionElimination.scala
+++ b/src/main/scala/firrtl/passes/CommonSubexpressionElimination.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/ConvertFixedToSInt.scala b/src/main/scala/firrtl/passes/ConvertFixedToSInt.scala
index baf7d4d5..869cac3a 100644
--- a/src/main/scala/firrtl/passes/ConvertFixedToSInt.scala
+++ b/src/main/scala/firrtl/passes/ConvertFixedToSInt.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/ExpandConnects.scala b/src/main/scala/firrtl/passes/ExpandConnects.scala
index 4f849c5a..518068a1 100644
--- a/src/main/scala/firrtl/passes/ExpandConnects.scala
+++ b/src/main/scala/firrtl/passes/ExpandConnects.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.passes
import firrtl.Utils.{create_exps, flow, get_field, get_valid_points, times, to_flip, to_flow}
diff --git a/src/main/scala/firrtl/passes/ExpandWhens.scala b/src/main/scala/firrtl/passes/ExpandWhens.scala
index 14d5d3ef..7456d2ab 100644
--- a/src/main/scala/firrtl/passes/ExpandWhens.scala
+++ b/src/main/scala/firrtl/passes/ExpandWhens.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/InferBinaryPoints.scala b/src/main/scala/firrtl/passes/InferBinaryPoints.scala
index f393d8a5..8155462a 100644
--- a/src/main/scala/firrtl/passes/InferBinaryPoints.scala
+++ b/src/main/scala/firrtl/passes/InferBinaryPoints.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/InferTypes.scala b/src/main/scala/firrtl/passes/InferTypes.scala
index 4d14e7ff..bbc1ef6d 100644
--- a/src/main/scala/firrtl/passes/InferTypes.scala
+++ b/src/main/scala/firrtl/passes/InferTypes.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/InferWidths.scala b/src/main/scala/firrtl/passes/InferWidths.scala
index eae9690f..aa2095fa 100644
--- a/src/main/scala/firrtl/passes/InferWidths.scala
+++ b/src/main/scala/firrtl/passes/InferWidths.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/Inline.scala b/src/main/scala/firrtl/passes/Inline.scala
index 00cda739..4eba5d59 100644
--- a/src/main/scala/firrtl/passes/Inline.scala
+++ b/src/main/scala/firrtl/passes/Inline.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package passes
diff --git a/src/main/scala/firrtl/passes/Legalize.scala b/src/main/scala/firrtl/passes/Legalize.scala
index 5d59e075..ef0e1706 100644
--- a/src/main/scala/firrtl/passes/Legalize.scala
+++ b/src/main/scala/firrtl/passes/Legalize.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.passes
import firrtl.PrimOps._
diff --git a/src/main/scala/firrtl/passes/LowerTypes.scala b/src/main/scala/firrtl/passes/LowerTypes.scala
index ad608cec..592caf5d 100644
--- a/src/main/scala/firrtl/passes/LowerTypes.scala
+++ b/src/main/scala/firrtl/passes/LowerTypes.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/PadWidths.scala b/src/main/scala/firrtl/passes/PadWidths.scala
index 79560605..875e80ae 100644
--- a/src/main/scala/firrtl/passes/PadWidths.scala
+++ b/src/main/scala/firrtl/passes/PadWidths.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package passes
diff --git a/src/main/scala/firrtl/passes/Pass.scala b/src/main/scala/firrtl/passes/Pass.scala
index b5eac4ed..96b3b2ee 100644
--- a/src/main/scala/firrtl/passes/Pass.scala
+++ b/src/main/scala/firrtl/passes/Pass.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.passes
import firrtl.DependencyAPIMigration
diff --git a/src/main/scala/firrtl/passes/PullMuxes.scala b/src/main/scala/firrtl/passes/PullMuxes.scala
index 27543d63..ce9a8744 100644
--- a/src/main/scala/firrtl/passes/PullMuxes.scala
+++ b/src/main/scala/firrtl/passes/PullMuxes.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.passes
import firrtl.ir._
diff --git a/src/main/scala/firrtl/passes/RemoveAccesses.scala b/src/main/scala/firrtl/passes/RemoveAccesses.scala
index d8d32b26..f49af935 100644
--- a/src/main/scala/firrtl/passes/RemoveAccesses.scala
+++ b/src/main/scala/firrtl/passes/RemoveAccesses.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/RemoveCHIRRTL.scala b/src/main/scala/firrtl/passes/RemoveCHIRRTL.scala
index 624138ab..f8511820 100644
--- a/src/main/scala/firrtl/passes/RemoveCHIRRTL.scala
+++ b/src/main/scala/firrtl/passes/RemoveCHIRRTL.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/RemoveEmpty.scala b/src/main/scala/firrtl/passes/RemoveEmpty.scala
index eb25dcc4..a834b779 100644
--- a/src/main/scala/firrtl/passes/RemoveEmpty.scala
+++ b/src/main/scala/firrtl/passes/RemoveEmpty.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package passes
diff --git a/src/main/scala/firrtl/passes/RemoveIntervals.scala b/src/main/scala/firrtl/passes/RemoveIntervals.scala
index 657b4356..3daec671 100644
--- a/src/main/scala/firrtl/passes/RemoveIntervals.scala
+++ b/src/main/scala/firrtl/passes/RemoveIntervals.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/RemoveValidIf.scala b/src/main/scala/firrtl/passes/RemoveValidIf.scala
index 7e82b37b..bc8e8c1b 100644
--- a/src/main/scala/firrtl/passes/RemoveValidIf.scala
+++ b/src/main/scala/firrtl/passes/RemoveValidIf.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package passes
diff --git a/src/main/scala/firrtl/passes/ReplaceAccesses.scala b/src/main/scala/firrtl/passes/ReplaceAccesses.scala
index 4a3cd697..ab48c3db 100644
--- a/src/main/scala/firrtl/passes/ReplaceAccesses.scala
+++ b/src/main/scala/firrtl/passes/ReplaceAccesses.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/ResolveFlows.scala b/src/main/scala/firrtl/passes/ResolveFlows.scala
index 48b9479c..1af87c10 100644
--- a/src/main/scala/firrtl/passes/ResolveFlows.scala
+++ b/src/main/scala/firrtl/passes/ResolveFlows.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/ResolveKinds.scala b/src/main/scala/firrtl/passes/ResolveKinds.scala
index fcbac163..25be003d 100644
--- a/src/main/scala/firrtl/passes/ResolveKinds.scala
+++ b/src/main/scala/firrtl/passes/ResolveKinds.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/SplitExpressions.scala b/src/main/scala/firrtl/passes/SplitExpressions.scala
index a65f8921..1b4ed1cc 100644
--- a/src/main/scala/firrtl/passes/SplitExpressions.scala
+++ b/src/main/scala/firrtl/passes/SplitExpressions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package passes
diff --git a/src/main/scala/firrtl/passes/ToWorkingIR.scala b/src/main/scala/firrtl/passes/ToWorkingIR.scala
index 03faaf3c..2a814497 100644
--- a/src/main/scala/firrtl/passes/ToWorkingIR.scala
+++ b/src/main/scala/firrtl/passes/ToWorkingIR.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.passes
import firrtl.ir._
diff --git a/src/main/scala/firrtl/passes/TrimIntervals.scala b/src/main/scala/firrtl/passes/TrimIntervals.scala
index 0a05bd4e..99a97a38 100644
--- a/src/main/scala/firrtl/passes/TrimIntervals.scala
+++ b/src/main/scala/firrtl/passes/TrimIntervals.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/Uniquify.scala b/src/main/scala/firrtl/passes/Uniquify.scala
index 57ef11fa..81916282 100644
--- a/src/main/scala/firrtl/passes/Uniquify.scala
+++ b/src/main/scala/firrtl/passes/Uniquify.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/VerilogModulusCleanup.scala b/src/main/scala/firrtl/passes/VerilogModulusCleanup.scala
index 0b046a5f..baad2f4f 100644
--- a/src/main/scala/firrtl/passes/VerilogModulusCleanup.scala
+++ b/src/main/scala/firrtl/passes/VerilogModulusCleanup.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package passes
diff --git a/src/main/scala/firrtl/passes/VerilogPrep.scala b/src/main/scala/firrtl/passes/VerilogPrep.scala
index eeb34fa9..ed5db92e 100644
--- a/src/main/scala/firrtl/passes/VerilogPrep.scala
+++ b/src/main/scala/firrtl/passes/VerilogPrep.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.passes
import firrtl.Utils.{create_exps, flow, kind, toWrappedExpression}
diff --git a/src/main/scala/firrtl/passes/ZeroLengthVecs.scala b/src/main/scala/firrtl/passes/ZeroLengthVecs.scala
index e61780a4..0c8e0fa7 100644
--- a/src/main/scala/firrtl/passes/ZeroLengthVecs.scala
+++ b/src/main/scala/firrtl/passes/ZeroLengthVecs.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/ZeroWidth.scala b/src/main/scala/firrtl/passes/ZeroWidth.scala
index 82321f95..60439ec1 100644
--- a/src/main/scala/firrtl/passes/ZeroWidth.scala
+++ b/src/main/scala/firrtl/passes/ZeroWidth.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/clocklist/ClockList.scala b/src/main/scala/firrtl/passes/clocklist/ClockList.scala
index bfc03b51..f4ddbf21 100644
--- a/src/main/scala/firrtl/passes/clocklist/ClockList.scala
+++ b/src/main/scala/firrtl/passes/clocklist/ClockList.scala
@@ -1,4 +1,4 @@
-// See license file for details
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package clocklist
diff --git a/src/main/scala/firrtl/passes/clocklist/ClockListTransform.scala b/src/main/scala/firrtl/passes/clocklist/ClockListTransform.scala
index 468ba905..a4461118 100644
--- a/src/main/scala/firrtl/passes/clocklist/ClockListTransform.scala
+++ b/src/main/scala/firrtl/passes/clocklist/ClockListTransform.scala
@@ -1,4 +1,4 @@
-// See license file for details
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package clocklist
diff --git a/src/main/scala/firrtl/passes/clocklist/ClockListUtils.scala b/src/main/scala/firrtl/passes/clocklist/ClockListUtils.scala
index 00e07588..9e0a202b 100644
--- a/src/main/scala/firrtl/passes/clocklist/ClockListUtils.scala
+++ b/src/main/scala/firrtl/passes/clocklist/ClockListUtils.scala
@@ -1,4 +1,4 @@
-// See license file for details
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package clocklist
diff --git a/src/main/scala/firrtl/passes/clocklist/RemoveAllButClocks.scala b/src/main/scala/firrtl/passes/clocklist/RemoveAllButClocks.scala
index d72bc293..9ad653cf 100644
--- a/src/main/scala/firrtl/passes/clocklist/RemoveAllButClocks.scala
+++ b/src/main/scala/firrtl/passes/clocklist/RemoveAllButClocks.scala
@@ -1,4 +1,4 @@
-// See license file for details
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package clocklist
diff --git a/src/main/scala/firrtl/passes/memlib/DecorateMems.scala b/src/main/scala/firrtl/passes/memlib/DecorateMems.scala
index d237c36a..1cdecdfa 100644
--- a/src/main/scala/firrtl/passes/memlib/DecorateMems.scala
+++ b/src/main/scala/firrtl/passes/memlib/DecorateMems.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package passes
diff --git a/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala b/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala
index e290633e..0bb94452 100644
--- a/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala
+++ b/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/memlib/MemConf.scala b/src/main/scala/firrtl/passes/memlib/MemConf.scala
index 871a1093..637b57e0 100644
--- a/src/main/scala/firrtl/passes/memlib/MemConf.scala
+++ b/src/main/scala/firrtl/passes/memlib/MemConf.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/memlib/MemIR.scala b/src/main/scala/firrtl/passes/memlib/MemIR.scala
index c8cd3e8d..881aefed 100644
--- a/src/main/scala/firrtl/passes/memlib/MemIR.scala
+++ b/src/main/scala/firrtl/passes/memlib/MemIR.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/memlib/MemLibOptions.scala b/src/main/scala/firrtl/passes/memlib/MemLibOptions.scala
index 1db132f7..186ca78c 100644
--- a/src/main/scala/firrtl/passes/memlib/MemLibOptions.scala
+++ b/src/main/scala/firrtl/passes/memlib/MemLibOptions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes.memlib
diff --git a/src/main/scala/firrtl/passes/memlib/MemTransformUtils.scala b/src/main/scala/firrtl/passes/memlib/MemTransformUtils.scala
index f153fa2b..429ce19f 100644
--- a/src/main/scala/firrtl/passes/memlib/MemTransformUtils.scala
+++ b/src/main/scala/firrtl/passes/memlib/MemTransformUtils.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/memlib/MemUtils.scala b/src/main/scala/firrtl/passes/memlib/MemUtils.scala
index f325c0ba..a5bb26a0 100644
--- a/src/main/scala/firrtl/passes/memlib/MemUtils.scala
+++ b/src/main/scala/firrtl/passes/memlib/MemUtils.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
diff --git a/src/main/scala/firrtl/passes/memlib/RenameAnnotatedMemoryPorts.scala b/src/main/scala/firrtl/passes/memlib/RenameAnnotatedMemoryPorts.scala
index 30529119..43a46bf1 100644
--- a/src/main/scala/firrtl/passes/memlib/RenameAnnotatedMemoryPorts.scala
+++ b/src/main/scala/firrtl/passes/memlib/RenameAnnotatedMemoryPorts.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/memlib/ReplaceMemMacros.scala b/src/main/scala/firrtl/passes/memlib/ReplaceMemMacros.scala
index fc381e88..63ae0490 100644
--- a/src/main/scala/firrtl/passes/memlib/ReplaceMemMacros.scala
+++ b/src/main/scala/firrtl/passes/memlib/ReplaceMemMacros.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/memlib/ReplaceMemTransform.scala b/src/main/scala/firrtl/passes/memlib/ReplaceMemTransform.scala
index c88d6ba7..f0325e8e 100644
--- a/src/main/scala/firrtl/passes/memlib/ReplaceMemTransform.scala
+++ b/src/main/scala/firrtl/passes/memlib/ReplaceMemTransform.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/memlib/ResolveMaskGranularity.scala b/src/main/scala/firrtl/passes/memlib/ResolveMaskGranularity.scala
index 434c7602..7a1a57fb 100644
--- a/src/main/scala/firrtl/passes/memlib/ResolveMaskGranularity.scala
+++ b/src/main/scala/firrtl/passes/memlib/ResolveMaskGranularity.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/memlib/ResolveMemoryReference.scala b/src/main/scala/firrtl/passes/memlib/ResolveMemoryReference.scala
index e80e0c4a..73aa5399 100644
--- a/src/main/scala/firrtl/passes/memlib/ResolveMemoryReference.scala
+++ b/src/main/scala/firrtl/passes/memlib/ResolveMemoryReference.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/memlib/ToMemIR.scala b/src/main/scala/firrtl/passes/memlib/ToMemIR.scala
index 9fe7f852..d17f0d59 100644
--- a/src/main/scala/firrtl/passes/memlib/ToMemIR.scala
+++ b/src/main/scala/firrtl/passes/memlib/ToMemIR.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/memlib/VerilogMemDelays.scala b/src/main/scala/firrtl/passes/memlib/VerilogMemDelays.scala
index a2b14343..1cecf543 100644
--- a/src/main/scala/firrtl/passes/memlib/VerilogMemDelays.scala
+++ b/src/main/scala/firrtl/passes/memlib/VerilogMemDelays.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/memlib/YamlUtils.scala b/src/main/scala/firrtl/passes/memlib/YamlUtils.scala
index b5f91e7b..99344973 100644
--- a/src/main/scala/firrtl/passes/memlib/YamlUtils.scala
+++ b/src/main/scala/firrtl/passes/memlib/YamlUtils.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package memlib
diff --git a/src/main/scala/firrtl/passes/wiring/Wiring.scala b/src/main/scala/firrtl/passes/wiring/Wiring.scala
index a69b7797..45eb61bf 100644
--- a/src/main/scala/firrtl/passes/wiring/Wiring.scala
+++ b/src/main/scala/firrtl/passes/wiring/Wiring.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package wiring
diff --git a/src/main/scala/firrtl/passes/wiring/WiringTransform.scala b/src/main/scala/firrtl/passes/wiring/WiringTransform.scala
index d6658f16..4f6705ec 100644
--- a/src/main/scala/firrtl/passes/wiring/WiringTransform.scala
+++ b/src/main/scala/firrtl/passes/wiring/WiringTransform.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package wiring
diff --git a/src/main/scala/firrtl/passes/wiring/WiringUtils.scala b/src/main/scala/firrtl/passes/wiring/WiringUtils.scala
index 59b042f5..0b121cc0 100644
--- a/src/main/scala/firrtl/passes/wiring/WiringUtils.scala
+++ b/src/main/scala/firrtl/passes/wiring/WiringUtils.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
package wiring
diff --git a/src/main/scala/firrtl/proto/FromProto.scala b/src/main/scala/firrtl/proto/FromProto.scala
index 5b9dd371..663e91b3 100644
--- a/src/main/scala/firrtl/proto/FromProto.scala
+++ b/src/main/scala/firrtl/proto/FromProto.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package proto
diff --git a/src/main/scala/firrtl/proto/ToProto.scala b/src/main/scala/firrtl/proto/ToProto.scala
index 78b95582..4cdf6b85 100644
--- a/src/main/scala/firrtl/proto/ToProto.scala
+++ b/src/main/scala/firrtl/proto/ToProto.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package proto
diff --git a/src/main/scala/firrtl/stage/FirrtlAnnotations.scala b/src/main/scala/firrtl/stage/FirrtlAnnotations.scala
index 56072cb4..99a6e9c3 100644
--- a/src/main/scala/firrtl/stage/FirrtlAnnotations.scala
+++ b/src/main/scala/firrtl/stage/FirrtlAnnotations.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage
diff --git a/src/main/scala/firrtl/stage/FirrtlCli.scala b/src/main/scala/firrtl/stage/FirrtlCli.scala
index 450248ea..18f14107 100644
--- a/src/main/scala/firrtl/stage/FirrtlCli.scala
+++ b/src/main/scala/firrtl/stage/FirrtlCli.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage
diff --git a/src/main/scala/firrtl/stage/FirrtlOptions.scala b/src/main/scala/firrtl/stage/FirrtlOptions.scala
index 55d4cc31..64fa569c 100644
--- a/src/main/scala/firrtl/stage/FirrtlOptions.scala
+++ b/src/main/scala/firrtl/stage/FirrtlOptions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage
diff --git a/src/main/scala/firrtl/stage/FirrtlStage.scala b/src/main/scala/firrtl/stage/FirrtlStage.scala
index b92fc4ef..0b1e6578 100644
--- a/src/main/scala/firrtl/stage/FirrtlStage.scala
+++ b/src/main/scala/firrtl/stage/FirrtlStage.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage
diff --git a/src/main/scala/firrtl/stage/FirrtlStageUtils.scala b/src/main/scala/firrtl/stage/FirrtlStageUtils.scala
index aa9781db..6a34ddcf 100644
--- a/src/main/scala/firrtl/stage/FirrtlStageUtils.scala
+++ b/src/main/scala/firrtl/stage/FirrtlStageUtils.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage
diff --git a/src/main/scala/firrtl/stage/Forms.scala b/src/main/scala/firrtl/stage/Forms.scala
index db411325..a6077f52 100644
--- a/src/main/scala/firrtl/stage/Forms.scala
+++ b/src/main/scala/firrtl/stage/Forms.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage
diff --git a/src/main/scala/firrtl/stage/TransformManager.scala b/src/main/scala/firrtl/stage/TransformManager.scala
index aa96ca86..3029ddb5 100644
--- a/src/main/scala/firrtl/stage/TransformManager.scala
+++ b/src/main/scala/firrtl/stage/TransformManager.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage
diff --git a/src/main/scala/firrtl/stage/package.scala b/src/main/scala/firrtl/stage/package.scala
index 21182c84..c159f852 100644
--- a/src/main/scala/firrtl/stage/package.scala
+++ b/src/main/scala/firrtl/stage/package.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
diff --git a/src/main/scala/firrtl/stage/phases/AddCircuit.scala b/src/main/scala/firrtl/stage/phases/AddCircuit.scala
index c00e71b6..1401560c 100644
--- a/src/main/scala/firrtl/stage/phases/AddCircuit.scala
+++ b/src/main/scala/firrtl/stage/phases/AddCircuit.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases
diff --git a/src/main/scala/firrtl/stage/phases/AddDefaults.scala b/src/main/scala/firrtl/stage/phases/AddDefaults.scala
index b296b59d..63de1a7b 100644
--- a/src/main/scala/firrtl/stage/phases/AddDefaults.scala
+++ b/src/main/scala/firrtl/stage/phases/AddDefaults.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases
diff --git a/src/main/scala/firrtl/stage/phases/AddImplicitEmitter.scala b/src/main/scala/firrtl/stage/phases/AddImplicitEmitter.scala
index 3c0a2388..a252f4f3 100644
--- a/src/main/scala/firrtl/stage/phases/AddImplicitEmitter.scala
+++ b/src/main/scala/firrtl/stage/phases/AddImplicitEmitter.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases
diff --git a/src/main/scala/firrtl/stage/phases/AddImplicitOutputFile.scala b/src/main/scala/firrtl/stage/phases/AddImplicitOutputFile.scala
index 10af13d5..dcc2be4f 100644
--- a/src/main/scala/firrtl/stage/phases/AddImplicitOutputFile.scala
+++ b/src/main/scala/firrtl/stage/phases/AddImplicitOutputFile.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases
diff --git a/src/main/scala/firrtl/stage/phases/CatchExceptions.scala b/src/main/scala/firrtl/stage/phases/CatchExceptions.scala
index 5181653b..c3b304a5 100644
--- a/src/main/scala/firrtl/stage/phases/CatchExceptions.scala
+++ b/src/main/scala/firrtl/stage/phases/CatchExceptions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases
diff --git a/src/main/scala/firrtl/stage/phases/Checks.scala b/src/main/scala/firrtl/stage/phases/Checks.scala
index 44828ae6..e9065393 100644
--- a/src/main/scala/firrtl/stage/phases/Checks.scala
+++ b/src/main/scala/firrtl/stage/phases/Checks.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases
diff --git a/src/main/scala/firrtl/stage/phases/Compiler.scala b/src/main/scala/firrtl/stage/phases/Compiler.scala
index 0d1181a6..24848f36 100644
--- a/src/main/scala/firrtl/stage/phases/Compiler.scala
+++ b/src/main/scala/firrtl/stage/phases/Compiler.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases
diff --git a/src/main/scala/firrtl/stage/phases/ConvertCompilerAnnotations.scala b/src/main/scala/firrtl/stage/phases/ConvertCompilerAnnotations.scala
index b4743cde..edd38dc6 100644
--- a/src/main/scala/firrtl/stage/phases/ConvertCompilerAnnotations.scala
+++ b/src/main/scala/firrtl/stage/phases/ConvertCompilerAnnotations.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases
diff --git a/src/main/scala/firrtl/stage/phases/DriverCompatibility.scala b/src/main/scala/firrtl/stage/phases/DriverCompatibility.scala
index 529f9ca3..a37774e5 100644
--- a/src/main/scala/firrtl/stage/phases/DriverCompatibility.scala
+++ b/src/main/scala/firrtl/stage/phases/DriverCompatibility.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases
diff --git a/src/main/scala/firrtl/stage/phases/WriteEmitted.scala b/src/main/scala/firrtl/stage/phases/WriteEmitted.scala
index 614ce62f..010e85c3 100644
--- a/src/main/scala/firrtl/stage/phases/WriteEmitted.scala
+++ b/src/main/scala/firrtl/stage/phases/WriteEmitted.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases
diff --git a/src/main/scala/firrtl/stage/transforms/CatchCustomTransformExceptions.scala b/src/main/scala/firrtl/stage/transforms/CatchCustomTransformExceptions.scala
index 742d2b7e..6e50224a 100644
--- a/src/main/scala/firrtl/stage/transforms/CatchCustomTransformExceptions.scala
+++ b/src/main/scala/firrtl/stage/transforms/CatchCustomTransformExceptions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.transforms
diff --git a/src/main/scala/firrtl/stage/transforms/CheckScalaVersion.scala b/src/main/scala/firrtl/stage/transforms/CheckScalaVersion.scala
index 65dfd89a..9d894905 100644
--- a/src/main/scala/firrtl/stage/transforms/CheckScalaVersion.scala
+++ b/src/main/scala/firrtl/stage/transforms/CheckScalaVersion.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.transforms
diff --git a/src/main/scala/firrtl/stage/transforms/Compiler.scala b/src/main/scala/firrtl/stage/transforms/Compiler.scala
index 251f4387..42e933bd 100644
--- a/src/main/scala/firrtl/stage/transforms/Compiler.scala
+++ b/src/main/scala/firrtl/stage/transforms/Compiler.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.transforms
diff --git a/src/main/scala/firrtl/stage/transforms/ExpandPrepares.scala b/src/main/scala/firrtl/stage/transforms/ExpandPrepares.scala
index d0514f15..273c0bdc 100644
--- a/src/main/scala/firrtl/stage/transforms/ExpandPrepares.scala
+++ b/src/main/scala/firrtl/stage/transforms/ExpandPrepares.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.transforms
diff --git a/src/main/scala/firrtl/stage/transforms/TrackTransforms.scala b/src/main/scala/firrtl/stage/transforms/TrackTransforms.scala
index c268332a..62363a77 100644
--- a/src/main/scala/firrtl/stage/transforms/TrackTransforms.scala
+++ b/src/main/scala/firrtl/stage/transforms/TrackTransforms.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.transforms
diff --git a/src/main/scala/firrtl/stage/transforms/UpdateAnnotations.scala b/src/main/scala/firrtl/stage/transforms/UpdateAnnotations.scala
index e36eef9b..4fa7788d 100644
--- a/src/main/scala/firrtl/stage/transforms/UpdateAnnotations.scala
+++ b/src/main/scala/firrtl/stage/transforms/UpdateAnnotations.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.transforms
diff --git a/src/main/scala/firrtl/stage/transforms/WrappedTransform.scala b/src/main/scala/firrtl/stage/transforms/WrappedTransform.scala
index 2b49e0eb..3e81977c 100644
--- a/src/main/scala/firrtl/stage/transforms/WrappedTransform.scala
+++ b/src/main/scala/firrtl/stage/transforms/WrappedTransform.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.transforms
diff --git a/src/main/scala/firrtl/transforms/BlackBoxSourceHelper.scala b/src/main/scala/firrtl/transforms/BlackBoxSourceHelper.scala
index 5000e07a..12f33183 100644
--- a/src/main/scala/firrtl/transforms/BlackBoxSourceHelper.scala
+++ b/src/main/scala/firrtl/transforms/BlackBoxSourceHelper.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.transforms
diff --git a/src/main/scala/firrtl/transforms/CheckCombLoops.scala b/src/main/scala/firrtl/transforms/CheckCombLoops.scala
index ee4c1d0b..dee2f9c8 100644
--- a/src/main/scala/firrtl/transforms/CheckCombLoops.scala
+++ b/src/main/scala/firrtl/transforms/CheckCombLoops.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.transforms
diff --git a/src/main/scala/firrtl/transforms/CombineCats.scala b/src/main/scala/firrtl/transforms/CombineCats.scala
index 6d05698f..a37e6f08 100644
--- a/src/main/scala/firrtl/transforms/CombineCats.scala
+++ b/src/main/scala/firrtl/transforms/CombineCats.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/ConstantPropagation.scala b/src/main/scala/firrtl/transforms/ConstantPropagation.scala
index 10e99beb..5d57de3a 100644
--- a/src/main/scala/firrtl/transforms/ConstantPropagation.scala
+++ b/src/main/scala/firrtl/transforms/ConstantPropagation.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/DeadCodeElimination.scala b/src/main/scala/firrtl/transforms/DeadCodeElimination.scala
index c9b42f8e..13173fdd 100644
--- a/src/main/scala/firrtl/transforms/DeadCodeElimination.scala
+++ b/src/main/scala/firrtl/transforms/DeadCodeElimination.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.transforms
import firrtl._
diff --git a/src/main/scala/firrtl/transforms/Dedup.scala b/src/main/scala/firrtl/transforms/Dedup.scala
index 18e32cbc..2fb98224 100644
--- a/src/main/scala/firrtl/transforms/Dedup.scala
+++ b/src/main/scala/firrtl/transforms/Dedup.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/FixAddingNegativeLiteralsTransform.scala b/src/main/scala/firrtl/transforms/FixAddingNegativeLiteralsTransform.scala
index bfab31bf..2ba28ebb 100644
--- a/src/main/scala/firrtl/transforms/FixAddingNegativeLiteralsTransform.scala
+++ b/src/main/scala/firrtl/transforms/FixAddingNegativeLiteralsTransform.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.transforms
diff --git a/src/main/scala/firrtl/transforms/Flatten.scala b/src/main/scala/firrtl/transforms/Flatten.scala
index 36e71470..1d9f8083 100644
--- a/src/main/scala/firrtl/transforms/Flatten.scala
+++ b/src/main/scala/firrtl/transforms/Flatten.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/FlattenRegUpdate.scala b/src/main/scala/firrtl/transforms/FlattenRegUpdate.scala
index b582fe2a..664ce1e6 100644
--- a/src/main/scala/firrtl/transforms/FlattenRegUpdate.scala
+++ b/src/main/scala/firrtl/transforms/FlattenRegUpdate.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/GroupComponents.scala b/src/main/scala/firrtl/transforms/GroupComponents.scala
index 0db67f1e..ae110414 100644
--- a/src/main/scala/firrtl/transforms/GroupComponents.scala
+++ b/src/main/scala/firrtl/transforms/GroupComponents.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.transforms
import firrtl._
diff --git a/src/main/scala/firrtl/transforms/IdentityTransform.scala b/src/main/scala/firrtl/transforms/IdentityTransform.scala
index 4faa5cd0..16da324e 100644
--- a/src/main/scala/firrtl/transforms/IdentityTransform.scala
+++ b/src/main/scala/firrtl/transforms/IdentityTransform.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.transforms
diff --git a/src/main/scala/firrtl/transforms/InferResets.scala b/src/main/scala/firrtl/transforms/InferResets.scala
index 376382cc..0f5fb608 100644
--- a/src/main/scala/firrtl/transforms/InferResets.scala
+++ b/src/main/scala/firrtl/transforms/InferResets.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.transforms
diff --git a/src/main/scala/firrtl/transforms/InlineBitExtractions.scala b/src/main/scala/firrtl/transforms/InlineBitExtractions.scala
index 100b598f..4b2773c5 100644
--- a/src/main/scala/firrtl/transforms/InlineBitExtractions.scala
+++ b/src/main/scala/firrtl/transforms/InlineBitExtractions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/InlineBooleanExpressions.scala b/src/main/scala/firrtl/transforms/InlineBooleanExpressions.scala
index 29bdde0f..fcf8e335 100644
--- a/src/main/scala/firrtl/transforms/InlineBooleanExpressions.scala
+++ b/src/main/scala/firrtl/transforms/InlineBooleanExpressions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/InlineCasts.scala b/src/main/scala/firrtl/transforms/InlineCasts.scala
index 0efc0727..71318eee 100644
--- a/src/main/scala/firrtl/transforms/InlineCasts.scala
+++ b/src/main/scala/firrtl/transforms/InlineCasts.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/LegalizeClocksAndAsyncResets.scala b/src/main/scala/firrtl/transforms/LegalizeClocksAndAsyncResets.scala
index 0edf0cc6..5e3d276d 100644
--- a/src/main/scala/firrtl/transforms/LegalizeClocksAndAsyncResets.scala
+++ b/src/main/scala/firrtl/transforms/LegalizeClocksAndAsyncResets.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/LegalizeReductions.scala b/src/main/scala/firrtl/transforms/LegalizeReductions.scala
index 33a10349..b5751b14 100644
--- a/src/main/scala/firrtl/transforms/LegalizeReductions.scala
+++ b/src/main/scala/firrtl/transforms/LegalizeReductions.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/ManipulateNames.scala b/src/main/scala/firrtl/transforms/ManipulateNames.scala
index d0b12e66..1dbc46ad 100644
--- a/src/main/scala/firrtl/transforms/ManipulateNames.scala
+++ b/src/main/scala/firrtl/transforms/ManipulateNames.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.transforms
diff --git a/src/main/scala/firrtl/transforms/OptimizationAnnotations.scala b/src/main/scala/firrtl/transforms/OptimizationAnnotations.scala
index 5532d0f0..10163b72 100644
--- a/src/main/scala/firrtl/transforms/OptimizationAnnotations.scala
+++ b/src/main/scala/firrtl/transforms/OptimizationAnnotations.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/PropagatePresetAnnotations.scala b/src/main/scala/firrtl/transforms/PropagatePresetAnnotations.scala
index 97db0219..941dce41 100644
--- a/src/main/scala/firrtl/transforms/PropagatePresetAnnotations.scala
+++ b/src/main/scala/firrtl/transforms/PropagatePresetAnnotations.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/RemoveKeywordCollisions.scala b/src/main/scala/firrtl/transforms/RemoveKeywordCollisions.scala
index 216dd7c1..3cf0e40a 100644
--- a/src/main/scala/firrtl/transforms/RemoveKeywordCollisions.scala
+++ b/src/main/scala/firrtl/transforms/RemoveKeywordCollisions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.transforms
diff --git a/src/main/scala/firrtl/transforms/RemoveReset.scala b/src/main/scala/firrtl/transforms/RemoveReset.scala
index 8736e21b..14880ab9 100644
--- a/src/main/scala/firrtl/transforms/RemoveReset.scala
+++ b/src/main/scala/firrtl/transforms/RemoveReset.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/RemoveWires.scala b/src/main/scala/firrtl/transforms/RemoveWires.scala
index 31fa3b6f..440989f4 100644
--- a/src/main/scala/firrtl/transforms/RemoveWires.scala
+++ b/src/main/scala/firrtl/transforms/RemoveWires.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/RenameModules.scala b/src/main/scala/firrtl/transforms/RenameModules.scala
index 16fd655a..162f726e 100644
--- a/src/main/scala/firrtl/transforms/RenameModules.scala
+++ b/src/main/scala/firrtl/transforms/RenameModules.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.transforms
diff --git a/src/main/scala/firrtl/transforms/ReplaceTruncatingArithmetic.scala b/src/main/scala/firrtl/transforms/ReplaceTruncatingArithmetic.scala
index 14c84b91..b34b1f6a 100644
--- a/src/main/scala/firrtl/transforms/ReplaceTruncatingArithmetic.scala
+++ b/src/main/scala/firrtl/transforms/ReplaceTruncatingArithmetic.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/SimplifyMems.scala b/src/main/scala/firrtl/transforms/SimplifyMems.scala
index 7790d060..8ecc484a 100644
--- a/src/main/scala/firrtl/transforms/SimplifyMems.scala
+++ b/src/main/scala/firrtl/transforms/SimplifyMems.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl
package transforms
diff --git a/src/main/scala/firrtl/transforms/TopWiring.scala b/src/main/scala/firrtl/transforms/TopWiring.scala
index b35fed22..c231d347 100644
--- a/src/main/scala/firrtl/transforms/TopWiring.scala
+++ b/src/main/scala/firrtl/transforms/TopWiring.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.transforms
package TopWiring
diff --git a/src/main/scala/firrtl/transforms/formal/AssertSubmoduleAssumptions.scala b/src/main/scala/firrtl/transforms/formal/AssertSubmoduleAssumptions.scala
index cdbee495..e5e65d1d 100644
--- a/src/main/scala/firrtl/transforms/formal/AssertSubmoduleAssumptions.scala
+++ b/src/main/scala/firrtl/transforms/formal/AssertSubmoduleAssumptions.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.transforms.formal
import firrtl.ir.{Circuit, Formal, Statement, Verification}
diff --git a/src/main/scala/firrtl/transforms/formal/ConvertAsserts.scala b/src/main/scala/firrtl/transforms/formal/ConvertAsserts.scala
index 5928c79c..e49be6eb 100644
--- a/src/main/scala/firrtl/transforms/formal/ConvertAsserts.scala
+++ b/src/main/scala/firrtl/transforms/formal/ConvertAsserts.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.transforms.formal
diff --git a/src/main/scala/firrtl/transforms/formal/RemoveVerificationStatements.scala b/src/main/scala/firrtl/transforms/formal/RemoveVerificationStatements.scala
index 1e6d2c72..35e2d804 100644
--- a/src/main/scala/firrtl/transforms/formal/RemoveVerificationStatements.scala
+++ b/src/main/scala/firrtl/transforms/formal/RemoveVerificationStatements.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.transforms.formal
import firrtl.ir.{Circuit, EmptyStmt, Statement, Verification}
diff --git a/src/main/scala/firrtl/transforms/package.scala b/src/main/scala/firrtl/transforms/package.scala
index 4043598c..d758fa0a 100644
--- a/src/main/scala/firrtl/transforms/package.scala
+++ b/src/main/scala/firrtl/transforms/package.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl
package object transforms {
diff --git a/src/main/scala/firrtl/traversals/Foreachers.scala b/src/main/scala/firrtl/traversals/Foreachers.scala
index dee74d63..22df6579 100644
--- a/src/main/scala/firrtl/traversals/Foreachers.scala
+++ b/src/main/scala/firrtl/traversals/Foreachers.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.traversals
diff --git a/src/main/scala/firrtl/util/BackendCompilationUtilities.scala b/src/main/scala/firrtl/util/BackendCompilationUtilities.scala
index 2ac5b035..8d2d8be9 100644
--- a/src/main/scala/firrtl/util/BackendCompilationUtilities.scala
+++ b/src/main/scala/firrtl/util/BackendCompilationUtilities.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.util
diff --git a/src/main/scala/firrtl/util/ClassUtils.scala b/src/main/scala/firrtl/util/ClassUtils.scala
index 34ff60fc..095e875c 100644
--- a/src/main/scala/firrtl/util/ClassUtils.scala
+++ b/src/main/scala/firrtl/util/ClassUtils.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.util
object ClassUtils {
diff --git a/src/main/scala/firrtl/util/TestOptions.scala b/src/main/scala/firrtl/util/TestOptions.scala
index 9ee99f8c..a1b0f4b8 100644
--- a/src/main/scala/firrtl/util/TestOptions.scala
+++ b/src/main/scala/firrtl/util/TestOptions.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.util
import ClassUtils.isClassLoaded
diff --git a/src/main/scala/logger/Logger.scala b/src/main/scala/logger/Logger.scala
index e002db92..fe4b8111 100644
--- a/src/main/scala/logger/Logger.scala
+++ b/src/main/scala/logger/Logger.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package logger
diff --git a/src/main/scala/logger/LoggerAnnotations.scala b/src/main/scala/logger/LoggerAnnotations.scala
index b345d617..c292db87 100644
--- a/src/main/scala/logger/LoggerAnnotations.scala
+++ b/src/main/scala/logger/LoggerAnnotations.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package logger
diff --git a/src/main/scala/logger/LoggerOptions.scala b/src/main/scala/logger/LoggerOptions.scala
index 6cc745b9..c0b5d35c 100644
--- a/src/main/scala/logger/LoggerOptions.scala
+++ b/src/main/scala/logger/LoggerOptions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package logger
diff --git a/src/main/scala/logger/package.scala b/src/main/scala/logger/package.scala
index 52a3331a..320b06cb 100644
--- a/src/main/scala/logger/package.scala
+++ b/src/main/scala/logger/package.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
import firrtl.AnnotationSeq
import firrtl.options.OptionsView
diff --git a/src/main/scala/logger/phases/AddDefaults.scala b/src/main/scala/logger/phases/AddDefaults.scala
index ec673637..722b7c78 100644
--- a/src/main/scala/logger/phases/AddDefaults.scala
+++ b/src/main/scala/logger/phases/AddDefaults.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package logger.phases
diff --git a/src/main/scala/logger/phases/Checks.scala b/src/main/scala/logger/phases/Checks.scala
index 707118e3..96df4a14 100644
--- a/src/main/scala/logger/phases/Checks.scala
+++ b/src/main/scala/logger/phases/Checks.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package logger.phases
diff --git a/src/main/scala/tutorial/lesson1-circuit-traversal/AnalyzeCircuit.scala b/src/main/scala/tutorial/lesson1-circuit-traversal/AnalyzeCircuit.scala
index 72f50461..23ecb114 100644
--- a/src/main/scala/tutorial/lesson1-circuit-traversal/AnalyzeCircuit.scala
+++ b/src/main/scala/tutorial/lesson1-circuit-traversal/AnalyzeCircuit.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package tutorial
package lesson1
diff --git a/src/main/scala/tutorial/lesson2-ir-fields/AnalyzeCircuit.scala b/src/main/scala/tutorial/lesson2-ir-fields/AnalyzeCircuit.scala
index 11b4519c..a75c19dc 100644
--- a/src/main/scala/tutorial/lesson2-ir-fields/AnalyzeCircuit.scala
+++ b/src/main/scala/tutorial/lesson2-ir-fields/AnalyzeCircuit.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package tutorial
package lesson2
diff --git a/src/test/resources/blackboxes/AdderExtModule.v b/src/test/resources/blackboxes/AdderExtModule.v
index d0313fba..ba0bd87c 100644
--- a/src/test/resources/blackboxes/AdderExtModule.v
+++ b/src/test/resources/blackboxes/AdderExtModule.v
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
module AdderExtModule(
input [15:0] foo,
output [15:0] bar
diff --git a/src/test/resources/blackboxes/LargeParam.v b/src/test/resources/blackboxes/LargeParam.v
index 3a0dcd9e..94c903ff 100644
--- a/src/test/resources/blackboxes/LargeParam.v
+++ b/src/test/resources/blackboxes/LargeParam.v
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
module LargeParamUnsigned #(parameter DATA=0, WIDTH=1) (
output [WIDTH-1:0] out
);
diff --git a/src/test/resources/blackboxes/LargeParamTester.fir b/src/test/resources/blackboxes/LargeParamTester.fir
index 29027c36..81d9dd2b 100644
--- a/src/test/resources/blackboxes/LargeParamTester.fir
+++ b/src/test/resources/blackboxes/LargeParamTester.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit LargeParamTester :
extmodule LargeParam :
output out : UInt<1>
diff --git a/src/test/resources/blackboxes/MultiExtModuleTester.fir b/src/test/resources/blackboxes/MultiExtModuleTester.fir
index 82ac172f..3acdd9b3 100644
--- a/src/test/resources/blackboxes/MultiExtModuleTester.fir
+++ b/src/test/resources/blackboxes/MultiExtModuleTester.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit MultiExtModuleTester :
extmodule SimpleExtModule :
input foo : UInt<16>
diff --git a/src/test/resources/blackboxes/ParameterizedExtModule.v b/src/test/resources/blackboxes/ParameterizedExtModule.v
index 28635b6c..f7578091 100644
--- a/src/test/resources/blackboxes/ParameterizedExtModule.v
+++ b/src/test/resources/blackboxes/ParameterizedExtModule.v
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
module ParameterizedExtModule(
input [15:0] foo,
output [15:0] bar
diff --git a/src/test/resources/blackboxes/ParameterizedExtModuleTester.fir b/src/test/resources/blackboxes/ParameterizedExtModuleTester.fir
index b6771bd5..9e33e1eb 100644
--- a/src/test/resources/blackboxes/ParameterizedExtModuleTester.fir
+++ b/src/test/resources/blackboxes/ParameterizedExtModuleTester.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit ParameterizedExtModuleTester :
extmodule ParameterizedExtModule_1 :
input foo : UInt<16>
diff --git a/src/test/resources/blackboxes/ParameterizedViaHeaderAdderExtModule.v b/src/test/resources/blackboxes/ParameterizedViaHeaderAdderExtModule.v
index fcba38d5..1042ef54 100644
--- a/src/test/resources/blackboxes/ParameterizedViaHeaderAdderExtModule.v
+++ b/src/test/resources/blackboxes/ParameterizedViaHeaderAdderExtModule.v
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
module ParameterizedViaHeaderAdderExtModule(
input [15:0] foo,
output [15:0] bar
diff --git a/src/test/resources/blackboxes/RenamedExtModuleTester.fir b/src/test/resources/blackboxes/RenamedExtModuleTester.fir
index 37338c9f..a5979d59 100644
--- a/src/test/resources/blackboxes/RenamedExtModuleTester.fir
+++ b/src/test/resources/blackboxes/RenamedExtModuleTester.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit RenamedExtModuleTester :
extmodule ThisIsJustTheFirrtlName :
input foo : UInt<16>
diff --git a/src/test/resources/blackboxes/SimpleExtModule.v b/src/test/resources/blackboxes/SimpleExtModule.v
index 127291ca..586003bd 100644
--- a/src/test/resources/blackboxes/SimpleExtModule.v
+++ b/src/test/resources/blackboxes/SimpleExtModule.v
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
module SimpleExtModule(
input [15:0] foo,
output [15:0] bar
diff --git a/src/test/resources/blackboxes/SimpleExtModuleTester.fir b/src/test/resources/blackboxes/SimpleExtModuleTester.fir
index 7118ec9f..892f593b 100644
--- a/src/test/resources/blackboxes/SimpleExtModuleTester.fir
+++ b/src/test/resources/blackboxes/SimpleExtModuleTester.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit SimpleExtModuleTester :
extmodule SimpleExtModule :
input foo : UInt<16>
diff --git a/src/test/resources/blackboxes/VerilogHeaderFile.vh b/src/test/resources/blackboxes/VerilogHeaderFile.vh
index 0844c95f..122732a7 100644
--- a/src/test/resources/blackboxes/VerilogHeaderFile.vh
+++ b/src/test/resources/blackboxes/VerilogHeaderFile.vh
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
`ifndef _parameters_vh_
`define _parameters_vh_
parameter VALUE = 2;
diff --git a/src/test/resources/features/AsyncResetTester.fir b/src/test/resources/features/AsyncResetTester.fir
index 15efbd8d..3066e4bb 100644
--- a/src/test/resources/features/AsyncResetTester.fir
+++ b/src/test/resources/features/AsyncResetTester.fir
@@ -1,4 +1,4 @@
-
+; SPDX-License-Identifier: Apache-2.0
circuit AsyncResetTester :
module AsyncResetTester :
input clock : Clock
diff --git a/src/test/resources/features/ChirrtlMems.fir b/src/test/resources/features/ChirrtlMems.fir
index de5b3cf3..fa9ec1c0 100644
--- a/src/test/resources/features/ChirrtlMems.fir
+++ b/src/test/resources/features/ChirrtlMems.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit ChirrtlMems :
module ChirrtlMems :
input clock : Clock
diff --git a/src/test/resources/features/CustomTransform.fir b/src/test/resources/features/CustomTransform.fir
index de00f261..99cb1800 100644
--- a/src/test/resources/features/CustomTransform.fir
+++ b/src/test/resources/features/CustomTransform.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit CustomTransform :
; Replaced in custom transform by an implementation
extmodule Delay :
diff --git a/src/test/resources/features/EmptyChirrtlMem.fir b/src/test/resources/features/EmptyChirrtlMem.fir
index 036d3830..56f3798e 100644
--- a/src/test/resources/features/EmptyChirrtlMem.fir
+++ b/src/test/resources/features/EmptyChirrtlMem.fir
@@ -1,3 +1,5 @@
+; SPDX-License-Identifier: Apache-2.0
+
circuit Queue :
module Queue :
input clock : Clock
diff --git a/src/test/resources/features/HasDeadCode.fir b/src/test/resources/features/HasDeadCode.fir
index db87ff7a..a634388f 100644
--- a/src/test/resources/features/HasDeadCode.fir
+++ b/src/test/resources/features/HasDeadCode.fir
@@ -1,3 +1,4 @@
+; SPDX-License-Identifier: Apache-2.0
circuit HasDeadCode :
module HasDeadCode :
input i : UInt<1>
diff --git a/src/test/resources/features/HasLoops.fir b/src/test/resources/features/HasLoops.fir
index e238761d..341937fa 100644
--- a/src/test/resources/features/HasLoops.fir
+++ b/src/test/resources/features/HasLoops.fir
@@ -1,3 +1,4 @@
+; SPDX-License-Identifier: Apache-2.0
circuit HasLoops :
module HasLoops :
input i : UInt<1>
diff --git a/src/test/resources/features/NestedSubAccessTester.fir b/src/test/resources/features/NestedSubAccessTester.fir
index 84b4cfbe..f81ab251 100644
--- a/src/test/resources/features/NestedSubAccessTester.fir
+++ b/src/test/resources/features/NestedSubAccessTester.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit NestedSubAccessTester :
module NestedSubAccess :
input foo : UInt<1>[4]
diff --git a/src/test/resources/features/NodeType.fir b/src/test/resources/features/NodeType.fir
index fe48871b..f55a30ce 100644
--- a/src/test/resources/features/NodeType.fir
+++ b/src/test/resources/features/NodeType.fir
@@ -1,3 +1,4 @@
+; SPDX-License-Identifier: Apache-2.0
circuit NodeType :
module NodeType :
input clock : Clock
diff --git a/src/test/resources/features/PresetTester.fir b/src/test/resources/features/PresetTester.fir
index a2395c99..22bdc5a6 100644
--- a/src/test/resources/features/PresetTester.fir
+++ b/src/test/resources/features/PresetTester.fir
@@ -1,4 +1,4 @@
-
+; SPDX-License-Identifier: Apache-2.0
circuit PresetTester :
module Test :
diff --git a/src/test/resources/features/Printf.fir b/src/test/resources/features/Printf.fir
index 5e065b9c..cc0aec49 100644
--- a/src/test/resources/features/Printf.fir
+++ b/src/test/resources/features/Printf.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit Printf :
module Printf :
input clock : Clock
diff --git a/src/test/resources/features/ZeroPortMem.fir b/src/test/resources/features/ZeroPortMem.fir
index 96327f5c..1ae4f68c 100644
--- a/src/test/resources/features/ZeroPortMem.fir
+++ b/src/test/resources/features/ZeroPortMem.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit ZeroPortMem :
module ZeroPortMem :
input clock : Clock
diff --git a/src/test/resources/features/ZeroWidthMem.fir b/src/test/resources/features/ZeroWidthMem.fir
index a909b041..018cc25d 100644
--- a/src/test/resources/features/ZeroWidthMem.fir
+++ b/src/test/resources/features/ZeroWidthMem.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit ZeroWidthMem :
module ZeroWidthMem :
input clock : Clock
diff --git a/src/test/resources/firrtl/testTop.cpp b/src/test/resources/firrtl/testTop.cpp
index ba27c917..4dafd60f 100644
--- a/src/test/resources/firrtl/testTop.cpp
+++ b/src/test/resources/firrtl/testTop.cpp
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
#include <verilated.h>
#include <iostream>
diff --git a/src/test/resources/passes/ExpandWhens/ExpandWhens.fir b/src/test/resources/passes/ExpandWhens/ExpandWhens.fir
index 291cf1b4..25706d28 100644
--- a/src/test/resources/passes/ExpandWhens/ExpandWhens.fir
+++ b/src/test/resources/passes/ExpandWhens/ExpandWhens.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit ExpandWhens :
module ExpandWhens :
input clock : Clock
diff --git a/src/test/resources/passes/Legalize/Legalize.fir b/src/test/resources/passes/Legalize/Legalize.fir
index 716dff83..7e538695 100644
--- a/src/test/resources/passes/Legalize/Legalize.fir
+++ b/src/test/resources/passes/Legalize/Legalize.fir
@@ -1,4 +1,4 @@
-; See LICENSE for license details.
+; SPDX-License-Identifier: Apache-2.0
circuit Legalize :
module Legalize :
input clock : Clock
diff --git a/src/test/scala/firrtl/JsonProtocolSpec.scala b/src/test/scala/firrtl/JsonProtocolSpec.scala
index cc7591cb..0da43204 100644
--- a/src/test/scala/firrtl/JsonProtocolSpec.scala
+++ b/src/test/scala/firrtl/JsonProtocolSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtl/analysis/SymbolTableSpec.scala b/src/test/scala/firrtl/analysis/SymbolTableSpec.scala
index ca30b60b..f70b9668 100644
--- a/src/test/scala/firrtl/analysis/SymbolTableSpec.scala
+++ b/src/test/scala/firrtl/analysis/SymbolTableSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.analysis
diff --git a/src/test/scala/firrtl/backends/experimental/smt/Btor2Spec.scala b/src/test/scala/firrtl/backends/experimental/smt/Btor2Spec.scala
index 56f891e6..32976d30 100644
--- a/src/test/scala/firrtl/backends/experimental/smt/Btor2Spec.scala
+++ b/src/test/scala/firrtl/backends/experimental/smt/Btor2Spec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.backends.experimental.smt
diff --git a/src/test/scala/firrtl/backends/experimental/smt/FirrtlExpressionSemanticsSpec.scala b/src/test/scala/firrtl/backends/experimental/smt/FirrtlExpressionSemanticsSpec.scala
index f7ce9914..5956cf03 100644
--- a/src/test/scala/firrtl/backends/experimental/smt/FirrtlExpressionSemanticsSpec.scala
+++ b/src/test/scala/firrtl/backends/experimental/smt/FirrtlExpressionSemanticsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.backends.experimental.smt
diff --git a/src/test/scala/firrtl/backends/experimental/smt/FirrtlModuleToTransitionSystemSpec.scala b/src/test/scala/firrtl/backends/experimental/smt/FirrtlModuleToTransitionSystemSpec.scala
index 32902e76..f4b3a1f5 100644
--- a/src/test/scala/firrtl/backends/experimental/smt/FirrtlModuleToTransitionSystemSpec.scala
+++ b/src/test/scala/firrtl/backends/experimental/smt/FirrtlModuleToTransitionSystemSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.backends.experimental.smt
diff --git a/src/test/scala/firrtl/backends/experimental/smt/SMTBackendBaseSpec.scala b/src/test/scala/firrtl/backends/experimental/smt/SMTBackendBaseSpec.scala
index 209279fd..a82767ae 100644
--- a/src/test/scala/firrtl/backends/experimental/smt/SMTBackendBaseSpec.scala
+++ b/src/test/scala/firrtl/backends/experimental/smt/SMTBackendBaseSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.backends.experimental.smt
diff --git a/src/test/scala/firrtl/backends/experimental/smt/SMTLibSpec.scala b/src/test/scala/firrtl/backends/experimental/smt/SMTLibSpec.scala
index 7193474d..b970484e 100644
--- a/src/test/scala/firrtl/backends/experimental/smt/SMTLibSpec.scala
+++ b/src/test/scala/firrtl/backends/experimental/smt/SMTLibSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.backends.experimental.smt
diff --git a/src/test/scala/firrtl/backends/experimental/smt/end2end/AsyncResetSpec.scala b/src/test/scala/firrtl/backends/experimental/smt/end2end/AsyncResetSpec.scala
index e7c8d534..b1e95365 100644
--- a/src/test/scala/firrtl/backends/experimental/smt/end2end/AsyncResetSpec.scala
+++ b/src/test/scala/firrtl/backends/experimental/smt/end2end/AsyncResetSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.backends.experimental.smt.end2end
diff --git a/src/test/scala/firrtl/backends/experimental/smt/end2end/EndToEndSMTSpec.scala b/src/test/scala/firrtl/backends/experimental/smt/end2end/EndToEndSMTSpec.scala
index 974d2e81..b1ba8e32 100644
--- a/src/test/scala/firrtl/backends/experimental/smt/end2end/EndToEndSMTSpec.scala
+++ b/src/test/scala/firrtl/backends/experimental/smt/end2end/EndToEndSMTSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.backends.experimental.smt.end2end
diff --git a/src/test/scala/firrtl/backends/experimental/smt/end2end/MemorySpec.scala b/src/test/scala/firrtl/backends/experimental/smt/end2end/MemorySpec.scala
index 61e1f0f8..e38195e2 100644
--- a/src/test/scala/firrtl/backends/experimental/smt/end2end/MemorySpec.scala
+++ b/src/test/scala/firrtl/backends/experimental/smt/end2end/MemorySpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.backends.experimental.smt.end2end
diff --git a/src/test/scala/firrtl/backends/experimental/smt/end2end/RequiresZ3.scala b/src/test/scala/firrtl/backends/experimental/smt/end2end/RequiresZ3.scala
index d633a1a0..91c3ee92 100644
--- a/src/test/scala/firrtl/backends/experimental/smt/end2end/RequiresZ3.scala
+++ b/src/test/scala/firrtl/backends/experimental/smt/end2end/RequiresZ3.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.backends.experimental.smt.end2end
diff --git a/src/test/scala/firrtl/backends/experimental/smt/end2end/SMTCompilationTest.scala b/src/test/scala/firrtl/backends/experimental/smt/end2end/SMTCompilationTest.scala
index 8ece0e23..72949830 100644
--- a/src/test/scala/firrtl/backends/experimental/smt/end2end/SMTCompilationTest.scala
+++ b/src/test/scala/firrtl/backends/experimental/smt/end2end/SMTCompilationTest.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.backends.experimental.smt.end2end
diff --git a/src/test/scala/firrtl/backends/experimental/smt/end2end/UndefinedFirrtlSpec.scala b/src/test/scala/firrtl/backends/experimental/smt/end2end/UndefinedFirrtlSpec.scala
index 8682c2ce..c1587580 100644
--- a/src/test/scala/firrtl/backends/experimental/smt/end2end/UndefinedFirrtlSpec.scala
+++ b/src/test/scala/firrtl/backends/experimental/smt/end2end/UndefinedFirrtlSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.backends.experimental.smt.end2end
diff --git a/src/test/scala/firrtl/ir/StructuralHashSpec.scala b/src/test/scala/firrtl/ir/StructuralHashSpec.scala
index c4622939..ffd03126 100644
--- a/src/test/scala/firrtl/ir/StructuralHashSpec.scala
+++ b/src/test/scala/firrtl/ir/StructuralHashSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.ir
diff --git a/src/test/scala/firrtl/passes/LowerTypesSpec.scala b/src/test/scala/firrtl/passes/LowerTypesSpec.scala
index 0575c5da..70fa51fd 100644
--- a/src/test/scala/firrtl/passes/LowerTypesSpec.scala
+++ b/src/test/scala/firrtl/passes/LowerTypesSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.passes
import firrtl.annotations.{CircuitTarget, IsMember}
diff --git a/src/test/scala/firrtl/stage/phases/tests/ConvertCompilerAnnotationsSpec.scala b/src/test/scala/firrtl/stage/phases/tests/ConvertCompilerAnnotationsSpec.scala
index acd37bf5..30163842 100644
--- a/src/test/scala/firrtl/stage/phases/tests/ConvertCompilerAnnotationsSpec.scala
+++ b/src/test/scala/firrtl/stage/phases/tests/ConvertCompilerAnnotationsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases.tests
diff --git a/src/test/scala/firrtl/stage/phases/tests/DriverCompatibilitySpec.scala b/src/test/scala/firrtl/stage/phases/tests/DriverCompatibilitySpec.scala
index 0b9b830c..e421e2f8 100644
--- a/src/test/scala/firrtl/stage/phases/tests/DriverCompatibilitySpec.scala
+++ b/src/test/scala/firrtl/stage/phases/tests/DriverCompatibilitySpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.stage.phases.tests
diff --git a/src/test/scala/firrtl/testutils/FirrtlSpec.scala b/src/test/scala/firrtl/testutils/FirrtlSpec.scala
index 244366f4..3a6f9372 100644
--- a/src/test/scala/firrtl/testutils/FirrtlSpec.scala
+++ b/src/test/scala/firrtl/testutils/FirrtlSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.testutils
diff --git a/src/test/scala/firrtl/testutils/LeanTransformSpec.scala b/src/test/scala/firrtl/testutils/LeanTransformSpec.scala
index 4ae6a7be..d3510326 100644
--- a/src/test/scala/firrtl/testutils/LeanTransformSpec.scala
+++ b/src/test/scala/firrtl/testutils/LeanTransformSpec.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtl.testutils
import firrtl.{ir, AnnotationSeq, CircuitState, EmitCircuitAnnotation}
diff --git a/src/test/scala/firrtl/testutils/PassTests.scala b/src/test/scala/firrtl/testutils/PassTests.scala
index 7a5dc306..3848ac95 100644
--- a/src/test/scala/firrtl/testutils/PassTests.scala
+++ b/src/test/scala/firrtl/testutils/PassTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtl.testutils
diff --git a/src/test/scala/firrtlTests/AnnotationTests.scala b/src/test/scala/firrtlTests/AnnotationTests.scala
index 6f8dd574..6ee63856 100644
--- a/src/test/scala/firrtlTests/AnnotationTests.scala
+++ b/src/test/scala/firrtlTests/AnnotationTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/AsyncResetSpec.scala b/src/test/scala/firrtlTests/AsyncResetSpec.scala
index a27d44d3..911094ed 100644
--- a/src/test/scala/firrtlTests/AsyncResetSpec.scala
+++ b/src/test/scala/firrtlTests/AsyncResetSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/AttachSpec.scala b/src/test/scala/firrtlTests/AttachSpec.scala
index 709e3692..559e777b 100644
--- a/src/test/scala/firrtlTests/AttachSpec.scala
+++ b/src/test/scala/firrtlTests/AttachSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/CInferMDirSpec.scala b/src/test/scala/firrtlTests/CInferMDirSpec.scala
index ce0c0a74..349353d1 100644
--- a/src/test/scala/firrtlTests/CInferMDirSpec.scala
+++ b/src/test/scala/firrtlTests/CInferMDirSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/CheckCombLoopsSpec.scala b/src/test/scala/firrtlTests/CheckCombLoopsSpec.scala
index d8151142..33661df9 100644
--- a/src/test/scala/firrtlTests/CheckCombLoopsSpec.scala
+++ b/src/test/scala/firrtlTests/CheckCombLoopsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/CheckInitializationSpec.scala b/src/test/scala/firrtlTests/CheckInitializationSpec.scala
index 5fd9543e..8a8b3b6f 100644
--- a/src/test/scala/firrtlTests/CheckInitializationSpec.scala
+++ b/src/test/scala/firrtlTests/CheckInitializationSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/CheckSpec.scala b/src/test/scala/firrtlTests/CheckSpec.scala
index 20a5f969..1137f8cd 100644
--- a/src/test/scala/firrtlTests/CheckSpec.scala
+++ b/src/test/scala/firrtlTests/CheckSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ChirrtlMemSpec.scala b/src/test/scala/firrtlTests/ChirrtlMemSpec.scala
index 11a27d65..fad48e4c 100644
--- a/src/test/scala/firrtlTests/ChirrtlMemSpec.scala
+++ b/src/test/scala/firrtlTests/ChirrtlMemSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ChirrtlSpec.scala b/src/test/scala/firrtlTests/ChirrtlSpec.scala
index 2d13c835..78603ed3 100644
--- a/src/test/scala/firrtlTests/ChirrtlSpec.scala
+++ b/src/test/scala/firrtlTests/ChirrtlSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ClockListTests.scala b/src/test/scala/firrtlTests/ClockListTests.scala
index c547448b..3633fbc9 100644
--- a/src/test/scala/firrtlTests/ClockListTests.scala
+++ b/src/test/scala/firrtlTests/ClockListTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/CompilerTests.scala b/src/test/scala/firrtlTests/CompilerTests.scala
index 129ff8f5..732b3b85 100644
--- a/src/test/scala/firrtlTests/CompilerTests.scala
+++ b/src/test/scala/firrtlTests/CompilerTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/CompilerUtilsSpec.scala b/src/test/scala/firrtlTests/CompilerUtilsSpec.scala
index 530a036a..ea00d5b2 100644
--- a/src/test/scala/firrtlTests/CompilerUtilsSpec.scala
+++ b/src/test/scala/firrtlTests/CompilerUtilsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ConstantPropagationTests.scala b/src/test/scala/firrtlTests/ConstantPropagationTests.scala
index cc6377ee..94973042 100644
--- a/src/test/scala/firrtlTests/ConstantPropagationTests.scala
+++ b/src/test/scala/firrtlTests/ConstantPropagationTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/CustomTransformSpec.scala b/src/test/scala/firrtlTests/CustomTransformSpec.scala
index 6edd212d..50cb6f43 100644
--- a/src/test/scala/firrtlTests/CustomTransformSpec.scala
+++ b/src/test/scala/firrtlTests/CustomTransformSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/DCETests.scala b/src/test/scala/firrtlTests/DCETests.scala
index f1c0001a..5b498e7e 100644
--- a/src/test/scala/firrtlTests/DCETests.scala
+++ b/src/test/scala/firrtlTests/DCETests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/DriverSpec.scala b/src/test/scala/firrtlTests/DriverSpec.scala
index 5352fadf..7f847be0 100644
--- a/src/test/scala/firrtlTests/DriverSpec.scala
+++ b/src/test/scala/firrtlTests/DriverSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ExecutionOptionsManagerSpec.scala b/src/test/scala/firrtlTests/ExecutionOptionsManagerSpec.scala
index 9f756927..f176fe38 100644
--- a/src/test/scala/firrtlTests/ExecutionOptionsManagerSpec.scala
+++ b/src/test/scala/firrtlTests/ExecutionOptionsManagerSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ExpandWhensSpec.scala b/src/test/scala/firrtlTests/ExpandWhensSpec.scala
index 6737643a..c186b516 100644
--- a/src/test/scala/firrtlTests/ExpandWhensSpec.scala
+++ b/src/test/scala/firrtlTests/ExpandWhensSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ExtModuleSpec.scala b/src/test/scala/firrtlTests/ExtModuleSpec.scala
index c684e57b..18267bd5 100644
--- a/src/test/scala/firrtlTests/ExtModuleSpec.scala
+++ b/src/test/scala/firrtlTests/ExtModuleSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ExtModuleTests.scala b/src/test/scala/firrtlTests/ExtModuleTests.scala
index 5a58df2b..d15d243f 100644
--- a/src/test/scala/firrtlTests/ExtModuleTests.scala
+++ b/src/test/scala/firrtlTests/ExtModuleTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/FeatureSpec.scala b/src/test/scala/firrtlTests/FeatureSpec.scala
index 4972eeb5..bb543175 100644
--- a/src/test/scala/firrtlTests/FeatureSpec.scala
+++ b/src/test/scala/firrtlTests/FeatureSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/FileUtilsSpec.scala b/src/test/scala/firrtlTests/FileUtilsSpec.scala
index 5a438251..e76112a7 100644
--- a/src/test/scala/firrtlTests/FileUtilsSpec.scala
+++ b/src/test/scala/firrtlTests/FileUtilsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/FlattenTests.scala b/src/test/scala/firrtlTests/FlattenTests.scala
index ef555eaa..b0b75373 100644
--- a/src/test/scala/firrtlTests/FlattenTests.scala
+++ b/src/test/scala/firrtlTests/FlattenTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/InferReadWriteSpec.scala b/src/test/scala/firrtlTests/InferReadWriteSpec.scala
index 81f2df33..1fb24297 100644
--- a/src/test/scala/firrtlTests/InferReadWriteSpec.scala
+++ b/src/test/scala/firrtlTests/InferReadWriteSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/InferResetsSpec.scala b/src/test/scala/firrtlTests/InferResetsSpec.scala
index 057fb3b0..e2867a81 100644
--- a/src/test/scala/firrtlTests/InferResetsSpec.scala
+++ b/src/test/scala/firrtlTests/InferResetsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/InfoSpec.scala b/src/test/scala/firrtlTests/InfoSpec.scala
index 172ddfb9..43fb6ee1 100644
--- a/src/test/scala/firrtlTests/InfoSpec.scala
+++ b/src/test/scala/firrtlTests/InfoSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/InlineBooleanExpressionsSpec.scala b/src/test/scala/firrtlTests/InlineBooleanExpressionsSpec.scala
index d7c79836..02ac3cd0 100644
--- a/src/test/scala/firrtlTests/InlineBooleanExpressionsSpec.scala
+++ b/src/test/scala/firrtlTests/InlineBooleanExpressionsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/InlineCastsSpec.scala b/src/test/scala/firrtlTests/InlineCastsSpec.scala
index 1bf36b33..e27020e5 100644
--- a/src/test/scala/firrtlTests/InlineCastsSpec.scala
+++ b/src/test/scala/firrtlTests/InlineCastsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/InlineInstancesTests.scala b/src/test/scala/firrtlTests/InlineInstancesTests.scala
index e4f711ed..6bee2b77 100644
--- a/src/test/scala/firrtlTests/InlineInstancesTests.scala
+++ b/src/test/scala/firrtlTests/InlineInstancesTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/IntegrationSpec.scala b/src/test/scala/firrtlTests/IntegrationSpec.scala
index ff21a90b..07d7ec05 100644
--- a/src/test/scala/firrtlTests/IntegrationSpec.scala
+++ b/src/test/scala/firrtlTests/IntegrationSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/LegalizeSpec.scala b/src/test/scala/firrtlTests/LegalizeSpec.scala
index aa6458ba..905d578e 100644
--- a/src/test/scala/firrtlTests/LegalizeSpec.scala
+++ b/src/test/scala/firrtlTests/LegalizeSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/LowerTypesSpec.scala b/src/test/scala/firrtlTests/LowerTypesSpec.scala
index 0d020252..9e58b74c 100644
--- a/src/test/scala/firrtlTests/LowerTypesSpec.scala
+++ b/src/test/scala/firrtlTests/LowerTypesSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/LoweringCompilersSpec.scala b/src/test/scala/firrtlTests/LoweringCompilersSpec.scala
index 40f8f123..ffaaf332 100644
--- a/src/test/scala/firrtlTests/LoweringCompilersSpec.scala
+++ b/src/test/scala/firrtlTests/LoweringCompilersSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/MemEnFeedbackSpec.scala b/src/test/scala/firrtlTests/MemEnFeedbackSpec.scala
index 0f01ca25..55e508aa 100644
--- a/src/test/scala/firrtlTests/MemEnFeedbackSpec.scala
+++ b/src/test/scala/firrtlTests/MemEnFeedbackSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/MemLatencySpec.scala b/src/test/scala/firrtlTests/MemLatencySpec.scala
index 8a04eeef..ef2fa120 100644
--- a/src/test/scala/firrtlTests/MemLatencySpec.scala
+++ b/src/test/scala/firrtlTests/MemLatencySpec.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests
import firrtlTests.execution._
diff --git a/src/test/scala/firrtlTests/MemSpec.scala b/src/test/scala/firrtlTests/MemSpec.scala
index e05aca86..7bcd4eff 100644
--- a/src/test/scala/firrtlTests/MemSpec.scala
+++ b/src/test/scala/firrtlTests/MemSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/MemoryInitSpec.scala b/src/test/scala/firrtlTests/MemoryInitSpec.scala
index 984bf0b4..18f2b7ff 100644
--- a/src/test/scala/firrtlTests/MemoryInitSpec.scala
+++ b/src/test/scala/firrtlTests/MemoryInitSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/MultiThreadingSpec.scala b/src/test/scala/firrtlTests/MultiThreadingSpec.scala
index 6ec1a2bd..996ede41 100644
--- a/src/test/scala/firrtlTests/MultiThreadingSpec.scala
+++ b/src/test/scala/firrtlTests/MultiThreadingSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/NamespaceSpec.scala b/src/test/scala/firrtlTests/NamespaceSpec.scala
index bf7cb019..4c4605b0 100644
--- a/src/test/scala/firrtlTests/NamespaceSpec.scala
+++ b/src/test/scala/firrtlTests/NamespaceSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ParserSpec.scala b/src/test/scala/firrtlTests/ParserSpec.scala
index 25e52e57..373b960c 100644
--- a/src/test/scala/firrtlTests/ParserSpec.scala
+++ b/src/test/scala/firrtlTests/ParserSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/PresetSpec.scala b/src/test/scala/firrtlTests/PresetSpec.scala
index 9fa64647..369a2776 100644
--- a/src/test/scala/firrtlTests/PresetSpec.scala
+++ b/src/test/scala/firrtlTests/PresetSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ProtoBufSpec.scala b/src/test/scala/firrtlTests/ProtoBufSpec.scala
index 7cfdc4dc..d56ef7b1 100644
--- a/src/test/scala/firrtlTests/ProtoBufSpec.scala
+++ b/src/test/scala/firrtlTests/ProtoBufSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/RegisterUpdateSpec.scala b/src/test/scala/firrtlTests/RegisterUpdateSpec.scala
index d335becc..3b03e127 100644
--- a/src/test/scala/firrtlTests/RegisterUpdateSpec.scala
+++ b/src/test/scala/firrtlTests/RegisterUpdateSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/RemoveWiresSpec.scala b/src/test/scala/firrtlTests/RemoveWiresSpec.scala
index 3438da67..48eaaa65 100644
--- a/src/test/scala/firrtlTests/RemoveWiresSpec.scala
+++ b/src/test/scala/firrtlTests/RemoveWiresSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/RenameMapSpec.scala b/src/test/scala/firrtlTests/RenameMapSpec.scala
index 609d8eef..29466c72 100644
--- a/src/test/scala/firrtlTests/RenameMapSpec.scala
+++ b/src/test/scala/firrtlTests/RenameMapSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ReplSeqMemTests.scala b/src/test/scala/firrtlTests/ReplSeqMemTests.scala
index 13eb63e2..d21f80c8 100644
--- a/src/test/scala/firrtlTests/ReplSeqMemTests.scala
+++ b/src/test/scala/firrtlTests/ReplSeqMemTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ReplaceAccessesSpec.scala b/src/test/scala/firrtlTests/ReplaceAccessesSpec.scala
index 588b7c39..2ab65e2d 100644
--- a/src/test/scala/firrtlTests/ReplaceAccessesSpec.scala
+++ b/src/test/scala/firrtlTests/ReplaceAccessesSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ReplaceTruncatingArithmeticSpec.scala b/src/test/scala/firrtlTests/ReplaceTruncatingArithmeticSpec.scala
index ea01ca00..34693d66 100644
--- a/src/test/scala/firrtlTests/ReplaceTruncatingArithmeticSpec.scala
+++ b/src/test/scala/firrtlTests/ReplaceTruncatingArithmeticSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/SerializerSpec.scala b/src/test/scala/firrtlTests/SerializerSpec.scala
index 750759dc..e8245872 100644
--- a/src/test/scala/firrtlTests/SerializerSpec.scala
+++ b/src/test/scala/firrtlTests/SerializerSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/SimplifyMemsSpec.scala b/src/test/scala/firrtlTests/SimplifyMemsSpec.scala
index c7d04d46..65222b85 100644
--- a/src/test/scala/firrtlTests/SimplifyMemsSpec.scala
+++ b/src/test/scala/firrtlTests/SimplifyMemsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/StringSpec.scala b/src/test/scala/firrtlTests/StringSpec.scala
index fc2fa486..7ce128be 100644
--- a/src/test/scala/firrtlTests/StringSpec.scala
+++ b/src/test/scala/firrtlTests/StringSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/UniquifySpec.scala b/src/test/scala/firrtlTests/UniquifySpec.scala
index 19ae75fc..30d7e6dc 100644
--- a/src/test/scala/firrtlTests/UniquifySpec.scala
+++ b/src/test/scala/firrtlTests/UniquifySpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/UnitTests.scala b/src/test/scala/firrtlTests/UnitTests.scala
index a864bfe5..0a0df355 100644
--- a/src/test/scala/firrtlTests/UnitTests.scala
+++ b/src/test/scala/firrtlTests/UnitTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/UtilsSpec.scala b/src/test/scala/firrtlTests/UtilsSpec.scala
index 483b7dbd..99f1ffd0 100644
--- a/src/test/scala/firrtlTests/UtilsSpec.scala
+++ b/src/test/scala/firrtlTests/UtilsSpec.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests
import firrtl._
diff --git a/src/test/scala/firrtlTests/VerilogEmitterTests.scala b/src/test/scala/firrtlTests/VerilogEmitterTests.scala
index 0a5c2c29..7001a724 100644
--- a/src/test/scala/firrtlTests/VerilogEmitterTests.scala
+++ b/src/test/scala/firrtlTests/VerilogEmitterTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/VerilogMemDelaySpec.scala b/src/test/scala/firrtlTests/VerilogMemDelaySpec.scala
index 52f9ee36..66b2cf9e 100644
--- a/src/test/scala/firrtlTests/VerilogMemDelaySpec.scala
+++ b/src/test/scala/firrtlTests/VerilogMemDelaySpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/WidthSpec.scala b/src/test/scala/firrtlTests/WidthSpec.scala
index b8fb3955..08a0faf1 100644
--- a/src/test/scala/firrtlTests/WidthSpec.scala
+++ b/src/test/scala/firrtlTests/WidthSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/WiringTests.scala b/src/test/scala/firrtlTests/WiringTests.scala
index 0c5be2e0..51c7090c 100644
--- a/src/test/scala/firrtlTests/WiringTests.scala
+++ b/src/test/scala/firrtlTests/WiringTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ZeroLengthVecsSpec.scala b/src/test/scala/firrtlTests/ZeroLengthVecsSpec.scala
index 48eb24c1..bc7af510 100644
--- a/src/test/scala/firrtlTests/ZeroLengthVecsSpec.scala
+++ b/src/test/scala/firrtlTests/ZeroLengthVecsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/ZeroWidthTests.scala b/src/test/scala/firrtlTests/ZeroWidthTests.scala
index 3c3df5ca..99ebbdd3 100644
--- a/src/test/scala/firrtlTests/ZeroWidthTests.scala
+++ b/src/test/scala/firrtlTests/ZeroWidthTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
diff --git a/src/test/scala/firrtlTests/analyses/CircuitGraphSpec.scala b/src/test/scala/firrtlTests/analyses/CircuitGraphSpec.scala
index 0f0d5d47..dc06650d 100644
--- a/src/test/scala/firrtlTests/analyses/CircuitGraphSpec.scala
+++ b/src/test/scala/firrtlTests/analyses/CircuitGraphSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.analyses
diff --git a/src/test/scala/firrtlTests/analyses/ConnectionGraphSpec.scala b/src/test/scala/firrtlTests/analyses/ConnectionGraphSpec.scala
index e08b7efc..ec1f0ba9 100644
--- a/src/test/scala/firrtlTests/analyses/ConnectionGraphSpec.scala
+++ b/src/test/scala/firrtlTests/analyses/ConnectionGraphSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.analyses
diff --git a/src/test/scala/firrtlTests/analyses/IRLookupSpec.scala b/src/test/scala/firrtlTests/analyses/IRLookupSpec.scala
index b1e9fd73..e58e944e 100644
--- a/src/test/scala/firrtlTests/analyses/IRLookupSpec.scala
+++ b/src/test/scala/firrtlTests/analyses/IRLookupSpec.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests.analyses
import firrtl.PrimOps.AsUInt
diff --git a/src/test/scala/firrtlTests/analyses/InstanceGraphTests.scala b/src/test/scala/firrtlTests/analyses/InstanceGraphTests.scala
index e134f6e5..4827d4ce 100644
--- a/src/test/scala/firrtlTests/analyses/InstanceGraphTests.scala
+++ b/src/test/scala/firrtlTests/analyses/InstanceGraphTests.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests.analyses
import firrtl.annotations.TargetToken.OfModule
diff --git a/src/test/scala/firrtlTests/analyses/InstanceKeyGraphSpec.scala b/src/test/scala/firrtlTests/analyses/InstanceKeyGraphSpec.scala
index 1e486fe4..606d74c8 100644
--- a/src/test/scala/firrtlTests/analyses/InstanceKeyGraphSpec.scala
+++ b/src/test/scala/firrtlTests/analyses/InstanceKeyGraphSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.analyses
diff --git a/src/test/scala/firrtlTests/annotationTests/CleanupNamedTargetsSpec.scala b/src/test/scala/firrtlTests/annotationTests/CleanupNamedTargetsSpec.scala
index 67408bb7..873b2383 100644
--- a/src/test/scala/firrtlTests/annotationTests/CleanupNamedTargetsSpec.scala
+++ b/src/test/scala/firrtlTests/annotationTests/CleanupNamedTargetsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.annotationTests
diff --git a/src/test/scala/firrtlTests/annotationTests/EliminateTargetPathsSpec.scala b/src/test/scala/firrtlTests/annotationTests/EliminateTargetPathsSpec.scala
index 56079c31..5c359463 100644
--- a/src/test/scala/firrtlTests/annotationTests/EliminateTargetPathsSpec.scala
+++ b/src/test/scala/firrtlTests/annotationTests/EliminateTargetPathsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.annotationTests
diff --git a/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala b/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala
index 44ad7d1f..6dd018eb 100644
--- a/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala
+++ b/src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.annotationTests
diff --git a/src/test/scala/firrtlTests/annotationTests/LoadMemoryAnnotationSpec.scala b/src/test/scala/firrtlTests/annotationTests/LoadMemoryAnnotationSpec.scala
index 5fa345bf..2764a96f 100644
--- a/src/test/scala/firrtlTests/annotationTests/LoadMemoryAnnotationSpec.scala
+++ b/src/test/scala/firrtlTests/annotationTests/LoadMemoryAnnotationSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.annotationTests
diff --git a/src/test/scala/firrtlTests/annotationTests/MorphismSpec.scala b/src/test/scala/firrtlTests/annotationTests/MorphismSpec.scala
index ac4f2b63..02b03729 100644
--- a/src/test/scala/firrtlTests/annotationTests/MorphismSpec.scala
+++ b/src/test/scala/firrtlTests/annotationTests/MorphismSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.annotationTests
diff --git a/src/test/scala/firrtlTests/annotationTests/TargetDirAnnotationSpec.scala b/src/test/scala/firrtlTests/annotationTests/TargetDirAnnotationSpec.scala
index cc875ea1..b40ecc58 100644
--- a/src/test/scala/firrtlTests/annotationTests/TargetDirAnnotationSpec.scala
+++ b/src/test/scala/firrtlTests/annotationTests/TargetDirAnnotationSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
package annotationTests
diff --git a/src/test/scala/firrtlTests/annotationTests/TargetSpec.scala b/src/test/scala/firrtlTests/annotationTests/TargetSpec.scala
index 48f27faa..47555f43 100644
--- a/src/test/scala/firrtlTests/annotationTests/TargetSpec.scala
+++ b/src/test/scala/firrtlTests/annotationTests/TargetSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.annotationTests
diff --git a/src/test/scala/firrtlTests/constraint/InequalitySpec.scala b/src/test/scala/firrtlTests/constraint/InequalitySpec.scala
index 68db6873..24206c9e 100644
--- a/src/test/scala/firrtlTests/constraint/InequalitySpec.scala
+++ b/src/test/scala/firrtlTests/constraint/InequalitySpec.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests.constraint
import firrtl.constraint._
diff --git a/src/test/scala/firrtlTests/execution/ExecutionTestHelper.scala b/src/test/scala/firrtlTests/execution/ExecutionTestHelper.scala
index 0a50e53e..25947d9f 100644
--- a/src/test/scala/firrtlTests/execution/ExecutionTestHelper.scala
+++ b/src/test/scala/firrtlTests/execution/ExecutionTestHelper.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests.execution
import firrtl._
diff --git a/src/test/scala/firrtlTests/execution/ParserHelpers.scala b/src/test/scala/firrtlTests/execution/ParserHelpers.scala
index 1f74d634..c5561059 100644
--- a/src/test/scala/firrtlTests/execution/ParserHelpers.scala
+++ b/src/test/scala/firrtlTests/execution/ParserHelpers.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests.execution
import firrtl._
diff --git a/src/test/scala/firrtlTests/execution/SimpleExecutionTest.scala b/src/test/scala/firrtlTests/execution/SimpleExecutionTest.scala
index 911f7485..84872ebe 100644
--- a/src/test/scala/firrtlTests/execution/SimpleExecutionTest.scala
+++ b/src/test/scala/firrtlTests/execution/SimpleExecutionTest.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests.execution
import java.io.File
diff --git a/src/test/scala/firrtlTests/execution/VerilogExecution.scala b/src/test/scala/firrtlTests/execution/VerilogExecution.scala
index 913cfc71..fe6e1832 100644
--- a/src/test/scala/firrtlTests/execution/VerilogExecution.scala
+++ b/src/test/scala/firrtlTests/execution/VerilogExecution.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests.execution
import java.io.File
diff --git a/src/test/scala/firrtlTests/features/LetterCaseTransformSpec.scala b/src/test/scala/firrtlTests/features/LetterCaseTransformSpec.scala
index 7ab80387..71b7ec53 100644
--- a/src/test/scala/firrtlTests/features/LetterCaseTransformSpec.scala
+++ b/src/test/scala/firrtlTests/features/LetterCaseTransformSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.features
diff --git a/src/test/scala/firrtlTests/fixed/FixedPointMathSpec.scala b/src/test/scala/firrtlTests/fixed/FixedPointMathSpec.scala
index a41ac90a..fa630b84 100644
--- a/src/test/scala/firrtlTests/fixed/FixedPointMathSpec.scala
+++ b/src/test/scala/firrtlTests/fixed/FixedPointMathSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.fixed
diff --git a/src/test/scala/firrtlTests/fixed/FixedSerializationSpec.scala b/src/test/scala/firrtlTests/fixed/FixedSerializationSpec.scala
index 68125bc0..6981b82b 100644
--- a/src/test/scala/firrtlTests/fixed/FixedSerializationSpec.scala
+++ b/src/test/scala/firrtlTests/fixed/FixedSerializationSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
package fixed
diff --git a/src/test/scala/firrtlTests/fixed/FixedTypeInferenceSpec.scala b/src/test/scala/firrtlTests/fixed/FixedTypeInferenceSpec.scala
index 4d3dbe98..4db10f6b 100644
--- a/src/test/scala/firrtlTests/fixed/FixedTypeInferenceSpec.scala
+++ b/src/test/scala/firrtlTests/fixed/FixedTypeInferenceSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
package fixed
diff --git a/src/test/scala/firrtlTests/fixed/RemoveFixedTypeSpec.scala b/src/test/scala/firrtlTests/fixed/RemoveFixedTypeSpec.scala
index d0218b11..f9324f80 100644
--- a/src/test/scala/firrtlTests/fixed/RemoveFixedTypeSpec.scala
+++ b/src/test/scala/firrtlTests/fixed/RemoveFixedTypeSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
package fixed
diff --git a/src/test/scala/firrtlTests/formal/AssertSubmoduleAssumptionsSpec.scala b/src/test/scala/firrtlTests/formal/AssertSubmoduleAssumptionsSpec.scala
index e413a70d..9d7bff3d 100644
--- a/src/test/scala/firrtlTests/formal/AssertSubmoduleAssumptionsSpec.scala
+++ b/src/test/scala/firrtlTests/formal/AssertSubmoduleAssumptionsSpec.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests.formal
import firrtl.{CircuitState, Parser, Transform, UnknownForm}
diff --git a/src/test/scala/firrtlTests/formal/ConvertAssertsSpec.scala b/src/test/scala/firrtlTests/formal/ConvertAssertsSpec.scala
index 847c211e..f21f0878 100644
--- a/src/test/scala/firrtlTests/formal/ConvertAssertsSpec.scala
+++ b/src/test/scala/firrtlTests/formal/ConvertAssertsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.formal
diff --git a/src/test/scala/firrtlTests/formal/RemoveVerificationStatementsSpec.scala b/src/test/scala/firrtlTests/formal/RemoveVerificationStatementsSpec.scala
index 40d810c5..14befe03 100644
--- a/src/test/scala/firrtlTests/formal/RemoveVerificationStatementsSpec.scala
+++ b/src/test/scala/firrtlTests/formal/RemoveVerificationStatementsSpec.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests.formal
import firrtl.{CircuitState, Parser, Transform, UnknownForm}
diff --git a/src/test/scala/firrtlTests/formal/VerificationSpec.scala b/src/test/scala/firrtlTests/formal/VerificationSpec.scala
index a8e28c13..3ee743cd 100644
--- a/src/test/scala/firrtlTests/formal/VerificationSpec.scala
+++ b/src/test/scala/firrtlTests/formal/VerificationSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.formal
diff --git a/src/test/scala/firrtlTests/graph/DiGraphTests.scala b/src/test/scala/firrtlTests/graph/DiGraphTests.scala
index 0f5cf09c..45561f42 100644
--- a/src/test/scala/firrtlTests/graph/DiGraphTests.scala
+++ b/src/test/scala/firrtlTests/graph/DiGraphTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.graph
diff --git a/src/test/scala/firrtlTests/graph/EulerTourTests.scala b/src/test/scala/firrtlTests/graph/EulerTourTests.scala
index 703235af..30f7b803 100644
--- a/src/test/scala/firrtlTests/graph/EulerTourTests.scala
+++ b/src/test/scala/firrtlTests/graph/EulerTourTests.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests.graph
import firrtl.graph._
diff --git a/src/test/scala/firrtlTests/interval/IntervalMathSpec.scala b/src/test/scala/firrtlTests/interval/IntervalMathSpec.scala
index 74e6cabf..91040d3b 100644
--- a/src/test/scala/firrtlTests/interval/IntervalMathSpec.scala
+++ b/src/test/scala/firrtlTests/interval/IntervalMathSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.interval
diff --git a/src/test/scala/firrtlTests/interval/IntervalSpec.scala b/src/test/scala/firrtlTests/interval/IntervalSpec.scala
index 1a39e98e..16507bc3 100644
--- a/src/test/scala/firrtlTests/interval/IntervalSpec.scala
+++ b/src/test/scala/firrtlTests/interval/IntervalSpec.scala
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: Apache-2.0
+
package firrtlTests
package interval
diff --git a/src/test/scala/firrtlTests/options/OptionParserSpec.scala b/src/test/scala/firrtlTests/options/OptionParserSpec.scala
index 452e6cb7..dcbd9d9c 100644
--- a/src/test/scala/firrtlTests/options/OptionParserSpec.scala
+++ b/src/test/scala/firrtlTests/options/OptionParserSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.options
diff --git a/src/test/scala/firrtlTests/options/OptionsViewSpec.scala b/src/test/scala/firrtlTests/options/OptionsViewSpec.scala
index 504dcdf6..9f73a0a6 100644
--- a/src/test/scala/firrtlTests/options/OptionsViewSpec.scala
+++ b/src/test/scala/firrtlTests/options/OptionsViewSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.options
diff --git a/src/test/scala/firrtlTests/options/PhaseManagerSpec.scala b/src/test/scala/firrtlTests/options/PhaseManagerSpec.scala
index f31b96fd..0a89c285 100644
--- a/src/test/scala/firrtlTests/options/PhaseManagerSpec.scala
+++ b/src/test/scala/firrtlTests/options/PhaseManagerSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.options
diff --git a/src/test/scala/firrtlTests/options/RegistrationSpec.scala b/src/test/scala/firrtlTests/options/RegistrationSpec.scala
index 821ac8b3..672ead42 100644
--- a/src/test/scala/firrtlTests/options/RegistrationSpec.scala
+++ b/src/test/scala/firrtlTests/options/RegistrationSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.options
diff --git a/src/test/scala/firrtlTests/options/ShellSpec.scala b/src/test/scala/firrtlTests/options/ShellSpec.scala
index 178b1128..cb84439b 100644
--- a/src/test/scala/firrtlTests/options/ShellSpec.scala
+++ b/src/test/scala/firrtlTests/options/ShellSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.options
diff --git a/src/test/scala/firrtlTests/options/phases/AddDefaultsSpec.scala b/src/test/scala/firrtlTests/options/phases/AddDefaultsSpec.scala
index f625f991..5418e993 100644
--- a/src/test/scala/firrtlTests/options/phases/AddDefaultsSpec.scala
+++ b/src/test/scala/firrtlTests/options/phases/AddDefaultsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.options.phases
diff --git a/src/test/scala/firrtlTests/options/phases/ChecksSpec.scala b/src/test/scala/firrtlTests/options/phases/ChecksSpec.scala
index 62afed94..d8ad7e17 100644
--- a/src/test/scala/firrtlTests/options/phases/ChecksSpec.scala
+++ b/src/test/scala/firrtlTests/options/phases/ChecksSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.options.phases
diff --git a/src/test/scala/firrtlTests/options/phases/GetIncludesSpec.scala b/src/test/scala/firrtlTests/options/phases/GetIncludesSpec.scala
index 95c2a435..54129269 100644
--- a/src/test/scala/firrtlTests/options/phases/GetIncludesSpec.scala
+++ b/src/test/scala/firrtlTests/options/phases/GetIncludesSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.options.phases
diff --git a/src/test/scala/firrtlTests/options/phases/WriteOutputAnnotationsSpec.scala b/src/test/scala/firrtlTests/options/phases/WriteOutputAnnotationsSpec.scala
index 5fa9d9ef..e9b84540 100644
--- a/src/test/scala/firrtlTests/options/phases/WriteOutputAnnotationsSpec.scala
+++ b/src/test/scala/firrtlTests/options/phases/WriteOutputAnnotationsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.options.phases
diff --git a/src/test/scala/firrtlTests/passes/InferTypesFlowsAndKindsSpec.scala b/src/test/scala/firrtlTests/passes/InferTypesFlowsAndKindsSpec.scala
index b628c1b7..3c17a894 100644
--- a/src/test/scala/firrtlTests/passes/InferTypesFlowsAndKindsSpec.scala
+++ b/src/test/scala/firrtlTests/passes/InferTypesFlowsAndKindsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.passes
diff --git a/src/test/scala/firrtlTests/stage/FirrtlCliSpec.scala b/src/test/scala/firrtlTests/stage/FirrtlCliSpec.scala
index d4caa546..6365a1fa 100644
--- a/src/test/scala/firrtlTests/stage/FirrtlCliSpec.scala
+++ b/src/test/scala/firrtlTests/stage/FirrtlCliSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.stage
diff --git a/src/test/scala/firrtlTests/stage/FirrtlMainSpec.scala b/src/test/scala/firrtlTests/stage/FirrtlMainSpec.scala
index bf4b790e..ea590d26 100644
--- a/src/test/scala/firrtlTests/stage/FirrtlMainSpec.scala
+++ b/src/test/scala/firrtlTests/stage/FirrtlMainSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.stage
diff --git a/src/test/scala/firrtlTests/stage/FirrtlOptionsViewSpec.scala b/src/test/scala/firrtlTests/stage/FirrtlOptionsViewSpec.scala
index 00aa8e6a..311f33a4 100644
--- a/src/test/scala/firrtlTests/stage/FirrtlOptionsViewSpec.scala
+++ b/src/test/scala/firrtlTests/stage/FirrtlOptionsViewSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.stage
diff --git a/src/test/scala/firrtlTests/stage/phases/AddCircuitSpec.scala b/src/test/scala/firrtlTests/stage/phases/AddCircuitSpec.scala
index aac18dee..92dc0d98 100644
--- a/src/test/scala/firrtlTests/stage/phases/AddCircuitSpec.scala
+++ b/src/test/scala/firrtlTests/stage/phases/AddCircuitSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.stage.phases
diff --git a/src/test/scala/firrtlTests/stage/phases/AddDefaultsSpec.scala b/src/test/scala/firrtlTests/stage/phases/AddDefaultsSpec.scala
index eca7b706..e30606f1 100644
--- a/src/test/scala/firrtlTests/stage/phases/AddDefaultsSpec.scala
+++ b/src/test/scala/firrtlTests/stage/phases/AddDefaultsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.stage.phases
diff --git a/src/test/scala/firrtlTests/stage/phases/AddImplicitEmitterSpec.scala b/src/test/scala/firrtlTests/stage/phases/AddImplicitEmitterSpec.scala
index 1252090b..21ca6215 100644
--- a/src/test/scala/firrtlTests/stage/phases/AddImplicitEmitterSpec.scala
+++ b/src/test/scala/firrtlTests/stage/phases/AddImplicitEmitterSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.stage.phases
diff --git a/src/test/scala/firrtlTests/stage/phases/AddImplicitOutputFileSpec.scala b/src/test/scala/firrtlTests/stage/phases/AddImplicitOutputFileSpec.scala
index 499b05ae..b0222610 100644
--- a/src/test/scala/firrtlTests/stage/phases/AddImplicitOutputFileSpec.scala
+++ b/src/test/scala/firrtlTests/stage/phases/AddImplicitOutputFileSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.stage.phases
diff --git a/src/test/scala/firrtlTests/stage/phases/ChecksSpec.scala b/src/test/scala/firrtlTests/stage/phases/ChecksSpec.scala
index 6c0335b9..9a30e28e 100644
--- a/src/test/scala/firrtlTests/stage/phases/ChecksSpec.scala
+++ b/src/test/scala/firrtlTests/stage/phases/ChecksSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.stage.phases
diff --git a/src/test/scala/firrtlTests/stage/phases/CompilerSpec.scala b/src/test/scala/firrtlTests/stage/phases/CompilerSpec.scala
index 12ec66c2..964e94d6 100644
--- a/src/test/scala/firrtlTests/stage/phases/CompilerSpec.scala
+++ b/src/test/scala/firrtlTests/stage/phases/CompilerSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.stage.phases
diff --git a/src/test/scala/firrtlTests/stage/phases/WriteEmittedSpec.scala b/src/test/scala/firrtlTests/stage/phases/WriteEmittedSpec.scala
index 73ee455d..8a2f8617 100644
--- a/src/test/scala/firrtlTests/stage/phases/WriteEmittedSpec.scala
+++ b/src/test/scala/firrtlTests/stage/phases/WriteEmittedSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.stage.phases
diff --git a/src/test/scala/firrtlTests/transforms/BlackBoxSourceHelperSpec.scala b/src/test/scala/firrtlTests/transforms/BlackBoxSourceHelperSpec.scala
index a52df4a9..81b5fd5d 100644
--- a/src/test/scala/firrtlTests/transforms/BlackBoxSourceHelperSpec.scala
+++ b/src/test/scala/firrtlTests/transforms/BlackBoxSourceHelperSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.transforms
diff --git a/src/test/scala/firrtlTests/transforms/CombineCatsSpec.scala b/src/test/scala/firrtlTests/transforms/CombineCatsSpec.scala
index cd0907dc..aff11467 100644
--- a/src/test/scala/firrtlTests/transforms/CombineCatsSpec.scala
+++ b/src/test/scala/firrtlTests/transforms/CombineCatsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.transforms
diff --git a/src/test/scala/firrtlTests/transforms/DedupTests.scala b/src/test/scala/firrtlTests/transforms/DedupTests.scala
index 8213cb84..9c7600f3 100644
--- a/src/test/scala/firrtlTests/transforms/DedupTests.scala
+++ b/src/test/scala/firrtlTests/transforms/DedupTests.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
package transforms
diff --git a/src/test/scala/firrtlTests/transforms/GroupComponentsSpec.scala b/src/test/scala/firrtlTests/transforms/GroupComponentsSpec.scala
index 65544764..da1a993b 100644
--- a/src/test/scala/firrtlTests/transforms/GroupComponentsSpec.scala
+++ b/src/test/scala/firrtlTests/transforms/GroupComponentsSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
package transforms
diff --git a/src/test/scala/firrtlTests/transforms/InferWidthsWithAnnosSpec.scala b/src/test/scala/firrtlTests/transforms/InferWidthsWithAnnosSpec.scala
index 0043cb1f..30e4946a 100644
--- a/src/test/scala/firrtlTests/transforms/InferWidthsWithAnnosSpec.scala
+++ b/src/test/scala/firrtlTests/transforms/InferWidthsWithAnnosSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.transforms
diff --git a/src/test/scala/firrtlTests/transforms/LegalizeClocksAndAsyncResets.scala b/src/test/scala/firrtlTests/transforms/LegalizeClocksAndAsyncResets.scala
index 544f95e0..d28fbcc2 100644
--- a/src/test/scala/firrtlTests/transforms/LegalizeClocksAndAsyncResets.scala
+++ b/src/test/scala/firrtlTests/transforms/LegalizeClocksAndAsyncResets.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.transforms
diff --git a/src/test/scala/firrtlTests/transforms/LegalizeReductions.scala b/src/test/scala/firrtlTests/transforms/LegalizeReductions.scala
index 3df47f1d..ce904e28 100644
--- a/src/test/scala/firrtlTests/transforms/LegalizeReductions.scala
+++ b/src/test/scala/firrtlTests/transforms/LegalizeReductions.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.transforms
diff --git a/src/test/scala/firrtlTests/transforms/ManipulateNamesSpec.scala b/src/test/scala/firrtlTests/transforms/ManipulateNamesSpec.scala
index a616b4bd..fb516626 100644
--- a/src/test/scala/firrtlTests/transforms/ManipulateNamesSpec.scala
+++ b/src/test/scala/firrtlTests/transforms/ManipulateNamesSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.transforms
diff --git a/src/test/scala/firrtlTests/transforms/RemoveResetSpec.scala b/src/test/scala/firrtlTests/transforms/RemoveResetSpec.scala
index d603db69..1adeeed8 100644
--- a/src/test/scala/firrtlTests/transforms/RemoveResetSpec.scala
+++ b/src/test/scala/firrtlTests/transforms/RemoveResetSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests.transforms
diff --git a/src/test/scala/firrtlTests/transforms/TopWiringTest.scala b/src/test/scala/firrtlTests/transforms/TopWiringTest.scala
index 97fafe41..eb404393 100644
--- a/src/test/scala/firrtlTests/transforms/TopWiringTest.scala
+++ b/src/test/scala/firrtlTests/transforms/TopWiringTest.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package firrtlTests
package transforms
diff --git a/src/test/scala/loggertests/LoggerSpec.scala b/src/test/scala/loggertests/LoggerSpec.scala
index 553f4966..d9feb931 100644
--- a/src/test/scala/loggertests/LoggerSpec.scala
+++ b/src/test/scala/loggertests/LoggerSpec.scala
@@ -1,4 +1,4 @@
-// See LICENSE for license details.
+// SPDX-License-Identifier: Apache-2.0
package loggertests
diff --git a/test/integration/GCDTester.fir b/test/integration/GCDTester.fir
index f236ecdc..2d4f479b 100644
--- a/test/integration/GCDTester.fir
+++ b/test/integration/GCDTester.fir
@@ -1,4 +1,5 @@
-circuit GCDTester :
+; SPDX-License-Identifier: Apache-2.0
+circuit GCDTester :
module DecoupledGCD :
input clock : Clock
input reset : UInt<1>
diff --git a/test/integration/MemTester.fir b/test/integration/MemTester.fir
index f3d04be4..68e08544 100644
--- a/test/integration/MemTester.fir
+++ b/test/integration/MemTester.fir
@@ -1,4 +1,4 @@
-
+; SPDX-License-Identifier: Apache-2.0
circuit MemTester :
module ReadWrite :
input clock : Clock
diff --git a/test/integration/PipeTester.fir b/test/integration/PipeTester.fir
index 3ca2f001..44c33774 100644
--- a/test/integration/PipeTester.fir
+++ b/test/integration/PipeTester.fir
@@ -1,4 +1,4 @@
-
+; SPDX-License-Identifier: Apache-2.0
circuit PipeTester :
; This module should simply delay a signal by 2 cycles
; Internal registers reset to 0
diff --git a/test/integration/RightShiftTester.fir b/test/integration/RightShiftTester.fir
index d85757b8..92c4bb9e 100644
--- a/test/integration/RightShiftTester.fir
+++ b/test/integration/RightShiftTester.fir
@@ -1,4 +1,5 @@
-circuit RightShiftTester :
+; SPDX-License-Identifier: Apache-2.0
+circuit RightShiftTester :
module RightShift :
input clock : Clock
input reset : UInt<1>