cascade-artifacts-designs / cascade-chipyard

BSD 3-Clause "New" or "Revised" License
1 stars 1 forks source link

The hammer-mentor-plugins GONE! #1

Closed ha0lyu closed 3 months ago

ha0lyu commented 4 months ago

Background Work

Feature Description

The hammer-mentor-plugins GitHub page is 404. Here needs the plugins.

Motivating Example

ha0lyu commented 4 months ago

Hi @flaviens, this issue may be help.

Thanks. Hao

flaviens commented 4 months ago

Hi @Donkey-Hao thanks for reaching out! As you noticed it is not directly related to Cascade, and I am not proficient with the evolution of the Chipyard toolings unfortunately.

To help you, there are basically 3 phases with these chipyard designs:

  1. Initial repo and submodule setup (this is the problematic step iiuc)
  2. Generation of the Verilog sources.
  3. Verilation/simulation etc.

Step 1 should consist in following the Chipyard doc. Step 2 and 3 should be doable by a simple make run_vanilla_notrace in cascade-rocket or cascade-boom if all goes well.

Otherwise we provide a Docker image with the Cascade artifacts. Depending on your specific needs, you might want to use it.

In any case please let us know how it goes!

ha0lyu commented 3 months ago

Hi @flaviens, can you explain make run_vanilla_notrace? I don't understand it. I initialed the repo and cloned submodules successfully. Furthermore, I tried to build the Chipyard by run cascade-chipyard/build-setup.sh. I met with other problems when I built it, I spend a lot of time to tackled them but still failed. I need your help badly, I would appreciate it very much if you could tell me the Step 2 in detail.

BTW: It’s not that I don’t want to use the docker, it’s that I can’t pull it due to network reasons.

flaviens commented 3 months ago

Hi Hao, sure! So from your message I assume you overcame the Chipyard-specific issue that you mentioned earlier. Now ignore all the scripts in cascade-meta (just make sure to source cascade-meta/env.sh). Then just cd to cascade-chipyard/cascade-rocket and literally execute make run_vanilla_notrace. I might be forgetting one step (it's been a while :) ) but if you show me the output of the make run_vanilla_notrace command we can figure sth out. Hope it helps!

ha0lyu commented 3 months ago

I sourced env and ran make run_vanilla_notrace in dir /home/cascade-meta/cascade-chipyard/(NOTE it is cascade-chipyard not cellift-chipyard), here is what I got:

(base) ➜  cascade-rocket git:(master) ✗ make run_vanilla_notrace
make -C ../sims/verilator CONFIG=MyBigVMRocketConfig
make[1]: Entering directory '/home/cascade-meta/cascade-chipyard/sims/verilator'
Running with RISCV=/opt/riscv
mkdir -p /home/cascade-meta/cascade-chipyard/sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig
cd /home/cascade-meta/cascade-chipyard && java -jar /home/cascade-meta/cascade-chipyard/generators/rocket-chip/sbt-launch.jar  ";project chipyard; runMain chipyard.Generator  --target-dir /home/cascade-meta/cascade-chipyard/sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig --name chipyard.TestHarness.MyBigVMRocketConfig --top-module chipyard.TestHarness --legacy-configs chipyard:MyBigVMRocketConfig "
Picked up JAVA_TOOL_OPTIONS: -Xmx8G -Xss8M -Djava.io.tmpdir=/home/cascade-meta/cascade-chipyard/.java_tmp
[info] welcome to sbt 1.5.5 (Ubuntu Java 11.0.23)
[info] loading settings for project cascade-chipyard-build from plugins.sbt ...
[info] loading project definition from /home/cascade-meta/cascade-chipyard/project
[info] loading settings for project chipyardRoot from build.sbt ...
[info] loading settings for project hardfloat from build.sbt ...
[info] loading settings for project rocketConfig from build.sbt ...
[info] loading settings for project testchipip from build.sbt ...
[info] loading settings for project constellation from build.sbt ...
[info] loading settings for project icenet from build.sbt ...
[info] loading settings for project hwacha from build.sbt ...
[info] loading settings for project boom from build.sbt ...
[info] loading settings for project cva6 from build.sbt ...
[info] loading settings for project ibex from build.sbt ...
[info] loading settings for project sodor from build.sbt ...
[info] loading settings for project gemmini from build.sbt ...
[info] loading settings for project tapeout from build.sbt ...
[info] loading settings for project sim-build from plugins.sbt ...
[info] loading project definition from /home/cascade-meta/cascade-chipyard/sims/firesim/sim/project
[info] loading settings for project firesim from build.sbt ...
[info] loading settings for project targetutils from build.sbt ...
[info] loading settings for project midas from build.sbt ...
[info] resolving key references (36697 settings) ...
[info] set current project to chipyardRoot (in build file:/home/cascade-meta/cascade-chipyard/)
[info] set current project to chipyard (in build file:/home/cascade-meta/cascade-chipyard/)
[info] compiling 48 Scala sources to /home/cascade-meta/cascade-chipyard/generators/chipyard/target/scala-2.12/classes ...
[error] /home/cascade-meta/cascade-chipyard/generators/chipyard/src/main/scala/config/BoomConfigs.scala:122:19: type WithNMediumBoomsTracing is not a member of package boom.common
[error]   new boom.common.WithNMediumBoomsTracing(1) ++                          // My small boom config
[error]                   ^
[error] /home/cascade-meta/cascade-chipyard/generators/chipyard/src/main/scala/config/BoomConfigs.scala:130:19: type WithNMediumBoomsTracing is not a member of package boom.common
[error]   new boom.common.WithNMediumBoomsTracing(1) ++                          // My small boom config
[error]                   ^
[error] two errors found
[error] (Compile / compileIncremental) Compilation failed
[error] Total time: 9 s, completed Jul 20, 2024, 8:31:46 AM
make[1]: *** [/home/cascade-meta/cascade-chipyard/common.mk:107: /home/cascade-meta/cascade-chipyard/sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig/chipyard.TestHarness.MyBigVMRocketConfig.fir] Error 1
make[1]: Leaving directory '/home/cascade-meta/cascade-chipyard/sims/verilator'
make: [../cascade-common/cascade-common.mk:46: ../sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig/chipyard.TestHarness.MyBigVMRocketConfig.top.mems.v] Error 2 (ignored)
make -C ../sims/verilator CONFIG=MyBigVMRocketConfig
make[1]: Entering directory '/home/cascade-meta/cascade-chipyard/sims/verilator'
Running with RISCV=/opt/riscv
mkdir -p /home/cascade-meta/cascade-chipyard/sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig
cd /home/cascade-meta/cascade-chipyard && java -jar /home/cascade-meta/cascade-chipyard/generators/rocket-chip/sbt-launch.jar  ";project chipyard; runMain chipyard.Generator  --target-dir /home/cascade-meta/cascade-chipyard/sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig --name chipyard.TestHarness.MyBigVMRocketConfig --top-module chipyard.TestHarness --legacy-configs chipyard:MyBigVMRocketConfig "
Picked up JAVA_TOOL_OPTIONS: -Xmx8G -Xss8M -Djava.io.tmpdir=/home/cascade-meta/cascade-chipyard/.java_tmp
[info] welcome to sbt 1.5.5 (Ubuntu Java 11.0.23)
[info] loading settings for project cascade-chipyard-build from plugins.sbt ...
[info] loading project definition from /home/cascade-meta/cascade-chipyard/project
[info] loading settings for project chipyardRoot from build.sbt ...
[info] loading settings for project hardfloat from build.sbt ...
[info] loading settings for project rocketConfig from build.sbt ...
[info] loading settings for project testchipip from build.sbt ...
[info] loading settings for project constellation from build.sbt ...
[info] loading settings for project icenet from build.sbt ...
[info] loading settings for project hwacha from build.sbt ...
[info] loading settings for project boom from build.sbt ...
[info] loading settings for project cva6 from build.sbt ...
[info] loading settings for project ibex from build.sbt ...
[info] loading settings for project sodor from build.sbt ...
[info] loading settings for project gemmini from build.sbt ...
[info] loading settings for project tapeout from build.sbt ...
[info] loading settings for project sim-build from plugins.sbt ...
[info] loading project definition from /home/cascade-meta/cascade-chipyard/sims/firesim/sim/project
[info] loading settings for project firesim from build.sbt ...
[info] loading settings for project targetutils from build.sbt ...
[info] loading settings for project midas from build.sbt ...
[info] resolving key references (36697 settings) ...
[info] set current project to chipyardRoot (in build file:/home/cascade-meta/cascade-chipyard/)
[info] set current project to chipyard (in build file:/home/cascade-meta/cascade-chipyard/)
[info] compiling 48 Scala sources to /home/cascade-meta/cascade-chipyard/generators/chipyard/target/scala-2.12/classes ...
[error] /home/cascade-meta/cascade-chipyard/generators/chipyard/src/main/scala/config/BoomConfigs.scala:122:19: type WithNMediumBoomsTracing is not a member of package boom.common
[error]   new boom.common.WithNMediumBoomsTracing(1) ++                          // My small boom config
[error]                   ^
[error] /home/cascade-meta/cascade-chipyard/generators/chipyard/src/main/scala/config/BoomConfigs.scala:130:19: type WithNMediumBoomsTracing is not a member of package boom.common
[error]   new boom.common.WithNMediumBoomsTracing(1) ++                          // My small boom config
[error]                   ^
[error] two errors found
[error] (Compile / compileIncremental) Compilation failed
[error] Total time: 9 s, completed Jul 20, 2024, 8:32:04 AM
make[1]: *** [/home/cascade-meta/cascade-chipyard/common.mk:107: /home/cascade-meta/cascade-chipyard/sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig/chipyard.TestHarness.MyBigVMRocketConfig.fir] Error 1
make[1]: Leaving directory '/home/cascade-meta/cascade-chipyard/sims/verilator'
make: [../cascade-common/cascade-common.mk:46: ../sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig/chipyard.TestHarness.MyBigVMRocketConfig.top.v] Error 2 (ignored)
cat ../cascade-common/src/defines.v src/dependencies/ClockDividerN.sv src/dependencies/EICG_wrapper.v src/dependencies/IOCell.v src/dependencies/plusarg_reader.v src/dependencies/sram_behav_models.v ../sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig/chipyard.TestHarness.MyBigVMRocketConfig.top.mems.v ../sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig/chipyard.TestHarness.MyBigVMRocketConfig.top.v generated/rocket_axi_to_mem.v generated/rocket_mem_top.v > generated/out/vanilla.sv
cat: ../sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig/chipyard.TestHarness.MyBigVMRocketConfig.top.mems.v: No such file or directory
cat: ../sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig/chipyard.TestHarness.MyBigVMRocketConfig.top.v: No such file or directory
make: *** [../cascade-common/cascade-common.mk:63: generated/out/vanilla.sv] Error 1

In fact, I had tried to tackle this proble by build Chipyard. I suppose the main reason is lack of some verilog files in the dir:

(base) ➜  cascade-rocket git:(master) ✗ ls /home/cascade-meta/cascade-chipyard/sims/verilator/generated-src/chipyard.TestHarness.MyBigVMRocketConfig/
bootrom.rv32.img  EICG_wrapper.v  mm.cc           mm_dramsim2.h  remote_bitbang.cc  SimDRAM.cc  sim_files.f  SimSerial.cc     testchip_tsi.h
bootrom.rv64.img  emulator.cc     mm_dramsim2.cc  mm.h           remote_bitbang.h   SimDTM.cc   SimJTAG.cc   testchip_tsi.cc  verilator.h
flaviens commented 3 months ago

Hi! Yes cascade-chipyard is ofc correct sorry, not cellift-.

The real problem is here:

[error] /home/cascade-meta/cascade-chipyard/generators/chipyard/src/main/scala/config/BoomConfigs.scala:122:19: type WithNMediumBoomsTracing is not a member of package boom.common
[error]   new boom.common.WithNMediumBoomsTracing(1) ++                          // My small boom config
[error]                   ^
[error] /home/cascade-meta/cascade-chipyard/generators/chipyard/src/main/scala/config/BoomConfigs.scala:130:19: type WithNMediumBoomsTracing is not a member of package boom.common
[error]   new boom.common.WithNMediumBoomsTracing(1) ++           

It might be due to omitting these lines:

https://github.com/comsec-group/cascade-artifacts/blob/2a78b0b551f556166881592de9b03e7933a2baa8/Dockerfile#L134

Can you please double-check that you have the right core configurations as done in these lines of the Dockerfike?

ha0lyu commented 3 months ago

Hi @flaviens, thank you very much! I almost forgot about this Dockerfile, and you reminded me. I followed it and solved those problems. I really appreciate your help!

Best wishes. Hao