fpga的互连资源
fpga内部的可编程互连资源是连接各模块的通道,形成多个clb,iob组成的功能电路。互连资源主要由各种长度的金属导线、可编程开关点和可编程开关矩阵组成。 fpga内部信号通过金属线在各个模块进行传输,并通过可编程开关点和可编程开关矩阵控制其传输方向。
所有的内部布线通道都由金属线、可编程开关点及可编程开关矩阵来完成布线任务。图1所示是spartan系列clb可编程连线资源示意图。布线区里的金属线以纵横交错的格栅状结构分布在两个层面(一层为横向线段;一层为纵向线段),金属线可分为单长线、双长线、长线和全局时钟线。下面对spartan系列clb可编程连线资源进行分别介绍。
图1 clb可编程连线资源
图2 可编程开关矩阵
1. 可编程开关矩阵
在每一个水平和垂直布线通道的交汇处有-个控制布线方向的可编程开关矩阵,其结构如图4.7所示。每个开关矩阵是由多个可编程的跨接的晶体管用于建立线间的连接。允许毗邻行和列的金属线段之间的可编程互连。例如一个单倍长度信号从开关矩阵的右边进入。能够与布线到上部、左部或底部的单长度线。同样,双长度线也是一样。
2.单长度线
单倍长度线提供了一种最大的互连灵活性和相邻功能块之间的快速布线。在邻近的clb中,有八条水平及八条垂直的单倍长度线与每个clb相连,这些线把位于clb每行每列的开关矩阵连接起来。单长度线之间的连接通过可编程开关矩阵的方式连接的。
单倍长度线在通过每个开关矩阵会产生延迟,因此,不适合长距离信号布线。通常用于局部区域的信号布线。
3.双长度线
由栅状金属段组成,比单长度线长两倍。有四条水平或垂直的双长度线与每个clb相连。在进入下一个开关矩阵之前穿行两个clb。双长度线是与开关矩阵交错成对分组,以使每根线在clb的另一行或列通过开关矩阵。双长度线由开关矩阵编程连接。提供快速灵活的中等距离布线。
4.长线
长线通常水平地或垂直地跨过整个阵列,或由中点的一个可编程分离开关将长线分成两条独立的布线通道。每行每列两个clb之间有3条水平长线。长线是能被一系列的三态门驱动,所以它们可以实现三态总线、宽多路转换器和”线与” 、”线或”功能。长线用于高扇出,时延小,远距离布线。
5.全局时钟线
全局时钟线只分布在垂直方向上,用来提供全局时钟信号和高扇出的控制信号。
6.布线通道
布线通道有三种:
(1) clb布线通道:用于连接行列通道的clb的布线通道为clb布线通道。
(2) iob布线通道:在clb阵列周围,用于连接i/o和clb布线通道。
(3) 全局布线:任务是分配整个器件的时钟得到最小的延迟和摆率。全局布线也可用作其它高扇出信号布线。
所有的内部布线通道是由金属段及可编程的开关点及开关矩阵来完成布线任务。一个构造的体系的矩阵在布线通道提供自动高效布线。设计软件基于密度和时序的要求自动分配适当资源。(http://www.diangon.com/版权所有)为了保证得到精确内连线的描述,设计者可打开epic设计编辑器去查找器件内实际的内部连接。
clb输入输出信号均匀分布于clb四周提供最大布线的灵活性。一般整个结构是对称有规则的,它适合建立布局布线的算法。输入、输出及查找表能自由在clb内改变位置避免布线拥挤。
图3 clb布线连线图
spartan系列详细的clb布线连线图如图3所示,阴影方块是可编程开关矩阵。金属线通过开关矩阵psm和可编程开关点与clb和iob相连。在每一个水平和垂直布线通道的交汇处有-个控制布线方向的可编程开关矩阵psm。可编程开关点也是由可编程的晶体管实现所选金属线之间及模块引脚之间的连接。
fpga的分段式连线结构提供了很好的互连灵活性和很高的布线成功率。但是这种连线结构也具有明显的缺点,由于每个信号的传输途径和金属线长度各异,它的信号传输延迟时间不能确定。与fpga相比,cpld不采用分段又连方式,cpld利用连续式互连结构实现逻辑单元的互连,因而具有较大的时间可预测性,产品可以给出引腿到引腿的最大延迟时间,同时工作速度也更快;具有isp性能的cpld,可以直接在系统内对其进行编程,因而类似于一问世就具有isp性能的sram查找表类型的fpga;cpld的主要缺点是功耗比较大,15000门以上的cpld功耗要高于fpga、门阵列和分立器件。