反熔丝FPGA配置和编程方法

FPGA/ASIC技术

190人已加入

描述

摘要: 反熔丝FPGA 制造困难且多用在特殊用途领域, 因此有关其位流文件的研究很少.本文首先介绍了反熔丝FPGA 及FPGA CAD 软件流程, 接着描述了反熔丝FPGA 具体结构并通过一个具体例子说明了如何配置反熔丝FPGA , 然后讨论了反熔丝FPGA的编程方法, 由此引出了位流文件的格式和反熔丝单元编程信息格式, 最后提出了反熔丝FPGA 位流文件生成算法并在实验平台实现了该算法。

1 引言

FPGA (现场可编程门阵列)是与CPU 和DSP并列的目前半导体市场上最重要的三类核心数字器件之一反熔丝FPGA 由于其可靠性高抗辐射等优点, 成为空间领域使用的主流FPGA。

典型FPGA 的CAD 流程包括逻辑综合, 工艺映射与打包, 布局, 布线, 时序分析和位流生成几个步骤.逻辑综合负责将硬件描述语言或者原理图形式描述的电路转化为基本门网表, 并进行工艺无关的逻辑优化.工艺映射将于工艺无关的门级网表转换成目标FPGA 的逻辑单元构成的网表布局工具确定了实现电路功能需要的各逻辑单元在FPGA中的具体位置.布线工具根据布局的结果, 利用适当的布线资源, 连接各逻辑单元的输人输出引脚。FPGA位流文件(bit一stream )是指对可编程逻辑器件进行配置的二进制数据集, 这个数据集决定了FPGA的具体功能.位流文件具体描述了需要配置的反熔丝的信息, 编程器通过这些信息即可编程FPGA生成目标电路.由于没有具体的资料可供参考,且当前FPGA 架构存在多样性的特点, 位流文件设计的通用性不强,故而只能从位流文件的基本原理与反熔丝FPGA 的结构出发川, 按照软件工程的方法针对反熔丝FPGA进行位流生成算法设计。

2 反熔丝FPGA 结构及配置方法

配置FPGA大致可分为对逻辑单元配置!布线开关配置以及输人输出单元配置这三部分, 对于细颗粒反熔丝FPGA 来说, 由于逻辑单元是定制的,即无需配置的, 其实现不同逻辑的能力不是依靠逻辑单元本身, 而是通过选择其各个输人引脚与布线资源之间进行不同的连接来实现。

图1 所示为一个典型的细颗粒FPGA逻辑单元, 由于选择器可实现任意逻辑的性质, 对多个选择器进行适当组合, 构成一个逻辑单元.图2 所示该逻辑单元可以通过与布线资源的布通排列组合来实现数目巨大的逻辑门。

FPGA

 

FPGA

下面介绍一个具体的配置逻辑单元的例子, 如果需要实现式(1) 逻辑

FPGA

FPGA

同理对于I/( )端口, 可以通过对每个端口的输人、输出引脚和布线资源的连接进行配置即可决定
其是输人端口还是输出端口. 由此可见, 对细颗粒反熔丝FPGA 进行配置,实际上就是对布线资源进行配置.因此生成位流配置文件也大为简化, 只需要对FPGA 内部需要配置的反熔丝信息进行整合, 即可得到所需要的位流文件。

3 反熔丝FPGA 位流文件生成

位流文件生成算法所依托的FPGA 结构是基于经典反熔丝FPGA来设计的,FPGA中部为重复排列的FPGA逻辑单元, 呈4X 8 方式布置, 四周为I/0 模块, 共24 个端口.根据反熔丝的烧写方式, 编程器在位流文件下载完成后, 会将位流文件中需要烧通的反熔丝的位置信息传到FPGA内部寄存器中, 通过FPGA内部的外围寻址电路选择要烧通的反熔丝.而在芯片内部, 要将一个反熔丝烧通,必须建立相应的高压电路连接, 如图4 所示.使反熔丝一端接Vpp , 一端接GND , 而这又是通过打开适当的横向和纵向的传输管来实现的.在不需要编程的反熔丝的所在的轨道端点都加Vpp/2 , 使得它们两端的电压不会超过VP/2 , 从而保护不要编程的反熔丝, 防止其被意外烧通.使用图5 的编程方式的优势是一个坐标的横向或纵向的传输管控制线都只需要一根, 而这一根横向或纵向的线恰恰就是反熔丝在整个反熔丝阵列中的横坐标和纵坐标.因此, 可以结合CAD 流程中产生的工艺映射网表文件, 布局结果文件, 布线结果文件, 以及FPGA 的具体电路设计, 精确的确定反熔丝的横纵坐标, 得到横纵坐标后, 再由编程电路进行寻址编程川。

FPGA

FPGA

在确定下反熔丝的坐标位置后, 还需注意到两种反熔丝的编程方式.第一种为处于横纵连线交叉处的反熔丝, 负责横向布线资源与纵向布线资源之间的连接. 由于两种反熔丝的具体编程过程不同,故位流生成算法在生成反熔丝信息时, 除了坐标, 还需要提供反熔丝类型信息.综上所述, 设计的反熔丝FPGA 位流文件生成算法的输出文件将采取图6 的文件格式。

FPGA

其中,具体的反熔丝信息格式如图7一帧反熔丝信息长度为两个字节.其中14 位为位置信息, X ,Y 坐标各7 位, 表示反熔丝类型的TyPe 为两位,'00'代表交叉类型, '11'代表单向类型。

FPGA

为了生成位流文件, 需要收集CAD 流程前几个阶段的结果, 生成FPGA 内部需要配置的反熔丝集合的相关信息.因此设计的反熔丝FPGA 位流生成算法以工艺映射后的网表和布局布线的结果文件作为算法输人.另一方面, 以能够被编程器识别的,包含全部反熔丝编程信息的编程文件作为输出。

对于反熔丝FPGA逻辑单元来说, 其实现逻辑的方式决定了它可能会利用VCC , GND 等全局布线资源, 但是全局布线资源是不参与布线的, 所以在布线结果中, 并不会出现VCC , GND 与逻辑单元引脚的连接信息.为了解决这一问题, 算法还需利用到工艺映射生成的网表文件来得到逻辑单元引脚与VCC 和GND 之间的连接信息, 再根据逻辑单元的布局位置信息, 来对所需要使用的布线开关进行精确的定位。要根据布线结果计算反熔丝信息, 处于不同位置的反熔丝横纵坐标计算方法往往不同.例如,如果要计算一个输出1/ 0 端口的输人和一个普通逻辑单元的输入, 在得到其目标逻辑单元的地址后,由于相对于左下角的坐标原点, 其所要经过的横向和纵向的连线数目(即坐标)计算方法显然不同, 故而必须对FPGA 硬件电路做出适当的划分, 而这个划分, 也就成为了位流生成算法的核心。

经过分析, 在图8 中, 可以将整个芯片划分为A , B ,C , D , E 五个区域, 在这五个区域内的所有模块共享同一种坐标计算方法.现在, 在对布线结果进行处理时, 首先需要判断其在芯片中的所属区域, 然
后再对应的调用坐标计算函数即可.图9 是细颗粒反熔丝FPGA 位流生成算法的伪代码. 图10 是最
终生成的反熔丝FPGA 位流文件的图形化显示, 便于需要时查看。

FPGA

FPGA

 

FPGA

4 结束语

在介绍了FPGA CAD 软件流程后, 通过具体例子描述了反熔丝FPGA具体结构并展示了如何配置反熔丝FPGA , 然后讨论了反熔丝FPGA 的编程方式.最后引出了位流文件的格式和反熔丝单元编程信息格式, 提出并实现了反熔丝FPGA 位流文件生成算法, 以图形化形式对位流文件信息进行了显示.为了完成实用的反熔丝FPGA CAD系统, 对于位流文件的研究还有很多工作要做.第一, 位流文件还需要根据具体的反熔丝FPGA 的编程电路的具体实现而进行修改, 以适应具体的电路要求.位流文件必须与FPGA 内部的解码编程电路相配套, 共同对反熔丝进行寻址和烧录.第二, 位流文件的生成还应该考虑增强对反熔丝进行容错的能力, 即当某个反熔丝由于工艺等原因失效不能编程后, 配置软件应能动态修改位流文件, 这样即使反熔丝的良率不能达到10 % , 电路还是可以在大部分情况下满足使用要求。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分