您能推荐VHDL或Verilog中CPU的可读性和教育性实现吗?最好是有据可查的东西。
PS:我知道我可以看opencores
,但是我对人们实际看过并发现有趣的东西特别感兴趣。
PS2。对不起,我很抱歉,但是作为新用户,我无法创建新标签
您能推荐VHDL或Verilog中CPU的可读性和教育性实现吗?最好是有据可查的东西。
PS:我知道我可以看opencores
,但是我对人们实际看过并发现有趣的东西特别感兴趣。
PS2。对不起,我很抱歉,但是作为新用户,我无法创建新标签
Answers:
您可能会喜欢我很久以前在Circuit Cellar杂志上撰写的文章系列,即《 在FPGA中构建RISC系统》。
祝您黑客愉快!
在很大程度上取决于您学习代码的目的是什么?换句话说,有趣对您意味着什么?
如果要这样做是为了了解CPU可能带来多少复杂性,那么您可能会对研究OpenSPARC体系结构的来源更感兴趣。这将花费很长时间,但是您将对复杂微处理器的整体外观有所了解。
然后,如果要研究特定的计算机微体系结构功能,则需要研究一些简单的RISC机器,例如AEMB,这是一种小型,快速的多线程 32位RISC处理器(无耻插件)。
然后,如果您想要学习良好的编码风格和约定,那么LEON2设计就是学习良好的VHDL编码风格的好地方。
但是,如果您学习处理器的目的是学习如何自己设计,那么最好的选择是从一台简单的8位计算机开始(网络上有许多AVR,8051和PIC示例)。
您可以尝试检查一些Forth CPU设计。Forth是一种简单的编程语言,其规范和实现是通过两个堆栈堆栈(一个用于数据,另一个用于返回地址)定义的。
可免费使用几种小型VHDL / Verilog处理器:
一些更多的链接可以在这里找到:
PS。尽管Forth是一种相当古老且晦涩的语言,但许多现代的基于堆栈的VM(Java,快速JavaScript VM)具有类似的低级设计,因此对其进行学习可能会富有成果。
PicoBlaze很好,但是在独立于供应商的VHDL中不可用。
其他一些选择是:
另外,如果您正在寻找适合您的CPU的编译器,则最有可能为16位CPU获得一个编译器。曾经有Poderico的编译器,从类似C的语言到Picoblaze,但已从网络上撤下。
为时已晚,但是我提供了一个小答案。
耶路撒冷大学有一门名为“ Nand2Tetris”的课程,该课程也存在于Coursera中,我建立了他们在该课程中创建的计算机。我在方案中实现了该语言,以便能够以最少的细节了解计算机的工作原理。我成功了,他们用Java创建的模拟器无法完成我想看到的一切。