有看月球轉運站的夥伴應該有發現,
隨著開發的進展,程式碼已經變得有點不好看了。
今天就來對這段程式碼進行 Refactor,讓接下來的 CPU 開發能夠更輕鬆一點
目前參考了幾個專案,
NVDLA 設計上並沒有實作 CPU,是直接用 QEMU,
實作上 bridge pattern 把兩邊接起來,
並且把 QEMU 主程式變成一個 thread,
在 Elaboration Phase 的時候初始化,
並利用 pthread_cond_wait 的方式在 SystemC 與 QEMU 互相切換,非常值得參考。
可惜我這次是從 CPU 開始著手,所以無法借鏡。
RISC-V pipeline Core 在 pipeline 上的設計也很簡潔,
有用到 Sensative 的功能,大家有興趣可以自行研究。
為求精簡,這次架構上主要會參考 Single Cycle 的 RISC-V-TLM。
修改之後分成多個檔案,貼在這邊比較不好閱讀,
我會放在我的 github 頁面 Tag: ITDay6。