我怎样才能制作自己的微控制器?我已经完成了一些使用GAL芯片的工作,并编写了一个芯片来执行简单的命令,如添加,加载,移动,xor和输出,但我想做一些更像真正的微控制器.
我该怎么做呢?我已经阅读了一些关于FPGA和CPLD的内容,但不是很多,所以我们正在寻找一些关于如何获得以及如何开始开发的建议.
看看这里有一个良好的维基书.我在教电子版时曾写过一些课程,但我找不到它.在我教学时,大多数学生都乐于使用Xilinx Foundation软件包中的原理图捕获工具.他们现在已经进入了ISE和WebPACK.您可以免费下载WebPack,这很有用,并且其中包含原理图捕获和模拟.
如果你真的想要发光,学习VHDL或Verilog(VHDL似乎在我工作的地方更常见,但这只是一小部分地方)并编码设计而不是通过GUI输入.
如果您对数字逻辑设计(以及一些HDL)知之甚少,那么我可以在大约2天内使用VHDL模拟一个功能有限的8位微处理器.在那段时间里,你不会构建任何超快速或强大的东西,但它是一个很好的起点.如果您必须了解数字设计,请在几天内了解工具的工作原理并模拟一些基本的逻辑电路,然后再进入uP设计.
开始学习数字系统的基础知识,以及如何构建二进制加法器.继续构建ALU以处理加法,减法和/或xor等,然后使用序列器从RAM读取操作码并将它们提供给执行单元.
您可以使用指令集设计,但我建议您开始真正简单,直到您了解最新情况,然后将其抛出并重新开始使用更复杂的东西.
一旦你完美地模拟了设计,就可以衡量它的复杂性并购买适合的设备.您应该查看您选择的设备系列的开发系统.选择一个比开发所需的设备更大的设备,因为能够在运行时添加额外的仪器来调试它是很好的,而且几乎可以肯定,在设备上的设计的早期阶段你也不会优化你的设计.
编辑:Colin Mackenzie有一个关于uC设计和一些FPGA板以及其他一些东西的好教程.
您可能希望了解OpenCores.org,这是一个用于开源IP核开发的"forge"站点.另外,考虑让自己成为像其中一个开发板一样的开发板.
许多工具生态系统围绕着VHDL,尽管Avalda正在研究为FPGA编译F#的工具.
我曾经看过一本教科书,从TTL芯片开始构建一台机器.它具有与PDP-8相同的指令集,这非常 - 而且我的意思是非常简单,因此实际的机器架构很容易以这种方式实现.
在PDP-8常见问题解答中提到了一本书:" 数字化设计的艺术, "第二版,由富兰克林普罗瑟和大卫·温克尔(普伦蒂斯霍尔,1987年,ISBN 0-13-046780-4).它还提到人们在FPGA中实现它.
鉴于这种CPU架构的极端简单性以及PDP-8代码或参考实现的可用性,它可能是热身的良好起点.
或者,我的一个熟人在FPGA上实施了一个拇指(缩减ARM)作为一个由Steve Furber(着名的Acorn校友)管理的大学项目.鉴于这可以压缩成适合大学项目的格式,这也可能是一个好的开始.