2020-12-15 CPU设计复盘
生活随笔
收集整理的這篇文章主要介紹了
2020-12-15 CPU设计复盘
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SOC修改
將之前完成的31條指令單周期CPU進行了重構,將其分開,實現了內外有別,將CPU、指令ROM和數據RAM。
這樣,以后為其增加接口外設,總線控制,才更加清晰,這是進一步封裝和抽象。
MARS大坑
j和jal指令,使用的是絕對地址,而MARS和我的CPU不匹配……結果就debug半天,很難匹配,因為起始地址如果是00003000開始,那么coe文件將會又很多東西0……不過內樣的話,就一勞永逸了,看來還是得改。
接下來,做好地址空間映射的修改和文檔完善。
充分體會,一個系統的依賴和完備性,非常重要!
J和Jal指令的地址坑,居然花了半天時間debug……它們是絕對地址,不是beq這種的相對地址!地址空間非常重要!
教訓
繼續修改CPU,符合MARS中的MIPS規范
此次主要是地址空間映射規范。
注意0x00003000是字節編址的地址,現在采用的是字編址,因此需要注意匹配問題。
并且注意,這個是虛擬地址空間,實際上我們設計的是
- 數據RAM從0開始
- 指令ROM從0x00003000開始
取消了ROM、RAM IP核的輸出寄存器
時鐘周期延遲變成了1個周期,而不是2個。
CPU傳出的數據應該是完整的,剩下的由映射機制做
對于CPU,傳出的指令地址和數據地址就應該是32位的,不能因為存儲器小,地址是14位,就輸出14位的。
應該輸出32位,由其他管理模塊完成虛擬地址的映射和截斷。
虛實分開:PC對于32位虛擬空間,映射到物理地址之后,物理地址可能在不同的部件,需要進行譯碼轉換等設計
總結
以上是生活随笔為你收集整理的2020-12-15 CPU设计复盘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女性卵巢早衰的症状有哪些
- 下一篇: jsonview 如何在chrome下使