diff options
| author | Andrew Waterman | 2016-01-28 12:26:38 -0800 |
|---|---|---|
| committer | Andrew Waterman | 2016-01-28 12:26:38 -0800 |
| commit | f907fae9df8fccfc8c0a91941126e6627fceb84e (patch) | |
| tree | 11fb062f11c784287a0c63f933a0e3d9f863b702 /src/test | |
| parent | f9977fb4e5508032c3e17d201f747e71a32b9311 (diff) | |
| parent | a6cdcecb7920b661de09948609674b89f21b985f (diff) | |
Merge branch 'modrefactor'
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/scala/chiselTests/ParameterizedModule.scala | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/ParameterizedModule.scala b/src/test/scala/chiselTests/ParameterizedModule.scala new file mode 100644 index 00000000..f356cebd --- /dev/null +++ b/src/test/scala/chiselTests/ParameterizedModule.scala @@ -0,0 +1,41 @@ +// See LICENSE for license details. + +package chiselTests + +import org.scalatest._ +import Chisel._ +import Chisel.testers.BasicTester + +class ParameterizedModule(invert: Boolean) extends Module { + val io = new Bundle { + val in = new Bool(INPUT) + val out = new Bool(OUTPUT) + } + if (invert) { + io.out := !io.in + } else { + io.out := io.in + } +} + +/** A simple test to check Module deduplication doesn't affect correctness (two + * modules with the same name but different contents aren't aliased). Doesn't + * check that deduplication actually happens, though. + */ +class ParameterizedModuleTester() extends BasicTester { + val invert = Module(new ParameterizedModule(true)) + val noninvert = Module(new ParameterizedModule(false)) + + invert.io.in := Bool(true) + noninvert.io.in := Bool(true) + assert(invert.io.out === Bool(false)) + assert(noninvert.io.out === Bool(true)) + + stop() +} + +class ParameterizedModuleSpec extends ChiselFlatSpec { + "Different parameterized modules" should "have different behavior" in { + assert(execute{ new ParameterizedModuleTester() }) + } +} |
