一本不错的处理器软核设计参考书

本文详细解读了一位芯片设计工程师利用FPGA实现兼容ARM9处理器的RTL软核的过程,展示了将复杂处理器设计简单化的技巧。通过细致的分类分析、深入的问题剖析和归一化的实现方式,作者仅用1800行Verilog代码便完成了这一任务,为读者提供了宝贵的项目实践经验和思考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

去年年底的时候买了一本书《兼容ARM9的软核处理器设计》,前一段时间很仔细的进行了阅读,感觉很有参考价值。作者是一位芯片设计工程师,其利用空余时间做了一个很有意思的开源项目,自己采用FPGA实现了一个兼容ARM9处理器的RTL软核。初看到这个想法的时候,我觉得很疯狂,因为想要实现一个ARM9处理器兼容的CPU不是一件容易的事情,处理器内部流水线机制、相关性的处理、各种计算单元的实现,另外还需要去验证处理器软核的正确性,需要启动Linux操作系统。所以说无论从工作量还是技术难度讲,都不是一件非常容易的事情。

224441636.jpg

阅读了作者的设计思路之后,给我最大的感受是:将处理器设计简单化了!作者对ARM指令进行了仔细的分类分析,对流水线存在的问题进行了深入分析,对计算单元进行了归一化实现。整个设计看上去显得非常简单。一共才用了1800verilog code实现了一个兼容ARM9的处理器。有人说过,将一件复杂的事情简单化不容易;将一件简单的事情复杂化容易。作者的确将一件复杂的事情简单化了,其在设计的过程中将功力都放在了分析系统、分析问题、构建模型上面。由于模型很清晰,问题在设计阶段都解决了,从而使得真正的实现过程变得很简单。

由此我想到了一些项目上的事情,如果我们的设计没有做好,急于去实现,那么我们的实现一定会存在很多的漏洞。这个我实际上已经遇到过很多次了,很多人往往会把一件本来很简单的事情搞的巨复杂,用了一堆的函数指针,定义了一个又一个对象,开辟了若干个线程/进程,通过RPC进行互相通信,而真正实现的功能却很简单。为什么一个简单的系统需要如此复杂的设计?如此复杂的设计如何保证系统的可维护性?如此复杂的设计如何解决客户遇到的问题?很多技术的确很美,但要用对地方。一个优秀的设计,最简单的技术才最美!ARM9软核处理器设计给了我们一个很好的案例,虽然,作者设计的流水线还有很大的优化空间,但是,为了达到兼容处理器的目的,很多简化设计的思想是非常可取的。

其实,这样的设计案例我觉得应该在大学中强烈推荐,学生应该仔细研读、分析、实践,让Linux操作系统在自己的CPU上跑起来!这样我们才可以对CPU理解的更加到位。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值