diff --git a/.gitignore b/.gitignore index 59408220..1b87efd9 100644 --- a/.gitignore +++ b/.gitignore @@ -344,3 +344,6 @@ hs_err_pid* # ignore lib from rocket build lib + +# bsp +.bsp/ diff --git a/.gitmodules b/.gitmodules index e60bee65..1c9f428d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "fixedpoint"] path = fixedpoint - url = https://github.com/ucb-bar/fixedpoint + url = https://github.com/ucb-bar/fixedpoint.git diff --git a/build.sbt b/build.sbt index 200e6c56..b536c008 100644 --- a/build.sbt +++ b/build.sbt @@ -5,17 +5,13 @@ enablePlugins(SiteScaladocPlugin) enablePlugins(GhpagesPlugin) val defaultVersions = Map( - "chisel3" -> "3.6-SNAPSHOT", - "chiseltest" -> "0.6-SNAPSHOT" + "chisel3" -> "3.6.0", + "chiseltest" -> "0.6.2" ) name := "dsptools" val commonSettings = Seq( - organization := "edu.berkeley.cs", - version := "1.6-SNAPSHOT", - git.remoteRepo := "git@github.com:ucb-bar/dsptools.git", - autoAPIMappings := true, scalaVersion := "2.13.10", scalacOptions ++= Seq("-encoding", "UTF-8", @@ -25,52 +21,15 @@ val commonSettings = Seq( "-language:reflectiveCalls", "-Xfatal-warnings", "-Ymacro-annotations"), - javacOptions ++= Seq("-source", "1.8", "-target", "1.8"), - pomExtra := (http://chisel.eecs.berkeley.edu/ - - - apache_v2 - https://opensource.org/licenses/Apache-2.0 - repo - - - - - grebe - Paul Rigge - http://www.eecs.berkeley.edu/~rigge/ - - - shunshou - Angie Wang - https://www.linkedin.com/in/angie-wang-ee/ - - - chick - Charles Markley - https://aspire.eecs.berkeley.edu/author/chick/ - - ), - publishTo := { - val v = version.value - val nexus = "https://oss.sonatype.org/" - if (v.trim.endsWith("SNAPSHOT")) { - Some("snapshots".at(nexus + "content/repositories/snapshots")) - } else { - Some("releases".at(nexus + "service/local/staging/deploy/maven2")) - } - }, - resolvers ++= Seq( - Resolver.sonatypeRepo("snapshots"), - Resolver.sonatypeRepo("releases") - ), + resolvers ++= Resolver.sonatypeOssRepos("snapshots"), + resolvers ++= Resolver.sonatypeOssRepos("releases"), libraryDependencies ++= { CrossVersion.partialVersion(scalaVersion.value) match { case Some((2, major)) if major <= 12 => Seq() - case _ => Seq("org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.3") + case _ => Seq("org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.4") } }, - libraryDependencies ++= Seq("chisel3", "chiseltest").map { dep: String => + libraryDependencies ++= Seq("chisel3").map { dep: String => "edu.berkeley.cs" %% dep % sys.props.getOrElse(dep + "Version", defaultVersions(dep)) }, addCompilerPlugin(("edu.berkeley.cs" %% "chisel3-plugin" % defaultVersions("chisel3")).cross(CrossVersion.full)), @@ -78,11 +37,52 @@ val commonSettings = Seq( val dsptoolsSettings = Seq( name := "dsptools", + organization := "edu.berkeley.cs", + version := "1.6-SNAPSHOT", + git.remoteRepo := "git@github.com:ucb-bar/dsptools.git", + autoAPIMappings := true, libraryDependencies ++= Seq( "org.typelevel" %% "spire" % "0.18.0", "org.scalanlp" %% "breeze" % "2.1.0", "org.scalatest" %% "scalatest" % "3.2.15" % "test" ), + libraryDependencies ++= Seq("chiseltest").map { dep: String => + "edu.berkeley.cs" %% dep % sys.props.getOrElse(dep + "Version", defaultVersions(dep)) + }, + pomExtra := http://chisel.eecs.berkeley.edu/ + + + apache_v2 + https://opensource.org/licenses/Apache-2.0 + repo + + + + + grebe + Paul Rigge + http://www.eecs.berkeley.edu/~rigge/ + + + shunshou + Angie Wang + https://www.linkedin.com/in/angie-wang-ee/ + + + chick + Charles Markley + https://aspire.eecs.berkeley.edu/author/chick/ + + , + publishTo := { + val v = version.value + val nexus = "https://oss.sonatype.org/" + if (v.trim.endsWith("SNAPSHOT")) { + Some("snapshots".at(nexus + "content/repositories/snapshots")) + } else { + Some("releases".at(nexus + "service/local/staging/deploy/maven2")) + } + }, ) val fixedpointSettings = Seq( @@ -94,7 +94,7 @@ val fixedpointSettings = Seq( publishMavenStyle := true -publishArtifact in Test := false +Test / publishArtifact := false pomIncludeRepository := { x => false } @@ -117,5 +117,5 @@ val dsptools = (project in file(".")) .dependsOn(fixedpoint) //.enablePlugins(BuildInfoPlugin) .enablePlugins(ScalaUnidocPlugin) - .settings(commonSettings: _*) - .settings(dsptoolsSettings: _*) + .settings(commonSettings) + .settings(dsptoolsSettings) diff --git a/project/build.properties b/project/build.properties index 0837f7a1..46e43a97 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.3.13 +sbt.version=1.8.2 diff --git a/src/main/scala/dsptools/misc/PeekPokeDspExtensions.scala b/src/main/scala/dsptools/misc/PeekPokeDspExtensions.scala index 68970b50..e28eccf6 100644 --- a/src/main/scala/dsptools/misc/PeekPokeDspExtensions.scala +++ b/src/main/scala/dsptools/misc/PeekPokeDspExtensions.scala @@ -13,15 +13,12 @@ import dsptools.numbers._ trait PeekPokeDspExtensions { this: PeekPokeTester[_] => - private def fixedName(node: FixedPoint): String = - node.instanceName.replace('.', '_') - private def dspPeek(node: Data): (Double, BigInt) = { val bi: BigInt = node match { // Unsigned bigint case r: DspReal => peek(r.node.asInstanceOf[Bits]) case b: Bits => peek(b.asInstanceOf[Bits]) - case f: FixedPoint => peek(fixedName(f)) + case f: FixedPoint => peek(f.asSInt.asInstanceOf[Bits]) } val (dblOut, bigIntOut) = node match { case _: DspReal => (DspTesterUtilities.bigIntBitsToDouble(bi), bi) @@ -62,7 +59,7 @@ trait PeekPokeDspExtensions { case f: FixedPoint => f.binaryPoint match { case KnownBinaryPoint(bp) => - poke(fixedName(f) /*f.asSInt.asInstanceOf[Bits]*/, FixedPoint.toBigInt(value, bp)) + poke(f.asSInt.asInstanceOf[Bits], FixedPoint.toBigInt(value, bp)) case _ => throw DspException("Must poke FixedPoint with known binary point") } case r: DspReal => poke(r.node.asInstanceOf[Bits], DspTesterUtilities.doubleToBigIntBits(value)) diff --git a/src/test/scala/dsptools/numbers/LnSpec.scala b/src/test/scala/dsptools/numbers/LnSpec.scala index ce957ff1..c3506c68 100644 --- a/src/test/scala/dsptools/numbers/LnSpec.scala +++ b/src/test/scala/dsptools/numbers/LnSpec.scala @@ -21,11 +21,12 @@ class LnTester(c: LnModule) extends PeekPokeTester(c) with PeekPokeDspExtensions poke(c.io.num, 11.0) private val x = peek(c.io.ln) println(s"poked 1.0 got $x expected ${math.log(11.0)}") - } + class LnSpec extends AnyFreeSpec with ChiselScalatestTester { "ln should work" in { test(new LnModule) + .withAnnotations(Seq(VerilatorBackendAnnotation)) .runPeekPoke(new LnTester(_)) } }