blob: 240c2c9ad65d607fdff5e1775c591e304e934cdb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
// SPDX-License-Identifier: Apache-2.0
package firrtl
package passes
package memlib
import firrtl.Utils.error
import firrtl.stage.Forms
import java.io.File
class CreateMemoryAnnotations extends Transform with DependencyAPIMigration {
override def prerequisites = Forms.MidForm
override def optionalPrerequisites = Seq.empty
override def optionalPrerequisiteOf = Forms.MidEmitters
override def invalidates(a: Transform) = false
def execute(state: CircuitState): CircuitState = {
state.copy(annotations = state.annotations.flatMap {
case ReplSeqMemAnnotation(inputFileName, outputConfig) =>
Seq(MemLibOutConfigFileAnnotation(outputConfig, Nil)) ++ {
if (inputFileName.isEmpty) None
else if (new File(inputFileName).exists) {
import CustomYAMLProtocol._
Some(PinAnnotation(new YamlFileReader(inputFileName).parse[Config].map(_.pin.name)))
} else error("Input configuration file does not exist!")
}
case a => Seq(a)
})
}
}
|