编辑: 252276522 | 2019-07-03 |
长线结构在最初的 CPLD 产品中是广泛采 用的, 但是 FPGA 新产品中采用层次式互连 也提供了大量的长线, 所以并不能认为长线 互连是 CPLD 专有的, 这一点将在连线资源 部分作进一步的讨论. 这也是我们将图1的结 构称为经典 FPGA 结构的原因. 另外, 从两 个最大的可编程器件供应厂家 X ilinx 和A l2 tera 的产品系列来看, X ilinx 将基于LU T 的XC3000
4000 5200 和基于MUX2
1 的XC6200都称为 FPGA 产品, 而将基于与或 阵列的 XC7300 9500称为 CPLD 产品;
A l2 tera 将其传统的基于与或阵列的M A X7000
9000 称为EPLD , 将基于LU T 的FL EX
8000 10K 称为 FPGA 产品, 可见这两家公 司也是以逻辑模块的不同作为区分标准的. 为了清楚地比较 FPGA 和CPLD , 我们将它 们的主要区别列在表1中. 总的来说, FPGA 是逻辑门级的可编程, CPLD 是逻辑块级的可编程, 所以 FPGA 的 编程灵活性要大大强于 CPLD 器件. 但是, FPGA 的逻辑门级编程的优势也决定了它的 不足之处: 基本单元之间的连线趋于复杂, 影 响了芯片的有效工作速度. 表1 FPGA 和CPLD 的比较 类型 FPGA CPLD 基本单元 LU T+ DFF、 MUX、 NAND2等 与或阵列 逻辑粒度 细粒度(逻辑门级) 粗粒度(逻辑块级) 编程技术 主要采用 SRAM 技术 EPROM , EEPROM , Flash M emory 应用范围 总线接口逻辑, 密集的寄存器和算术应用 复杂的组合逻辑, 有限状 态机, 高扇入的译码电路 代表产品 Xilinx: XC3000
4000 5200 A ltera: FL EX8000 10K A ctel:ACT1
2 3 A tmel:A T6000 A ltera:MAX7000
9000 Xilinx: XC7300
9500 AMD:MACH
4 5 L attice: ispL SI1000
2000 3000 ? 1994-2007 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net 第5期黄志军等: FPGA CPLD 结构分析
347 3 逻辑模块 逻辑模块 (Logic M odule, LM ) , 是FP2 GA CPLD 中实现各种逻辑的核心, 逻辑模 块的选择对 FPGA CPLD 的芯片面积、 速度 性能、 CAD 工具的开发都有重要影响. J. Ro se [2 ] 等人在 FPGA CPLD 结构研究领域 做出了开创性的工作, 他们引入并定义逻辑 块的功能度为逻辑块可实现不同布尔函数的 个数. 随着逻辑块功能度的增加, 每个模块的 引出端和面积将增加, 而实现一个电路所需 的模块总数将相应减少, 这将影响芯片中布 线面积的比例. 下面根据几种主要的逻辑模 块进行讨论.
311 基于L UT 的LM 基于查询表的逻辑模块是目前 FPGA 中使用最广泛的逻辑模块, 一种典型的模块 形式示于图3, 由四输入的LU T 和一个D 触 发器构成, 输出多路选择器决定是组合还是 时序输出(有时直接使用两个输出, 这时不需 要M U X). 输入端数为 n 的查询表是由2n *1 个SRAM 单元组成, n 个输入被译码以决定 从哪一个 SRAM 单元读出信息送到唯一的 输出端. 在芯片初始化阶段配置 LU T 中的 信息位, 决定LU T 实现的函数功能. n 输入 的LU T 可以实现任何 n 输入的函数, 所以 其功能度为2nn , 4输入 LU T 的功能度即为 256. 但是 n 输入的 LU T 需要2n 个SRAM 单元, 每个 SRAM 位都至少由5个M O S 管 组成, 这样对于4输入LU T 就至少需要80个MOS管(未含译码电路) , 而且用 SRAM 保 存信息的 FPGA 在工作时需要外挂 PROM 芯片. 不过, 采用 LU T 作为基本模块对于 CAD 工具中的工艺映射实现比较有利, 在工 艺映射时只须考虑满足输入输出端的要求, 而不必考虑模块内的具体逻辑. 所以, 基于 LU T 的逻辑模块仍然被广泛采用, 例如, X ilinx 公司的XC2000