diff options
| author | Nick Hynes | 2019-02-21 08:12:30 -0800 |
|---|---|---|
| committer | Adam Izraelevitz | 2019-02-21 08:12:30 -0800 |
| commit | 021ecd1029f74e176f30e509d56cd00c98669791 (patch) | |
| tree | 7c96571d8d20b2a7b3eb1a4dfc5b44083c08f377 /src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala | |
| parent | afdb780aeca80c1fed94dd20fd22037490169472 (diff) | |
Correctly handle dots in loaded memory paths (#984)
* Correctly handle dots in loaded memory paths
* Added test for loadmem filename
Diffstat (limited to 'src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala')
| -rw-r--r-- | src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala b/src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala index 52022f87..7c7ef096 100644 --- a/src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala +++ b/src/main/scala/firrtl/annotations/LoadMemoryAnnotation.scala @@ -2,6 +2,8 @@ package firrtl.annotations +import java.io.File + /** * Enumeration of the two types of readmem statements available in verilog */ @@ -33,26 +35,20 @@ case class LoadMemoryAnnotation( (name, "") case "" :: name :: Nil => // this case handles a filename that begins with dot and has no suffix ("." + name, "") - case other => - (other.reverse.tail.reverse.mkString("."), "." + other.last) - } - } - - def getFileName: String = { - originalMemoryNameOpt match { - case Some(originalMemoryName) => - if(target.name == originalMemoryName) { - prefix + suffix + case other => { + if (other.last.indexOf(File.separator) != -1) { + (fileName, "") + } else { + (other.reverse.tail.reverse.mkString("."), "." + other.last) } - else { - prefix + target.name.drop(originalMemoryName.length) + suffix - } - case _ => - fileName + } } } + def getPrefix: String = + prefix + originalMemoryNameOpt.map(n => target.name.drop(n.length)).getOrElse("") def getSuffix: String = suffix + def getFileName: String = getPrefix + getSuffix def duplicate(newNamed: Named): LoadMemoryAnnotation = { newNamed match { @@ -63,5 +59,3 @@ case class LoadMemoryAnnotation( } } } - - |
