[AutoCounter] DontTouch all signals

This commit is contained in:
David Biancolin 2020-03-05 11:28:02 -08:00
parent c91e6fad1f
commit 644fde8a67
2 changed files with 7 additions and 6 deletions

View File

@ -31,6 +31,9 @@ class FireSimPropertyLibrary extends BasePropertyLibrary {
def generateProperty(prop_param: BasePropertyParameters)(implicit sourceInfo: SourceInfo) {
//requireIsHardware(prop_param.cond, "condition covered for counter is not hardware!")
if (!(prop_param.cond.isLit) && chisel3.experimental.DataMirror.internal.isSynthesizable(prop_param.cond)) {
dontTouch(prop_param.cond)
dontTouch(chisel3.Module.reset)
dontTouch(chisel3.Module.clock)
annotate(new ChiselAnnotation {
val implicitClock = chisel3.Module.clock
val implicitReset = chisel3.Module.reset

View File

@ -202,13 +202,11 @@ object PerfCounter {
reset: Reset,
label: String,
message: String): Unit = {
//Biancolin: WIP. Move the reset-driven gate into FIRRTL
val predicate = !reset.toBool && target
predicate.suggestName(label)
dontTouch(predicate)
dontTouch(reset)
dontTouch(target)
annotate(new ChiselAnnotation {
def toFirrtl = AutoCounterFirrtlAnnotation(predicate.toNamed.toTarget, clock.toNamed.toTarget,
reset.toNamed.toTarget, label, message)
def toFirrtl = AutoCounterFirrtlAnnotation(target.toTarget, clock.toTarget,
reset.toTarget, label, message)
})
}