芯片级拆解:世界第一颗FPGA
现场可编程门阵列(FPGA)可以实现任意数字逻辑,从微处理器到视频生成器或加密矿机,一应俱全。FPGA由许多逻辑模块组成,每个逻辑模块通常由触发器和逻辑功能以及连接逻辑模块的路由网络组成。FPGA的特殊之处在于它是可编程的硬件:您可以重新定义每个逻辑块及其之间的连接,用来构建复杂的数字电路,而无需物理上连接各个门和触发器,也不必花费设计专用集成电路的费用。
内部裸片显微照片
FPGA是由Ross Freeman发明的,他在1984年共同创立了Xilinx,并推出了第一款FPGA--XC2064。这种FPGA比现代FPGA简单得多,它只包含64个逻辑块,而现代FPGA中的逻辑块有几千个或数百万个,但它导致了目前价值数十亿美元的FPGA产业。由于其重要性,XC2064被列入芯片名人堂。在这篇博文中,我们对Xilinx的XC2064进行了逆向工程,解释了它的内部电路(上图)以及 "比特流 "是如何对它进行编程的。
Xilinx XC2064是第一款FPGA芯片
如今,FPGA是采用Verilog或VHDL之类的硬件描述语言编程的,但是当时Xilinx提供了他们自己的开发软件XACT,运行再MS-DOS操作系统之下,价格高达12,000美元。XACT自然无法与现在的FPGA开发工具相比,XACT通过用户定义了每个逻辑块的功能(如下面的屏截图所示)以及逻辑块之间的连接,对连接进行布线连接,并生成可加载到FPGA中的比特流文件。
XACT的屏幕截图。两个查找表F和G在屏幕底部实现逻辑运算,上面部分显示该逻辑的卡诺图
通过位流(具有专有格式的位序列)配置FPGA。如果您查看XC2064的比特流(如下所示),那是令人费解的混合模式,这些模式不规则地重复,并散布在比特流中。XACT中的功能定义与位流中的数据之间没有明确的联系。但是,研究FPGA的物理电路可以揭示比特流数据的结构,并且可以理解。
通过位流(具有专有格式的位序列)配置FPGA。如果您查看XC2064的比特流(如下所示),那是令人费解的混合模式,这些模式不规则地重复,并散布在比特流中。XACT中的函数定义与位流中的数据之间没有明确的联系。但是,研究FPGA的物理电路可以揭示比特流数据的结构,并且可以理解。
01
FPGA如何工作?
02
CLB:可配置逻辑块
03
互连
04
Implementation
05
Tile的内部结构
06
晶体管
07
比特流和配置存储
08
查找表多路复用器
09
锁存器
10
8-pin 交换矩阵
11
输入路由
12
结论
—版权声明—
作者:Ken Shirriff 文章来源:面包板社区
仅用于学术分享,版权属于原作者。
若有侵权,请联系微信号:yiyang-sy 删除或修改!
—THE END—