riple 的本科和硕士毕业设计都是关于8051 IP core的。本科毕设在Flex10k上实现了8051的部分指令集;硕士毕设完成了一个指令集和外设都可以配置的8051,核心工作是完成了指令集的自动配置。这算是我的第一个EDA产品了,采用的语言是Matlab,可以对用户的.hex编程文件进行指令统计分析,根据统计结果生成最简的VHDL代码。 riple
不久前在网上查找资料,偶然发现多年前下载源代码的网站居然还在——The UCR Dalton Project。 riple
进一步搜索了网上的8051 free IP Core资源,和5年前相比,竟然没什么大的变化。提供免费下载的还是这几个网址: riple
University of California, Riverside的Synthesizable VHDL Model of 8051 riple
Oregano Systems的MC8051 IP Core riple
UCR的代码是最早查到的,也是我本科毕设和硕士期间主要研究的代码。这组代码内容规整,很容易看懂。一个严重的bug是在执行3字节指令时有最后一个字节指令取不到的问题,我后来给改正了,还添加了中断控制器和一些外设。一个主要的不足是16个周期的超长指令执行时间,较慢的运行速度限制了该IP核的实用性。这个IP core作为教学使用还是不错的。 riple
Oregano Systems的8051代码是影响最广和最完善的。不但在Oregano自己的网站上有全面的文档、工具、实例,在Keil的网站上也有完整的开发工具链。 riple
OpenCores.org的代码我没看过,从module的数量和名称上看来,做的还是蛮细致的,比UCR的模块划分要复杂得多。