将陆续上传本人写的新书《自己动手写处理器》(尚未出版),今天是第五篇,我尽量每周四篇
通过上一章的介绍,读者应该知道CPU内部有一些基本的电路,比如:译码电路、运算电路、控制电路,此外还有一些寄存器等。这些电路怎么实现呢?当然可以通过一大堆分立的元器件实现,实际上在2008年,美国加州的游戏开发人士Steve Chamberlin就自己制造了一款8位CPU,耗时18个月,花费1000美元,总共使用了1253条线缆,如图2-1所示,Steve Chamberlin为它起了一个十分贴切的名字——BMOW(Big Mess of Wires)。
还有一位叫Bill Buzbee的朋友也用200多块74系列的TTL集成电路纯手工制造了一款CPU。
上述事件只是证明了使用分立元件实现CPU的可行性,但那并不是实现CPU的好方法,本书是通过“代码 + FPGA”的方式实现CPU的,本章将对其原理进行解释,并对使用的编程语言Verilog HDL进行介绍。
2.1可编程逻辑器件概述
FPGA是可编程逻辑器件(PLD:Programmable Logic Device)的一种。PLD是上世纪70年代发展起来的一种新型器件,它的应用和发展不仅简化了电路设计,降低了开发成本,提高了系统可靠性,而且给数字系统的设计方法带来了革命性的变化。截止到现在,出现了多种工艺、不同原理的PLD,如下。
- PLA(Programmable Logic Array)可编程逻辑阵列
- PAL(Programmable Array Logic)可编程阵列逻辑
- GAL(Generic Array Logic)通用阵列逻辑
- PROM(Programmable Read-Only Memory)可编程只读存储器
- EPLD(Erasable Programmable Logic Device)可擦除可编程逻辑器件
- CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件
- FPGA(Field Programmable Gate Array)现场可编程门阵列
按照不同的内部结构可