diff options
| author | Jack Koenig | 2019-05-24 14:37:52 -0700 |
|---|---|---|
| committer | GitHub | 2019-05-24 14:37:52 -0700 |
| commit | 228c9a4b7432ac52178d63b8f27fe064aec71e9c (patch) | |
| tree | fd131f6c97fbfb8aab722af34fc1d174bfd93dc4 /src/test | |
| parent | 524b8957e36a7ac931ca0fe042a64fce80195057 (diff) | |
Emit legal Verilog literals for ExtModule IntParams > 32-bit (#1087)
Emit Verilog IntParams that fit in 32-bits as Integer literals
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/resources/blackboxes/LargeParam.v | 7 | ||||
| -rw-r--r-- | src/test/resources/blackboxes/LargeParamTester.fir | 43 | ||||
| -rw-r--r-- | src/test/scala/firrtlTests/ExtModuleSpec.scala | 1 |
3 files changed, 51 insertions, 0 deletions
diff --git a/src/test/resources/blackboxes/LargeParam.v b/src/test/resources/blackboxes/LargeParam.v new file mode 100644 index 00000000..84e1a1cf --- /dev/null +++ b/src/test/resources/blackboxes/LargeParam.v @@ -0,0 +1,7 @@ +// See LICENSE for license details. +module LargeParam #(parameter DATA=0, WIDTH=1) ( + output [WIDTH-1:0] out +); + assign out = DATA; +endmodule + diff --git a/src/test/resources/blackboxes/LargeParamTester.fir b/src/test/resources/blackboxes/LargeParamTester.fir new file mode 100644 index 00000000..bb0ebdf5 --- /dev/null +++ b/src/test/resources/blackboxes/LargeParamTester.fir @@ -0,0 +1,43 @@ +; See LICENSE for license details. +circuit LargeParamTester : + extmodule LargeParam : + output out : UInt<1> + + defname = LargeParam + parameter WIDTH = 1 + parameter DATA = 0 + + extmodule LargeParam_1 : + output out : UInt<128> + + defname = LargeParam + parameter WIDTH = 128 + parameter DATA = 9223372036854775807000 + + extmodule LargeParam_2 : + output out : SInt<128> + + defname = LargeParam + parameter WIDTH = 128 + parameter DATA = -9223372036854775807000 + + module LargeParamTester : + input clock : Clock + input reset : UInt<1> + + inst mod1 of LargeParam + inst mod2 of LargeParam_1 + inst mod3 of LargeParam_2 + + when not(reset) : + when neq(mod1.out, UInt(0)) : + printf(clock, UInt(1), "Assertion failed\nTest Failed!\n") + stop(clock, UInt(1), 1) + when neq(mod2.out, UInt<128>(9223372036854775807000)) : + printf(clock, UInt(1), "Assertion failed\nTest Failed!\n") + stop(clock, UInt(1), 1) + when neq(mod3.out, SInt<128>(-9223372036854775807000)) : + printf(clock, UInt(1), "Assertion failed\nTest Failed!\n") + stop(clock, UInt(1), 1) + stop(clock, UInt(1), 0) + diff --git a/src/test/scala/firrtlTests/ExtModuleSpec.scala b/src/test/scala/firrtlTests/ExtModuleSpec.scala index 598d6e3b..96668222 100644 --- a/src/test/scala/firrtlTests/ExtModuleSpec.scala +++ b/src/test/scala/firrtlTests/ExtModuleSpec.scala @@ -11,3 +11,4 @@ class RenamedExtModuleExecutionTest extends ExecutionTest("RenamedExtModuleTeste class ParameterizedExtModuleExecutionTest extends ExecutionTest( "ParameterizedExtModuleTester", "/blackboxes", Seq("ParameterizedExtModule")) +class LargeParamExecutionTest extends ExecutionTest("LargeParamTester", "/blackboxes", Seq("LargeParam")) |
