From c0f5c77520ad5ec27d338e41ea9138e062801c0a Mon Sep 17 00:00:00 2001 From: Animesh Agrawal Date: Fri, 24 Dec 2021 05:07:17 -0800 Subject: [PATCH] Added FFT Generator integration --- .gitmodules | 3 +++ build.sbt | 7 ++++++- generators/FFTGenerator | 1 + generators/chipyard/src/main/scala/DigitalTop.scala | 1 + .../chipyard/src/main/scala/config/RocketConfigs.scala | 6 ++++++ 5 files changed, 17 insertions(+), 1 deletion(-) create mode 160000 generators/FFTGenerator diff --git a/.gitmodules b/.gitmodules index 6128783a..be860d41 100644 --- a/.gitmodules +++ b/.gitmodules @@ -131,3 +131,6 @@ [submodule "generators/ibex"] path = generators/ibex url = https://github.com/ucb-bar/ibex-wrapper +[submodule "generators/FFTGenerator"] + path = generators/FFTGenerator + url = git@github.com:AnimeshAgrawal/FFTGenerator.git diff --git a/build.sbt b/build.sbt index afb82b5d..6c58256a 100644 --- a/build.sbt +++ b/build.sbt @@ -164,7 +164,12 @@ lazy val chipyard = (project in file("generators/chipyard")) .dependsOn(testchipip, rocketchip, boom, hwacha, sifive_blocks, sifive_cache, iocell, sha3, // On separate line to allow for cleaner tutorial-setup patches dsptools, `rocket-dsp-utils`, - gemmini, icenet, tracegen, cva6, nvdla, sodor, ibex) + gemmini, icenet, tracegen, cva6, nvdla, sodor, ibex, FFTGenerator) + .settings(libraryDependencies ++= rocketLibDeps.value) + .settings(commonSettings) + +lazy val FFTGenerator = (project in file("generators/FFTGenerator")) + .dependsOn(rocketchip, `rocket-dsp-utils`) .settings(libraryDependencies ++= rocketLibDeps.value) .settings(commonSettings) diff --git a/generators/FFTGenerator b/generators/FFTGenerator new file mode 160000 index 00000000..55b7f2e6 --- /dev/null +++ b/generators/FFTGenerator @@ -0,0 +1 @@ +Subproject commit 55b7f2e6a1246d54340f406efe128ac11f85a92c diff --git a/generators/chipyard/src/main/scala/DigitalTop.scala b/generators/chipyard/src/main/scala/DigitalTop.scala index ba094163..271f9478 100644 --- a/generators/chipyard/src/main/scala/DigitalTop.scala +++ b/generators/chipyard/src/main/scala/DigitalTop.scala @@ -32,6 +32,7 @@ class DigitalTop(implicit p: Parameters) extends ChipyardSystem with chipyard.example.CanHavePeripheryStreamingPassthrough // Enables optionally adding the DSPTools streaming-passthrough example widget with nvidia.blocks.dla.CanHavePeripheryNVDLA // Enables optionally having an NVDLA with chipyard.clocking.HasChipyardPRCI // Use Chipyard reset/clock distribution + with FFTGenerator.HasPeripheryFFT { override lazy val module = new DigitalTopModule(this) } diff --git a/generators/chipyard/src/main/scala/config/RocketConfigs.scala b/generators/chipyard/src/main/scala/config/RocketConfigs.scala index 43bb2fb2..f602f9e2 100644 --- a/generators/chipyard/src/main/scala/config/RocketConfigs.scala +++ b/generators/chipyard/src/main/scala/config/RocketConfigs.scala @@ -21,6 +21,12 @@ class TinyRocketConfig extends Config( new freechips.rocketchip.subsystem.With1TinyCore ++ // single tiny rocket-core new chipyard.config.AbstractConfig) +class RocketWithFFT extends Config( + new FFTGenerator.WithFFTNumPoints(8) ++ + new FFTGenerator.WithFFTBaseAddr(0x2000) ++ + new FFTGenerator.WithFFTGenerator ++ + new RocketConfig) + class HwachaRocketConfig extends Config( new chipyard.config.WithHwachaTest ++ new hwacha.DefaultHwachaConfig ++ // use Hwacha vector accelerator