如何制作自己的微控制器?我已经使用 GAL 芯片完成了一些工作,并对芯片进行了编程以执行简单的命令,例如添加、加载、移动、异或和输出,但我想做一些更像真正的微控制器的东西。
我该怎么做呢?我已经阅读了一些关于 FPGA 和 CPLD 的内容,但不是很多,因此正在寻找一些关于获得什么以及如何开始开发它的建议。
如何制作自己的微控制器?我已经使用 GAL 芯片完成了一些工作,并对芯片进行了编程以执行简单的命令,例如添加、加载、移动、异或和输出,但我想做一些更像真正的微控制器的东西。
我该怎么做呢?我已经阅读了一些关于 FPGA 和 CPLD 的内容,但不是很多,因此正在寻找一些关于获得什么以及如何开始开发它的建议。
在这里寻找一本好的维基书。我在教电子工程时写了一些课程作业,但我找不到。在我教学时,大多数学生都乐于使用 Xilinx Foundation 软件包中的原理图捕获工具。他们现在已经转向 ISE 和 WebPACK。您可以免费下载 WebPack,它很有用,其中包含原理图捕获和仿真。
如果您真的想大放异彩,请学习 VHDL 或 Verilog(VHDL 似乎在我工作过的地方更常见,但这只是一小部分地方)并对设计进行编码,而不是通过 GUI 输入。
如果您对数字逻辑设计(和一些 HDL)一无所知,我认为您可以在大约 2 天内拥有一个在 VHDL 中模拟的功能性 8 位微处理器。在那段时间里,你不会构建任何非常快速或非常强大的东西,但这是一个很好的成长起点。如果您必须学习数字设计,请花几天时间了解这些工具的工作原理并模拟一些基本的逻辑电路,然后再进行 uP 设计。
开始学习数字系统的基础知识,以及如何构建二进制加法器。继续构建一个 ALU 来处理加法、减法和、或、异或等,然后构建一个序列器来从 RAM 读取操作码并将它们提供给执行单元。
您可以对指令集设计感兴趣,但我建议您从真正简单的开始,直到您了解正在发生的事情,然后将其扔掉并从更复杂的东西重新开始。
一旦您对设计进行了很好的模拟,您就可以衡量其复杂性并购买适合的设备。您应该查看您选择的设备系列的开发系统。选择一个比您开发所需更大的设备,因为能够在它运行时添加额外的工具来调试它是件好事,而且您几乎肯定不会在设备上安装它的早期阶段优化您的设计。
编辑:Colin Mackenzie有一个关于 uC 设计和一些 FPGA 板以及其他一些东西的很好的教程。
您可能想看看OpenCores.org,这是一个用于开源 IP 内核开发的“伪造”站点。另外,请考虑为自己准备一个类似其中之一的开发板来玩。
我曾经看过一本教科书,它逐步介绍了如何使用 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 校友)运行的大学项目。鉴于这可以压缩成足够小的格式用于大学项目,它也可能是一个好的开始。
为了玩软核微处理器,我喜欢 Digilent 的Spartan 3 Starter Board ,因为它有 1M 的静态 RAM。你知道,SDRAM 和 DDR RAM 更难发展。
LED、开关和简单的串行接口是调试和通信的优势。
正如有人已经指出的那样,OpenCores.org是查找工作示例的好地方。我在大学时使用Plasma uC写了一些论文。
微控制器可以像 ROM 一样简单(指令*2^x +(时钟相位)是地址,输出是控制信号,你可以开始了)。或者它可以是具有三臂和分支预测支持硬件的复杂哈利野兽。
你能提供更多关于你的愿望的细节吗?
在大家搜索了一些非常有用的链接之后,我遇到了这个Wikiversity 课程。
第一句话是,“你有没有想过构建自己的微处理器?”
Xilinx为其 FPGA配备了MicroBlaze和PicoBlaze软控制器。后者是免费的,而 IIRC,Microblaze 需要付费。
顾名思义,PicoBlaze 是一个小型处理器,有其局限性,但 OTOH 足够紧凑,可以在 CPLD 上运行。无论如何,一个不错的处理器可以帮助您入门。
Pablo Bleyer 有一个与 PicoBlaze 兼容的PacoBlaze。PacoBlaze 是用 Verilog 编写的(正如 Adam 所说,它不如 VHDL 常见)。
你需要一个大 fpga 来换一个小 mcu。
如果你需要像 AD 这样的东西,你需要一个具有正确硬件块的 fpga。
您需要一个软核才能放入 fpga。
但是在这个项目之前只玩一个普通的 MCU 怎么样,所以你知道你要去哪里吗?一些来自 Atmel 的 AVR:s 怎么样。
您可以在此站点获得 pic 微控制器的免费样品。最后我知道,你甚至不必支付运费。
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=64