verilog簡易實現CPU的Cache設計
該文是基於博主之前一篇博客http://www.cnblogs.com/wsine/p/4661147.html所增加的Cache,相同的內容就不重復寫了,可點擊鏈接查看之前的博客。
Cache結構
采用的是2-way,循環5遍的測試方式,和書本上一致,4個set
Cache設計
首先在PCPU模塊里面增加寄存器
在流水線MEM那一階段如果是STROE或者LOAD指令更新cache
采取的替換策略是FIFO策略,在cache上面增加了一個位U
整個cache的控制部分如下:
如果讀取時沒有hit,則會成memory中取值並存到cache里面
書本和ppt上的樣例,初始化了datamemory的值
仿真結果
從仿真器可以比較容易觀察數據的變化,特別是hit0和hit1的變化
從仿真文本來看,gr1和gr2的load結果也是成功的。沒有出現不能錯誤讀取的xxxx結果
傳送門:
- CPU2_Cache
點擊這里