├── .gitignore ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── README_EN.md ├── chisel ├── .scalafmt.conf ├── Makefile ├── build.sbt ├── inst │ ├── func.s │ └── perf.s └── src │ ├── main │ ├── resources │ │ ├── mycpu_top.v │ │ └── mycpu_top_for_soc_simulator.v │ └── scala │ │ └── cpu │ │ ├── Core.scala │ │ ├── CpuConfig.scala │ │ ├── Elaborate.scala │ │ ├── PuaMips.scala │ │ ├── axi │ │ └── FIFO.scala │ │ ├── cache │ │ ├── Cache.scala │ │ ├── CacheAXIInterface.scala │ │ ├── DCache.scala │ │ ├── ICache.scala │ │ └── memory │ │ │ ├── LUTRam.scala │ │ │ ├── LUTRamIP.scala │ │ │ ├── PortDefinitions.scala │ │ │ ├── SimpleDualPortRam.scala │ │ │ └── SimpleDualPortRamIP.scala │ │ ├── ctrl │ │ └── Ctrl.scala │ │ ├── defines │ │ ├── Bundles.scala │ │ ├── Const.scala │ │ ├── Cp0Bundles.scala │ │ ├── Instructions.scala │ │ ├── StaticBundles.scala │ │ └── Util.scala │ │ ├── mmu │ │ ├── TlbL1D.scala │ │ ├── TlbL1I.scala │ │ └── TlbL2.scala │ │ └── pipeline │ │ ├── decoder │ │ ├── ARegfile.scala │ │ ├── Decoder.scala │ │ ├── DecoderUnit.scala │ │ ├── ForwardCtrl.scala │ │ ├── Issue.scala │ │ └── JumpCtrl.scala │ │ ├── execute │ │ ├── ALU.scala │ │ ├── BranchCtrl.scala │ │ ├── Cp0.scala │ │ ├── Div.scala │ │ ├── ExeAccessMemCtrl.scala │ │ ├── ExecuteStage.scala │ │ ├── ExecuteUnit.scala │ │ ├── Fu.scala │ │ ├── HiLo.scala │ │ ├── LLbit.scala │ │ └── Mul.scala │ │ ├── fetch │ │ ├── BranchPredictorUnit.scala │ │ ├── FetchUnit.scala │ │ ├── InstFifo.scala │ │ └── PreDecoder.scala │ │ ├── memory │ │ ├── DataMemoryAccess.scala │ │ ├── MemoryStage.scala │ │ └── MemoryUnit.scala │ │ └── writeback │ │ ├── CommitBuffer.scala │ │ ├── WriteBackStage.scala │ │ └── WriteBackUnit.scala │ └── test │ └── scala │ └── test.scala └── doc ├── final-design.pdf ├── primary-design.pdf ├── pua-mips.drawio ├── slides.pdf └── src ├── back-end.png ├── bpu.png ├── cache.png ├── front-end.png ├── linux.jpg ├── main.typ ├── pua-mips.png ├── template.typ └── uboot.jpg /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/.gitignore -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/README.md -------------------------------------------------------------------------------- /README_EN.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/README_EN.md -------------------------------------------------------------------------------- /chisel/.scalafmt.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/.scalafmt.conf -------------------------------------------------------------------------------- /chisel/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/Makefile -------------------------------------------------------------------------------- /chisel/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/build.sbt -------------------------------------------------------------------------------- /chisel/inst/func.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/inst/func.s -------------------------------------------------------------------------------- /chisel/inst/perf.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/inst/perf.s -------------------------------------------------------------------------------- /chisel/src/main/resources/mycpu_top.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/resources/mycpu_top.v -------------------------------------------------------------------------------- /chisel/src/main/resources/mycpu_top_for_soc_simulator.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/resources/mycpu_top_for_soc_simulator.v -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/Core.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/Core.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/CpuConfig.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/CpuConfig.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/Elaborate.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/Elaborate.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/PuaMips.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/PuaMips.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/axi/FIFO.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/axi/FIFO.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/cache/Cache.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/cache/Cache.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/cache/CacheAXIInterface.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/cache/CacheAXIInterface.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/cache/DCache.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/cache/DCache.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/cache/ICache.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/cache/ICache.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/cache/memory/LUTRam.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/cache/memory/LUTRam.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/cache/memory/LUTRamIP.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/cache/memory/LUTRamIP.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/cache/memory/PortDefinitions.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/cache/memory/PortDefinitions.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/cache/memory/SimpleDualPortRam.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/cache/memory/SimpleDualPortRam.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/cache/memory/SimpleDualPortRamIP.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/cache/memory/SimpleDualPortRamIP.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/ctrl/Ctrl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/ctrl/Ctrl.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/defines/Bundles.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/defines/Bundles.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/defines/Const.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/defines/Const.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/defines/Cp0Bundles.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/defines/Cp0Bundles.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/defines/Instructions.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/defines/Instructions.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/defines/StaticBundles.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/defines/StaticBundles.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/defines/Util.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/defines/Util.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/mmu/TlbL1D.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/mmu/TlbL1D.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/mmu/TlbL1I.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/mmu/TlbL1I.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/mmu/TlbL2.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/mmu/TlbL2.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/decoder/ARegfile.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/decoder/ARegfile.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/decoder/Decoder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/decoder/Decoder.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/decoder/DecoderUnit.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/decoder/DecoderUnit.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/decoder/ForwardCtrl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/decoder/ForwardCtrl.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/decoder/Issue.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/decoder/Issue.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/decoder/JumpCtrl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/decoder/JumpCtrl.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/execute/ALU.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/execute/ALU.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/execute/BranchCtrl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/execute/BranchCtrl.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/execute/Cp0.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/execute/Cp0.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/execute/Div.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/execute/Div.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/execute/ExeAccessMemCtrl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/execute/ExeAccessMemCtrl.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/execute/ExecuteStage.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/execute/ExecuteStage.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/execute/ExecuteUnit.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/execute/ExecuteUnit.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/execute/Fu.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/execute/Fu.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/execute/HiLo.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/execute/HiLo.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/execute/LLbit.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/execute/LLbit.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/execute/Mul.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/execute/Mul.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/fetch/BranchPredictorUnit.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/fetch/BranchPredictorUnit.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/fetch/FetchUnit.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/fetch/FetchUnit.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/fetch/InstFifo.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/fetch/InstFifo.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/fetch/PreDecoder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/fetch/PreDecoder.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/memory/DataMemoryAccess.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/memory/DataMemoryAccess.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/memory/MemoryStage.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/memory/MemoryStage.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/memory/MemoryUnit.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/memory/MemoryUnit.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/writeback/CommitBuffer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/writeback/CommitBuffer.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/writeback/WriteBackStage.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/writeback/WriteBackStage.scala -------------------------------------------------------------------------------- /chisel/src/main/scala/cpu/pipeline/writeback/WriteBackUnit.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/main/scala/cpu/pipeline/writeback/WriteBackUnit.scala -------------------------------------------------------------------------------- /chisel/src/test/scala/test.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/chisel/src/test/scala/test.scala -------------------------------------------------------------------------------- /doc/final-design.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/final-design.pdf -------------------------------------------------------------------------------- /doc/primary-design.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/primary-design.pdf -------------------------------------------------------------------------------- /doc/pua-mips.drawio: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/pua-mips.drawio -------------------------------------------------------------------------------- /doc/slides.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/slides.pdf -------------------------------------------------------------------------------- /doc/src/back-end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/src/back-end.png -------------------------------------------------------------------------------- /doc/src/bpu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/src/bpu.png -------------------------------------------------------------------------------- /doc/src/cache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/src/cache.png -------------------------------------------------------------------------------- /doc/src/front-end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/src/front-end.png -------------------------------------------------------------------------------- /doc/src/linux.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/src/linux.jpg -------------------------------------------------------------------------------- /doc/src/main.typ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/src/main.typ -------------------------------------------------------------------------------- /doc/src/pua-mips.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/src/pua-mips.png -------------------------------------------------------------------------------- /doc/src/template.typ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/src/template.typ -------------------------------------------------------------------------------- /doc/src/uboot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Clo91eaf/PUA-MIPS/HEAD/doc/src/uboot.jpg --------------------------------------------------------------------------------