XC2064 FPGA具有一个8 x 8的CLB网格 每个CLB都有从AA到HH的字母名称。互连可以将例如块DC的输出连接到块DE的输入,如下所示。红线表示路由路径,红色小方块表示已激活的路由点。离开模块DC后,信号由第一个路由点定向到8针开关(绿色),该信号将其引导到另外两个路由点和另一个8针开关。(未显示未使用的垂直和水平路径。)请注意,布线相当复杂;即使是这条短路径,也使用了四个路由点和两个开关。 从块DC的输出路由到块DE的信号示例 下面的屏幕截图显示了 XACT 程序中的路由外观。黄线指示逻辑块之间的路由。随着信号的加入,挑战在于如何有效地路由而不使路径发生冲突。XACT 软件包执行自动路由,但也可以手动编辑路由。 XACT 程序的屏幕截图。此 MS-DOS 程序通过键盘和鼠标进行控制。4Implementation 本文的其余部分讨论了XC2064的内部电路,从裸片照片中的反向工程。 下图显示了XC2064芯片的布局。FPGA的主要部分是8×8的网格。每个图块包含一个逻辑块和相邻的路由电路。尽管图片显示将逻辑块(CLB)显示为与围绕它们的路由不同的实体,但这并不是 FPGA的实现方式。取而代之的是,每个逻辑块和相邻路由都实现为单个实体,即图块。(具体来说,图块包括每个CLB上方和左侧的路由。) XC2064芯片的布局 I/O模块围绕集成电路的边缘提供与外界的通信。它们连接到小的绿色方形焊盘,该焊盘连接到芯片的外部引脚。裸片被缓冲区(绿色)划分:两个垂直和两个水平。这些缓冲器可放大在电路中传播很长距离的信号,从而减少延迟。垂直移位寄存器(粉红色)和水平列选择电路(蓝色)用于将比特流加载到芯片中,如下所述。 5Tile的内部结构 下图显示了XC2064中单个Tile的布局;如上图所示,该芯片包含64个这样的Tile挤在一起。每个Tile约有40%的面积被保存配置位的内存单元(绿色)所占据。顶部三分之一处通过两个交换矩阵和许多单独的路由交换处理互连路由,下面是逻辑块。逻辑块的关键部分是输入的多路复用器、触发器和查找表(LUT)。每个块通过垂直和水平布线连接到相邻的块,以实现互连,电源和接地。配置数据位被水平地馈送到存储单元,而垂直信号选择要加载的存储单元的特定列。 5晶体管 FPGA由CMOS逻辑实现,该逻辑由NMOS和PMOS晶体管构建。晶体管在FPGA中具有两个主要作用。首先,可以将它们组合以形成逻辑门。其次,晶体管被用作信号通过的开关,例如以控制路由。在此作用下,该晶体管称为传输晶体管。 |