From cb6290539cb2b9fa4c392b99fa0574654e2db745 Mon Sep 17 00:00:00 2001 From: Howard Mao Date: Sat, 1 Jul 2017 19:58:31 -0700 Subject: [PATCH] add network simulation C++ code --- src/main/scala/example/Configs.scala | 17 ++++++++++++++--- testchipip | 2 +- verisim/Makefile | 6 ++++-- vsim/Makefile | 3 +++ 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main/scala/example/Configs.scala b/src/main/scala/example/Configs.scala index ae64aa85..4b4d915b 100644 --- a/src/main/scala/example/Configs.scala +++ b/src/main/scala/example/Configs.scala @@ -33,7 +33,7 @@ class WithSimBlockDevice extends Config((site, here, up) => { } }) -class WithSimpleNIC extends Config((site, here, up) => { +class WithLoopbackNIC extends Config((site, here, up) => { case BuildTop => (p: Parameters) => { val top = Module(LazyModule(new ExampleTopWithSimpleNIC()(p)).module) top.connectNicLoopback() @@ -41,6 +41,14 @@ class WithSimpleNIC extends Config((site, here, up) => { } }) +class WithSimNetwork extends Config((site, here, up) => { + case BuildTop => (p: Parameters) => { + val top = Module(LazyModule(new ExampleTopWithSimpleNIC()(p)).module) + top.connectSimNetwork() + top + } +}) + class BaseExampleConfig extends Config( new WithoutTLMonitors ++ new WithSerialAdapter ++ @@ -60,8 +68,11 @@ class SimBlockDeviceConfig extends Config( class BlockDeviceModelConfig extends Config( new WithBlockDevice ++ new WithBlockDeviceModel ++ new BaseExampleConfig) -class SimpleNICConfig extends Config( - new WithSimpleNIC ++ new BaseExampleConfig) +class LoopbackNICConfig extends Config( + new WithLoopbackNIC ++ new BaseExampleConfig) + +class SimNetworkConfig extends Config( + new WithSimNetwork ++ new BaseExampleConfig) class WithTwoTrackers extends WithNBlockDeviceTrackers(2) class WithFourTrackers extends WithNBlockDeviceTrackers(4) diff --git a/testchipip b/testchipip index 0df970e8..4e8e50aa 160000 --- a/testchipip +++ b/testchipip @@ -1 +1 @@ -Subproject commit 0df970e8d1e7ff4623b592acf509e8fb12417f5b +Subproject commit 4e8e50aa4d331e7462f6d164500666764e7b2301 diff --git a/verisim/Makefile b/verisim/Makefile index 5ad1eb6b..144301a4 100644 --- a/verisim/Makefile +++ b/verisim/Makefile @@ -25,14 +25,16 @@ long_name = $(PROJECT).$(MODEL).$(CONFIG) sim_vsrcs = \ $(build_dir)/$(long_name).v \ $(base_dir)/rocket-chip/vsrc/AsyncResetReg.v \ - $(base_dir)/rocket-chip/vsrc/plusarg_reader.v \ $(base_dir)/testchipip/vsrc/SimSerial.v \ - $(base_dir)/testchipip/vsrc/SimBlockDevice.v + $(base_dir)/testchipip/vsrc/SimBlockDevice.v \ + $(base_dir)/testchipip/vsrc/SimNetwork.v sim_csrcs = \ $(base_dir)/testchipip/csrc/SimSerial.cc \ $(base_dir)/testchipip/csrc/SimBlockDevice.cc \ + $(base_dir)/testchipip/csrc/SimNetwork.cc \ $(base_dir)/testchipip/csrc/blkdev.cc \ + $(base_dir)/testchipip/csrc/network.cc \ $(base_dir)/testchipip/csrc/verilator-harness.cc model_dir = $(build_dir)/$(long_name) diff --git a/vsim/Makefile b/vsim/Makefile index eb5a7026..d9f85e30 100644 --- a/vsim/Makefile +++ b/vsim/Makefile @@ -23,11 +23,14 @@ sim_vsrcs = \ $(base_dir)/rocket-chip/vsrc/plusarg_reader.v \ $(base_dir)/testchipip/vsrc/SimSerial.v \ $(base_dir)/testchipip/vsrc/SimBlockDevice.v \ + $(base_dir)/testchipip/vsrc/SimNetwork.v \ sim_csrcs = \ $(base_dir)/testchipip/csrc/SimSerial.cc \ $(base_dir)/testchipip/csrc/SimBlockDevice.cc \ + $(base_dir)/testchipip/csrc/SimNetwork.cc \ $(base_dir)/testchipip/csrc/blkdev.cc \ + $(base_dir)/testchipip/csrc/network.cc \ VCS = vcs -full64