croc:简单易用的教学SoC解决方案
项目介绍
Croc 是一款专为教育目的设计的简单SoC(System-on-Chip)解决方案,采用了PULP IPs。它包含了所有必要的脚本来利用IHP的130纳米开源技术生产几乎完成的芯片。Croc 旨在简化硬件描述语言(RTL)和脚本的阅读性,因此在某些配置性上做了妥协。作为PULP项目的一部分,Croc 是ETH苏黎世联邦理工学院和博洛尼亚大学之间的合作成果。
Croc 已于2024年11月成功试制出芯片,名为MLEM,这个名字来源于Yoshi吃水果时的声音。MLEM芯片由ETHZ的学生作为本科项目设计和准备试制,具体的代码和脚本可以在mlem-tapeout分支中查看。
项目技术分析
Croc 的架构包括两个主要部分:croc_domain
和 user_domain
。croc_domain
包含CVE2核心(Ibex的分支)、SRAM、OBI交叉 bar 和一些简单的外设。user_domain
则允许学生添加他们自己的设计或其他开源设计(外设、优化器等)。主要互联使用的是OBI,规范可以在线上查看。
SoC的各种IP(UART、OBI、调试模块、定时器等)来自其他PULP仓库,并由Bender管理。为了便于浏览和理解,只包含当前使用的文件在rtl/<IP>
中。如果需要探索IP的文档或附加功能,可以在Bender.yml
中找到相应的URL。
项目及技术应用场景
Croc 主要应用于教育领域,尤其适合那些希望学习SoC设计和硬件描述语言的学生。它的易用性和易读性使其成为教学硬件设计理想的起点。项目流程包括Bender、Yosys、OpenRoad到KLayout的完整设计链,使学生可以全面了解SoC设计到制造的整个过程。
此外,Croc 的设计也为开发者提供了添加自定义设计或开源设计到user_domain
的灵活性,这使得它成为学习和实验自定义SoC设计的良好平台。
项目特点
- 教育导向:Croc 的设计以教育为核心,牺牲了一些配置性以换取更高的可读性,这使得它成为教学环境中理想的SoC平台。
- 易于上手:包含所有必要的脚本和流程,使初学者能够快速开始SoC设计和仿真。
- 模块化设计:
user_domain
允许用户添加自定义设计或开源设计,提供了极高的灵活性。 - 文档完善:项目包含详细的文档和配置指南,帮助用户更好地理解和使用项目。
- 社区支持:作为PULP项目的一部分,Croc 拥有一个活跃的社区,为用户提供支持和指导。
Croc 不仅适合作为教育工具,而且对于希望在SoC设计领域进行实验和开发的工程师来说,也是一个宝贵的资源。通过易于理解的设计和全面的文档,Croc 为用户提供了实现自己创意的坚实基础。无论是学习SoC设计的基础,还是探索自定义硬件的可能性,Croc 都是一个值得考虑的开源项目。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考