Commit 65c83298 authored by Yuxiao Mao's avatar Yuxiao Mao
Browse files

README: move project structure after modify matana section

parent 38de323a
...@@ -74,36 +74,10 @@ Then regenerate Verilog by running `make verilog` in `Chipyard/sims/verilator`. ...@@ -74,36 +74,10 @@ Then regenerate Verilog by running `make verilog` in `Chipyard/sims/verilator`.
- The problem of Ethernet 64-bit : the AXI4 adapter of Chipyard will send 2x32-bit request, where one of the 32-bit requests (even if write strobe = 0) might be outside of what Ethernet (OpenCores) can handle. It should not be that hard to fix, but is not done. - The problem of Ethernet 64-bit : the AXI4 adapter of Chipyard will send 2x32-bit request, where one of the 32-bit requests (even if write strobe = 0) might be outside of what Ethernet (OpenCores) can handle. It should not be that hard to fix, but is not done.
# Project structure
- `src/main/scala/`: main reposiroty of Matana hardware Detection Module.
- `Configs.scala`: configure Matana module. Such as the clock division rate, the activated detection logic.
- `MatanaTop.scala`: top file that declares Matana connections, this part of hardware will run at high frequency domain.
- `MatanaSync.scala`: helper class that contains dedicated connection declarations for monitored signals and a fixed ClockDivider.
- `MatanaSlowDetection.scala`: top file of the detections logics, all content in this file work in slow clock domain, it is the part that should be totally placed in a reconfigurable fabric such as a FPGA in the final system.
- `RocketDecode.scala`: some definitions in Rocket core that can help instruction decode.
- `AnalyzeInst.scala`: helper class that contains analysis of a single instruction.
- `RegmapUtil.scala`: helper class that contains generation of regmap information based on registers.
- `DetectExample.scala`: example class that contains the basic structure of a detection logic.
- `DetectPattern*.scala`: detection logics.
- `subsystem/`: files unrelated to Matana module itself, but are used to improve/modify the original Chipyard.
- `board/`: Verilog files that helps to work in ML605 board.
- `bootrom/`: Bootrom program that will be included in Chipyard BootROM. Compared to Chipyard's version, it did not use wfi, and accept external interruption. If modified, you need to run `make` in this directory.
- `chipyard/`: contains patches made on the original Chipyard project, patch and files are placed in there relative potition in Chipyard.
- `chipyard/generators/chipyard/src/main/scala/config/MatanaConfigs.scala` contains the Chipyard+Rocket config.
- `target/`: generated files by Chipyard build system.
- `build.sbt`: to integrate into Chipyard build system.
- `Note.md`: additional notes, including some problems encountered and their solution (if any).
# Modify Matana # Modify Matana
Thanks to Chipyard ant Chisel, it is relatively simple to make change in the system, here is some indication in addition to what you can learn from project structure. Matana is a framework that is expected to be modified and adapted to test differents probed signals, detection logics and system configurations.
Thanks to Chipyard ant Chisel, it is relatively simple to make change in the system. here is some indication.
### Probed signal to Detection Module ### Probed signal to Detection Module
...@@ -140,3 +114,30 @@ io.tiles.zipWithIndex.map { case (tile, i) => ...@@ -140,3 +114,30 @@ io.tiles.zipWithIndex.map { case (tile, i) =>
2. In [MatanaSlowDetection.scala](./src/main/scala/MatanaSlowDetection.scala), search location of `detectPatternTimer` for example to find where to add the detection logic, to connect I/O, put regmap with others regmap, etc. 2. In [MatanaSlowDetection.scala](./src/main/scala/MatanaSlowDetection.scala), search location of `detectPatternTimer` for example to find where to add the detection logic, to connect I/O, put regmap with others regmap, etc.
3. In [Configs.scala](./src/main/scala/Configs.scala), similar to `dExample: Option[DetectExampleParams] = None, //Some(DetectExampleParams())`, use None if you do not want to include the new logic, use Some if you do want to include. 3. In [Configs.scala](./src/main/scala/Configs.scala), similar to `dExample: Option[DetectExampleParams] = None, //Some(DetectExampleParams())`, use None if you do not want to include the new logic, use Some if you do want to include.
# Project structure
- `src/main/scala/`: main reposiroty of Matana hardware Detection Module.
- `Configs.scala`: configure Matana module. Such as the clock division rate, the activated detection logic.
- `MatanaTop.scala`: top file that declares Matana connections, this part of hardware will run at high frequency domain.
- `MatanaSync.scala`: helper class that contains dedicated connection declarations for monitored signals and a fixed ClockDivider.
- `MatanaSlowDetection.scala`: top file of the detections logics, all content in this file work in slow clock domain, it is the part that should be totally placed in a reconfigurable fabric such as a FPGA in the final system.
- `RocketDecode.scala`: some definitions in Rocket core that can help instruction decode.
- `AnalyzeInst.scala`: helper class that contains analysis of a single instruction.
- `RegmapUtil.scala`: helper class that contains generation of regmap information based on registers.
- `DetectExample.scala`: example class that contains the basic structure of a detection logic.
- `DetectPattern*.scala`: detection logics.
- `subsystem/`: files unrelated to Matana module itself, but are used to improve/modify the original Chipyard.
- `board/`: Verilog files that helps to work in ML605 board.
- `bootrom/`: Bootrom program that will be included in Chipyard BootROM. Compared to Chipyard's version, it did not use wfi, and accept external interruption. If modified, you need to run `make` in this directory.
- `chipyard/`: contains patches made on the original Chipyard project, patch and files are placed in there relative potition in Chipyard.
- `chipyard/generators/chipyard/src/main/scala/config/MatanaConfigs.scala` contains the Chipyard+Rocket config.
- `target/`: generated files by Chipyard build system.
- `build.sbt`: to integrate into Chipyard build system.
- `Note.md`: additional notes, including some problems encountered and their solution (if any).
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment