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


37

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

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

PS2。对不起,我很抱歉,但是作为新用户,我无法创建新标签


1
这是一个很棒的博客,来自一个试图为CPLD创建微型CPU的人stevechamberlin.com/cpu
Toby

2
HDL⊕可读,很不幸。
康纳·沃尔夫

@Joby Taffey:链接已断开,这是您的意思吗?bigmessowires.com/cpu-in-a-cpld
Brian Carlton

mor1kx,它是OpenRISC 1000的Verilog实现。它有一些注释。OpenRISC的优势在于它具有工具链,但仍然相对简单。
Janus Troelsen

Answers:



7

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


7

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

如果要这样做是为了了解CPU可能带来多少复杂性,那么您可能会对研究OpenSPARC体系结构的来源更感兴趣。这将花费很长时间,但是您将对复杂微处理器的整体外观有所了解。

然后,如果要研究特定的计算机微体系结构功能,则需要研究一些简单的RISC机器,例如AEMB,这是一种小型,快速的多线程 32位RISC处理器(无耻插件)。

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

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


无耻的插件-AEMB-我自己的“可能的最小的处理器”。
sybreon 2011年

5

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

可免费使用几种小型VHDL / Verilog处理器:

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

PS。尽管Forth是一种相当古老且晦涩的语言,但许多现代的基于堆栈的VM(Java,快速JavaScript VM)具有类似的低级设计,因此对其进行学习可能会富有成果。


2

PicoBlaze很好,但是在独立于供应商的VHDL中不可用。

其他一些选择是:

  • Verilog中的Picoblaze克隆(您应该可以轻松找到它)。不确定是否维护
  • Gumnut是最新的Ashenden书所支持的一个不错的小核心。
  • Thacker的微型注册机/计算机(约200行Verilog)
  • Jan Gray的XSoC / XR16(已在此处提及)

另外,如果您正在寻找适合您的CPU的编译器,则最有可能为16位CPU获得一个编译器。曾经有Poderico的编译器,从类似C的语言到Picoblaze,但已从网络上撤下。


如果您在列表前添加空白行,则答案的格式会更好。
TrygveLaugstøl2012年

1

您可以看看Xilinx PicoBlaze处理器。它是最小的8位嵌入式微控制器,并且源代码应该可用。


1
尽管这只是结构化的VHDL,但作为教学工具却不那么出色
Martin Thompson

0

为时已晚,但是我提供了一个小答案。

耶路撒冷大学有一门名为“ Nand2Tetris”的课程,该课程也存在于Coursera中,我建立了他们在该课程中创建的计算机。我在方案中实现了该语言,以便能够以最少的细节了解计算机的工作原理。我成功了,他们用Java创建的模拟器无法完成我想看到的一切。

https://github.com/alinsoar/little-computer

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.