HDL 中 CPU 的可读性和教育性实现

电器工程 微处理器 FPGA 色情书刊 验证日志 视频文件
2022-01-07 08:36:36

你能推荐一个用 VHDL 或 Verilog 实现 CPU 的可读性和教育性的实现吗?最好是有据可查的东西。

PS我知道我可以看opencores,但我对人们实际看过并发现有趣的东西特别感兴趣。

PS2。抱歉标签很糟糕,但作为新用户,我无法创建新标签

4个回答

您可能会喜欢我很久以前为 Circuit Cellar 杂志撰写的系列文章, 在 FPGA 中构建 RISC 系统

快乐黑客!

拿到本书,我有第一版。几年前,我在我设计的 PCB 上的一个小型 Flex 10K10 FPGA 中实现了他们的 CPU,带有几个按钮和一个用于输入数据和显示结果的单个 7 段显示器。

很大程度上取决于您研究代码的目的是什么?换句话说,有趣对你意味着什么?

如果您这样做是为了了解 CPU 的复杂程度,您可能对研究OpenSPARC体系结构的来源更感兴趣。深入了解将需要很长时间,但您将对复杂微处理器的整体大图有所了解。

然后,如果要研究特定的计算机微体系结构特性,你会想看看一些简单的 RISC 机器,比如AEMB,一个小而快的多线程32 位 RISC 处理器(无耻插件)。

然后,如果您想要学习良好的编码风格和约定,LEON2 设计是学习良好 VHDL 编码风格的好地方。

但是,如果您学习处理器的目的是学习如何自己设计一个处理器,那么最好的选择是从简单的 8 位机器之一开始(网上有很多 AVR、8051、PIC 示例)。

您可以尝试检查一些 Forth CPU 设计。Forth 是一种简单的编程语言,其规范和实现由两个栈栈(一个用于数据,一个用于返回地址)定义。

几个小型 VHDL/Verilog 处理器是免费提供的:

可以在这里找到更多链接:

PS。尽管 Forth 是一种相当古老且晦涩难懂的语言,但许多现代基于堆栈的 VM(Java、快速 JavaScript VM)具有类似的低级设计,因此学习它会很有成效。