Mar 8:
Feb 25:
今天开博客向oldbegineer学习leishangwen大哥的openMIPS VHDL版本,争取在Verilog版本出来前学通,port到DE2板子和mount RTOS。
同时可以以此学习VHDL,这样可以把mc8051的VHDL翻译成公司用的Verilog版本,一边日后增加features。
再者,也是能够给我学习OpenRISC打好基础,千里之行始于足下,还是要打好基础,不误砍柴工。
首先了解一下OpenMIPS是32位5级pipeline的处理器,兼容Wishbone b2,支持MIPS32素有ISA,同时包含协处理器CP0(在MIPS32 Privilege Resources Architecture文档里面说了MIPS有4个Coprocessor,有3个可选,但是CP0是必须的,它是用来full control of the MIPS state and modes.)
开始:
Day 1:
设计步骤:
- 写Verilog以支持新指令
- 写对应的汇编程序
- Compile并得到data file
- 在modelsim里用data初始化ICache并仿真来验证指令实现正确
Day 2:
认真学习VHDL:
代码结构:
entity
Architecture
configuration
虽然modelsim在load wave.do的时候有很多error(这个要分析明白到底是什么地方有问题),不过run all的时候总算得到的值是正确的。
学到了record type 感觉就是C里面的structure。然后可以像C里面一样改变一个对象的元素:比如r.d.inst
还有就是process is到begin之间是用来declare signal,这些是作为temp来保存中间值的。