diff --git a/nix/t1/conversion/sv-to-vcs-simulator.nix b/nix/t1/conversion/sv-to-vcs-simulator.nix index 91b59d9cc..6a27cc1d7 100644 --- a/nix/t1/conversion/sv-to-vcs-simulator.nix +++ b/nix/t1/conversion/sv-to-vcs-simulator.nix @@ -17,6 +17,10 @@ assert lib.assertMsg (builtins.typeOf vsrc == "list") "vsrc should be a list of file path"; assert lib.assertMsg (builtins.typeOf vcsLinkLibs == "list") "vcsLinkLibs should be list of strings"; +# Technically we could static link some libs and rtlink others, +# but currently we don't use it in such a way, so just assert it to catch error +assert lib.assertMsg (vcsLinkLibs != [] -> rtLinkDpiLib) "vcsLinkLibs and rtLinkDpiLib are both set"; + let # VCS simulation profiling # This is a debug feature, thus intentionally not exposed diff --git a/nix/t1/run/default.nix b/nix/t1/run/default.nix index 68a8743c6..1c5366a71 100644 --- a/nix/t1/run/default.nix +++ b/nix/t1/run/default.nix @@ -5,7 +5,6 @@ , verilator-emu , verilator-emu-trace , vcs-emu -, vcs-emu-rtlink , vcs-emu-cover , vcs-emu-trace , vcs-dpi-lib @@ -44,7 +43,7 @@ let vcs-emu = runEmu { inherit testCase; - emulator = vcs-emu-rtlink; + emulator = vcs-emu; }; vcs-emu-trace = runEmu { @@ -73,7 +72,7 @@ let vcs-prof-vcd = runFsdb2vcd (runEmu { inherit testCase; - emulator = vcs-emu-rtlink; + emulator = vcs-emu; emuExtraArgs = { vcsDpiLib = vcs-dpi-lib; }; diff --git a/nix/t1/t1.nix b/nix/t1/t1.nix index 5e93b491b..15ce5b426 100644 --- a/nix/t1/t1.nix +++ b/nix/t1/t1.nix @@ -140,17 +140,19 @@ forEachTop (topName: generator: self: { inherit (t1Scope) sim-checker; + # We do not use vcs-emu-static every day, + # but we may switch back to static once rtLink breaks + vcs-emu-static = self.vcs-emu.override { + mainProgram = "${topName}-vcs-simulator-static"; + vcsLinkLibs = [ "${self.vcs-dpi-lib}/lib/libdpi_${topName}.a" ]; + rtLinkDpiLib = null; + }; + vcs-emu = t1Scope.sv-to-vcs-simulator { mainProgram = "${topName}-vcs-simulator"; topModule = "TestBench"; rtl = self.rtl; vsrc = lib.filesystem.listFilesRecursive self.clean-vsrc.outPath; - vcsLinkLibs = [ "${self.vcs-dpi-lib}/lib/libdpi_${topName}.a" ]; - rtLinkDpiLib = self.vcs-dpi-lib; - }; - vcs-emu-rtlink = self.vcs-emu.override { - mainProgram = "${topName}-vcs-simulator-rtlink"; - vcsLinkLibs = [ ]; rtLinkDpiLib = self.vcs-dpi-lib; }; vcs-emu-cover = self.vcs-emu.override {