package coverage
- Alphabetic
- Public
- Protected
Type Members
- class CodeBase extends LazyLogging
Represents a Scala code base.
- trait CoverageInfo extends Annotation
Trait that needs to be extended by every custom coverage meta data annotation.
- case class DoNotCoverAnnotation(target: ModuleTarget) extends SingleTargetAnnotation[ModuleTarget] with Product with Serializable
Tags a module that should not have any coverage added.
Tags a module that should not have any coverage added. This annotation should be respected by all automated coverage passes.
- case class FsmCoverageAnnotation(stateReg: ReferenceTarget, states: Seq[(String, ReferenceTarget)], transitions: Seq[((String, String), ReferenceTarget)]) extends MultiTargetAnnotation with CoverageInfo with Product with Serializable
- case class FsmCoverageData(name: String, states: List[(String, Long)], transitions: List[((String, String), Long)]) extends Product with Serializable
- case class FsmInfoAnnotation(target: ReferenceTarget, states: Seq[(BigInt, String)], transitions: Seq[(BigInt, BigInt)], start: Option[BigInt]) extends SingleTargetAnnotation[ReferenceTarget] with Product with Serializable
- case class KeepClockAndResetAnnotation(target: ReferenceTarget) extends SingleTargetAnnotation[ReferenceTarget] with HasDontTouches with Product with Serializable
- case class LineCoverageAnnotation(target: ReferenceTarget, lines: Lines) extends SingleTargetAnnotation[ReferenceTarget] with CoverageInfo with Product with Serializable
- case class LineCoverageData(files: List[LineCoverageInFile]) extends Product with Serializable
- case class LineCoverageInFile(name: String, lines: List[(Int, Long)]) extends Product with Serializable
- case class ModuleInstancesAnnotation(instanceToModule: List[(String, String)]) extends NoTargetAnnotation with Product with Serializable
- case class RegisterResetAnnotation(registers: Seq[ReferenceTarget], reset: ReferenceTarget) extends MultiTargetAnnotation with HasDontTouches with Product with Serializable
- case class TestCoverage(counts: List[(String, Long)]) extends NoTargetAnnotation with Product with Serializable
Coverage counts returned from the simulator interface.
Coverage counts returned from the simulator interface. Each instance of a cover statement in the circuit is represented by its hierarchical path (relative to the main module) and the number of times the cover predicate and enable condition were true during a clock event.
This if our hierarchy looks like this:
- MainModule
- c0: ChildModule
- c1: ChildModule
And there is a single cover statement in
ChildModulenamedcover_0, then the counts might look like this:List("c0.cover_0" -> 3, "c1.cover_0" -> 5)
- Note
The maximum count value is implementation dependent. However, counts are guaranteed to be saturating. So the real count is always >= the reported count.
- MainModule
- case class ToggleCoverageAnnotation(target: ReferenceTarget, signals: List[ReferenceTarget], bit: Int) extends SingleTargetAnnotation[ReferenceTarget] with CoverageInfo with Product with Serializable
- case class ToggleCoverageData(inst: Seq[((String, String), Seq[(String, Seq[(Int, Long)])])]) extends Product with Serializable
Value Members
- object AliasAnalysis
Analyses which signals in a module always have the same value (are aliases of each other).
Analyses which signals in a module always have the same value (are aliases of each other).
- Note
will only work on low firrtl!
,right now this isn't an actual firrtl pass, but an analysis called into from a firrtl pass.
- object AllEmitters
- object Builder
Helps us construct well typed low-ish firrtl.
Helps us construct well typed low-ish firrtl. Some of these convenience functions could be moved to firrtl at some point.
- object CodeBase
- object Coverage
- object CoverageStatisticsPass extends Transform
Display information about all coverage instrumentation.
Display information about all coverage instrumentation. This pass does not modify the circuit itself, it only prints out some information. Make sure to set the log level at least to "info" to see the output.
- object FsmCoverage
- object FsmCoveragePass extends Transform
- object FsmInfoPass extends Transform
Annotates FSMs in the design with information about all available states and transitions.
- object KeepClockAndResetPass extends Transform
Marks all
clockandresetsignals as DontTouch so that they are not removed by Dead Code Elimination.Marks all
clockandresetsignals as DontTouch so that they are not removed by Dead Code Elimination. This makes adding coverage that relies on those pins being available easier. - object LineCoverage
- object LineCoveragePass extends Transform
- case object MemoryToggleCoverage extends NoTargetAnnotation with Product with Serializable
enables coverage of all memory port signals in the design
- object ModuleInstancesPass extends Transform
Generates a list of instance paths for every module: ModuleInstancesAnnotation This pass is used by the Verilator backend to convert cover points reported by Verilator into the common format.
Generates a list of instance paths for every module: ModuleInstancesAnnotation This pass is used by the Verilator backend to convert cover points reported by Verilator into the common format. It can also be useful for coverage metrics that want to convert the per instance counts reported into per module counts.
- case object PortToggleCoverage extends NoTargetAnnotation with Product with Serializable
enables coverage of all I/O ports in the design
- object RegisterResetAnnotationPass extends Transform
Ensures that all register resets are named signals that will be annotated and not removed.
- case object RegisterToggleCoverage extends NoTargetAnnotation with Product with Serializable
enables coverage of all register signals in the design
- object RemoveKeepClockAndResetAnnotations extends Transform
- case object SkipFsmCoverageAnnotation extends NoTargetAnnotation with Product with Serializable
- case object SkipLineCoverageAnnotation extends NoTargetAnnotation with Product with Serializable
- case object SkipToggleCoverageAnnotation extends NoTargetAnnotation with Product with Serializable
- object ToggleCoverage
- object ToggleCoveragePass extends Transform
- case object WireToggleCoverage extends NoTargetAnnotation with Product with Serializable
enables coverage of all wires in the design