48

如何制作自己的微控制器?我已经使用 GAL 芯片完成了一些工作,并对芯片进行了编程以执行简单的命令,例如添加、加载、移动、异或和输出,但我想做一些更像真正的微控制器的东西。

我该怎么做呢?我已经阅读了一些关于 FPGA 和 CPLD 的内容,但不是很多,因此正在寻找一些关于获得什么以及如何开始开发它的建议。

4

9 回答 9

29

在这里寻找一本好的维基书。我在教电子工程时写了一些课程作业,但我找不到。在我教学时,大多数学生都乐于使用 Xilinx Foundation 软件包中的原理图捕获工具。他们现在已经转向 ISE 和 WebPACK。您可以免费下载 WebPack,它很有用,其中包含原理图捕获和仿真。

如果您真的想大放异彩,请学习 VHDL 或 Verilog(VHDL 似乎在我工作过的地方更常见,但这只是一小部分地方)并对设计进行编码,而不是通过 GUI 输入。

如果您对数字逻辑设计(和一些 HDL)一无所知,我认为您可以在大约 2 天内拥有一个在 VHDL 中模拟的功能性 8 位微处理器。在那段时间里,你不会构建任何非常快速或非常强大的东西,但这是一个很好的成长起点。如果您必须学习数字设计,请花几天时间了解这些工具的工作原理并模拟一些基本的逻辑电路,然后再进行 uP 设计。

开始学习数字系统的基础知识,以及如何构建二进制加法器。继续构建一个 ALU 来处理加法、减法和、或、异或等,然后构建一个序列器来从 RAM 读取操作码并将它们提供给执行单元。

您可以对指令集设计感兴趣,但我建议您从真正简单的开始,直到您了解正在发生的事情,然后将其扔掉并从更复杂的东西重新开始。

一旦您对设计进行了很好的模拟,您就可以衡量其复杂性并购买适合的设备。您应该查看您选择的设备系列的开发系统。选择一个比您开发所需更大的设备,因为能够在它运行时添加额外的工具来调试它是件好事,而且您几乎肯定不会在设备上安装它的早期阶段优化您的设计。

编辑:Colin Mackenzie有一个关于 uC 设计和一些 FPGA 板以及其他一些东西的很好的教程。

于 2009-03-11T05:54:16.317 回答
13

您可能想看看OpenCores.org,这是一个用于开源 IP 内核开发的“伪造”站点。另外,请考虑为自己准备一个类似其中之一的开发板来玩。

尽管Avalda正在开发用于为 FPGA 编译 F# 的工具,但大部分工具生态系统都围绕VHDL展开。

于 2009-03-10T23:38:16.363 回答
7

我曾经看过一本教科书,它逐步介绍了如何使用 TTL 芯片构建机器。它具有与 PDP-8 相同的指令集,非常简单——我的意思是非常简单,因此实际的机器架构很容易以这种方式实现。

PDP-8 FAQ提到了一本书:“数字设计的艺术”,第二版,由 Franklin Prosser 和 David Winkel 编写(Prentice-Hall,1987,ISBN 0-13-046780-4)。它还提到人们在 FPGA 中实现它。

鉴于这种 CPU 架构的极其简单性和 PDP-8 代码或参考实现的可用性,它可能是一个很好的热身起点。

或者,我的一个熟人在 FPGA 上实现了一个拇指(削减 ARM)作为一个由 Steve Furber(一位著名的 Acorn 校友)运行的大学项目。鉴于这可以压缩成足够小的格式用于大学项目,它也可能是一个好的开始。

于 2009-03-11T16:29:47.897 回答
3

为了玩软核微处理器,我喜欢 Digilent 的Spartan 3 Starter Board ,因为它有 1M 的静态 RAM。你知道,SDRAM 和 DDR RAM 更难发展。

LED、开关和简单的串行接口是调试和通信的优势。

正如有人已经指出的那样,OpenCores.org是查找工作示例的好地方。我在大学时使用Plasma uC写了一些论文。

于 2009-03-12T16:03:09.593 回答
1

微控制器可以像 ROM 一样简单(指令*2^x +(时钟相位)是地址,输出是控制信号,你可以开始了)。或者它可以是具有三臂和分支预测支持硬件的复杂哈利野兽。

你能提供更多关于你的愿望的细节吗?

于 2009-03-10T23:38:44.833 回答
1

在大家搜索了一些非常有用的链接之后,我遇到了这个Wikiversity 课程。

第一句话是,“你有没有想过构建自己的微处理器?”

于 2009-03-11T16:19:32.553 回答
1

Xilinx为其 FPGA配备了MicroBlazePicoBlaze软控制器。后者是免费的,而 IIRC,Microblaze 需要付费。
顾名思义,PicoBlaze 是一个小型处理器,有其局限性,但 OTOH 足够紧凑,可以在 CPLD 上运行。无论如何,一个不错的处理器可以帮助您入门。
Pablo Bleyer 有一个与 PicoBlaze 兼容的PacoBlaze。PacoBlaze 是用 Verilog 编写的(正如 Adam 所说,它不如 VHDL 常见)。

于 2009-04-18T19:56:02.120 回答
0

你需要一个大 fpga 来换一个小 mcu。

如果你需要像 AD 这样的东西,你需要一个具有正确硬件块的 fpga。

您需要一个软核才能放入 fpga。

但是在这个项目之前只玩一个普通的 MCU 怎么样,所以你知道你要去哪里吗?一些来自 Atmel 的 AVR:s 怎么样。

于 2009-03-11T06:04:40.363 回答
-5

您可以在此站点获得 pic 微控制器的免费样品。最后我知道,你甚至不必支付运费。

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=64

于 2009-03-10T23:39:19.370 回答