我怎样才能制作自己的微控制器?

时间:2009-03-10 23:29:14

标签: embedded microcontroller

如何制作自己的微控制器?我已经完成了一些使用GAL芯片的工作,并编写了一个芯片来执行简单的命令,如添加,加载,移动,xor和输出,但我想做一些更像真正的微控制器。

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

9 个答案:

答案 0 :(得分:28)

查看here以获取一本好的维基书籍。我在教电子版时曾写过一些课程,但我找不到它。在我教学时,大多数学生都乐于使用Xilinx Foundation软件包中的原理图捕获工具。他们现在已经进入了ISE和WebPACK。您可以免费下载WebPack,这很有用,并且其中包含原理图捕获和模拟。

如果您真的想要发光,请学习VHDL或Verilog(VHDL似乎在我工作的地方比较常见,但这只是一小部分地方)并对设计进行编码而不是通过GUI输入。 / p>

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

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

你可以对指令集设计有所了解,但是我建议你开始真的很简单,直到你了解到最新情况,然后把它扔掉,然后再用更复杂的东西重新开始。

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

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

答案 1 :(得分:13)

您可能希望浏览OpenCores.org,这是一个用于开源IP核开发的“forge”站点。另外,考虑让自己成为像one of these这样的开发板来玩。

许多工具生态系统围绕VHDL展开,尽管Avalda正致力于为FPGA编译F#的工具。

答案 2 :(得分:7)

我曾经看过一本教科书,曾经用TTL筹码建造一台机器。它具有与PDP-8相同的指令集,这非常 - 我的意思是 非常 - 简单,因此实际的机器架构很容易以这种方式实现。

PDP-8 FAQ提到了一本书:“The Art of Digital Design,”第二版,Franklin Prosser和David Winkel(Prentice-Hall,1987,ISBN 0-13-046780-4)。它还提到人们在FPGA中实现它。

鉴于这种CPU架构的极端简单性以及PDP-8代码或参考实现的可用性,它可能是热身的良好起点。

另外,我的一个熟人在FPGA上实施了一个拇指(缩减ARM)作为一个由Steve Furber(着名的Acorn校友)管理的大学项目。鉴于这可以压缩成一个足够小的格式用于大学项目,这也可能是一个良好的开端。

答案 3 :(得分:3)

要使用软核微处理器,我喜欢Digilent的Spartan 3 Starter Board,因为它有1M的静态RAM。你知道,SDRAM和DDR RAM很难实现。

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

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

答案 4 :(得分:1)

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

您能否详细说明您的愿望?

答案 5 :(得分:1)

在搜索了所有人的一些非常有用的链接之后,我遇到了this Wikiversity课程。

首句之一是“你有没有想过要建立自己的微处理器?”

答案 6 :(得分:1)

Xilinx为其FPGA提供了MicroBlazePicoBlaze软控制器。后者是免费的,而IIRC则需要支付Microblaze 顾名思义,PicoBlaze是一款小型处理器,它有其局限性,但OTOH足够紧凑到run on a CPLD。无论如何,一个很好的处理器让你开始。
Pablo Bleyer与PicoBlaze兼容PacoBlaze。 PacoBlaze是用Verilog编写的(和Adam说的一样,不像VHDL那么常见)。

答案 7 :(得分:0)

你需要一个大fpga的小mcu。

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

你需要一个软核放入fpga。

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

答案 8 :(得分:-4)

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

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