CN101963943B - 寻找fpga配置文件与clb块配置资源的映射方法 - Google Patents

寻找fpga配置文件与clb块配置资源的映射方法 Download PDF

Info

Publication number
CN101963943B
CN101963943B CN201010216532.0A CN201010216532A CN101963943B CN 101963943 B CN101963943 B CN 101963943B CN 201010216532 A CN201010216532 A CN 201010216532A CN 101963943 B CN101963943 B CN 101963943B
Authority
CN
China
Prior art keywords
file
configuration
clb
bit
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201010216532.0A
Other languages
English (en)
Other versions
CN101963943A (zh
Inventor
叶守银
徐惠
王锦
刘远华
汤雪飞
张志勇
祁建华
牛勇
沈懿桦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sino IC Technology Co Ltd
Original Assignee
Sino IC Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sino IC Technology Co Ltd filed Critical Sino IC Technology Co Ltd
Priority to CN201010216532.0A priority Critical patent/CN101963943B/zh
Publication of CN101963943A publication Critical patent/CN101963943A/zh
Application granted granted Critical
Publication of CN101963943B publication Critical patent/CN101963943B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

一种FPGA配置文件与CLB块配置资源的映射方法,包括如下步骤:(1)通过不同配置的位流数据比较获得CLB块配置数据块的位宽。(2)通过不同配置的位流数据比较获得CLB块配置数据块的行数。(3)通过计算获得FPGA配置文件与CLB块配置资源的映射关系。(4)通过位流数据比较获得每个资源所映射的数据。与现有技术相比,本方法不需依赖FPGA固有的逻辑设计,只需通过配置文件的比较及相应的计算,就可以精确获知FPGA配置文件与CLB块配置资源的映射,再以这种映射用于FPGA的应用开发,大大提高调试效率,加速开发进程。

Description

寻找FPGA配置文件与CLB块配置资源的映射方法
技术领域
本发明涉及一种现场可编程门阵列(Field Programmable Gate Array,简称FPGA)的资源映射分析方法。
背景技术
现场可编程门阵列(FPGA)是基于通过可编程互联连接的可配置逻辑块(CLB)矩阵的可编程半导体器件,CLB是FPGA内的基本逻辑单元。
FPGA技术,是二十世纪最重要的集成电路设计技术之一。FPGA电路在许多复杂电子系统中获得广泛应用。船舶控制系统、卫星导航、基站中转、武器系统等大量使用了FPGA器件,有覆盖或完全取代CPU、DSP等应用领域的趋势。
由于一般集成电路器件的研制周期都比较长,从设计到批量生产阶段一般都需要好几个月的时间,容易造成产品出货时却有点过时,与市场情况有出入。作为整机研制单位,最希望能有一种产品能快速实现所需的任何功能,从而能够快速开发、快速投放市场,抢得先机、抢得市场,FPGA器件完全可以满足用户得这种灵活多样得要求。
利用FPGA开发我们所需的产品,需要先将实现产品功能的配置文件下载到FPGA内部的配置RAM,通过应用若发现未能达到设计要求,我们就必须修改配置文件,一般开发流程是:根据要求首先进行逻辑设计、功能仿真、修改优化,然后进行设计综合、设计实现、产生配置文件等过程,如果使用中发现问题,哪怕很清楚错在哪里、仅需断开其中一个点,也需要从头来过。如果能在配置文件中直接修改这个点,就会大大提高调试效率,加速开发进程,如此我们必须知道配置文件与资源的映射关系。
术语解释:(1)配置文件——FPGA启动时需要从外部读取配置数据,这种数据文件称为配置文件;(2)映射——硬件可配置资源与配置数据文件之间的对应关系。
发明内容
为了解决现有的FPGA开发过程中遇到的上述问题,本发明提供了一种确定配置文件与资源之间的映射关系的特别方法,即寻找FPGA配置文件与CLB块配置资源的映射方法,它不需依赖FPGA固有的逻辑设计,只需通过配置文件的比较及相应的计算,就可以精确获知FPGA配置文件与CLB块配置资源的映射,这种映射可用于FPGA的应用开发。
一种寻找FPGA配置文件与CLB块配置资源的映射关系的方法,步骤是,先通过不同配置的位流数据比较获得CLB块配置数据块的位宽;再通过不同配置的位流数据比较获得CLB块配置数据块的行数;然后通过计算获得FPGA配置文件与CLB块配置资源的映射关系;最后通过位流数据比较获得每个资源所映射的数据。包括如下具体步骤:
(1)不配置任何资源,并产生位流文件(file-0);
(2)建立任意配置[A],使用CLB记为CLBxy,并产生位流文件(file-1);
(3)在配置[A]基础上增加新的配置[B],配置[A]和配置[B]使用的资源相同,位置在同一个CLB列,但不在同一CLB行;配置[B]使用的CLB记为CLBx(y+n),并产生位流文件(file-n);
(4)比较位流文件(file-0)和产生位流文件(file-1),记录首个不同数据的位置bit(0);
(5)比较位流文件(file-1)和产生位流文件(file-n),记录首个不同数据的位置bit(n);
(6)在配置[A]基础上增加新的配置[C],配置[A]和配置[C]使用的资源相同,位置在同一个CLB行,但不在同一CLB列;配置[C]使用的CLB记为CLB(x+m)y,并产生位流文件(file-m);
(7)比较位流文件(file-1)和产生位流文件(file-m),记录首个不同数据的位置bit(m);
(8)计算得到COL(列)=[bit(n)-bit(0)]/n,ROW(行)=[bit(m)-bit(0)]/m[COL*M+Δ];假设该FPGA的CLB规模为M×N,Δ为常数,那么每一个CLB块配置数据的大小为COL(列)×ROW(行)的矩阵;
(9)重复步骤(6)~(8)的操作,计算得到Δ值;
(10)用软件工具在CLB00处建立配置,并产生位流文件(file-F);
(11)比较位流文件(file-0)和产生位流文件(file-F),记录首个不同数据的位置bit(F);
(12)CLB块配置数据大小为:整个配置文件从bit(F)开始的[COL×M+Δ]×ROW×N大小的文件,
即FPGA中CLB配置数据在配置文件中的位置:从bit(F)开始的[COL×M+Δ]×ROW×N个位的数据。
所述步骤8)的计算方法如下:
FPGA配置文件数据分成若干FRAME,FRAME的数据长度为已知,在数据手册中有说明;连续ROW行的FRAME数据矩阵构成了两个IOPAD和IOPAD连所在列的所有CLB数据;如:
FRAME1:0101000100010000001001001001001010010010000101001
FRAME2:0100010010010010010100100110000000010100101000100
FRAME3:1001001001010100010001000000001010010010000101001
………………………
FRAMEn:0100100101001001000010100101010001000100000010010
以上n=ROW,那么构成的数据区域可分成如下数据块,数据块的数量为每一列的CLB数M加2,M为已知值。
每CLB块的数据矩阵的列数COL通过公式:COL(列)=[bit(n)-bit(0)]/n得到;FRAME的数据长度=(M+2)*ROW+Δ;则得到Δ值(参考图9)。
再通过同一行相邻列的配置得到新的数据文件,比较计算得到:ROW(行)=[bit(m)-bit(0)]/{m[COL*M+Δ]}。
与现有技术相比,本发明不需依赖FPGA固有的逻辑,直接对配置位流文件进行比较处理,获得FPGA配置文件与CLB块配置资源的映射。
附图说明
图1是本发明的流程图;
图2.1是现有技术中生成FPGA配置文件的流程图;
图2.2是应用本发明的FPGA配置文件的生成方法的流程图;
图3是应用本发明的实施例中用FPGA编辑工具建立新的设计文件的示意图;
图4是应用本发明的实施例中手动实现CLB的逻辑设计的示意图;
图5是应用本发明的实施例中生成CLB位流文件的示意图;
图6是应用本发明的实施例中用位流数据专用分析软件进行CLB配置提取的示意图;
图7是应用本发明的实施例中用位流数据专用分析软件进行CLB配置搬移的示意图;
图8是应用本发明的实施例中保存最终测试配置文件的示意图;
图9是本发明步骤8)的计算方法示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细说明。
一种寻找FPGA配置文件与CLB块配置资源的映射关系的方法,包括如下步骤:
(1)用软件工具不配置任何资源,并产生位流文件(file-0);
(2)用软件工具建立任意配置[A],使用CLB记为CLBxy,并产生位流文件(file-1);
(3)用软件工具在配置[A]基础上增加新的配置[B],配置[A]和配置[B]使用的资源相同,位置在同一个CLB列,但不在同一CLB行;配置[B]使用的CLB记为CLBx(y+n),并产生位流文件(file-n);
(4)比较位流文件(file-0)和产生位流文件(file-1),记录首个不同数据的位置bit(0);
(5)比较位流文件(file-1)和产生位流文件(file-n),记录首个不同数据的位置bit(n);
(6)用软件工具在配置[A]基础上增加新的配置[C],配置[A]和配置[C]使用的资源相同,位置在同一个CLB行,但不在同一CLB列;配置[C]使用的CLB记为CLB(x+m)y,并产生位流文件(file-m);
(7)比较位流文件(file-1)和产生位流文件(file-m),记录首个不同数据的位置bit(m);
(8)计算得到COL(列)=[bit(n)-bit(0)]/n,ROW(行)=[bit(m)-bit(0)]/m[COL*M+Δ];假设该FPGA的CLB规模为M×N,Δ为常数,那么每一个CLB块配置数据的大小为COL(列)×ROW(行)的矩阵;
(9)重复步骤(6)~(8)的操作,计算得到Δ值;
(10)用软件工具在CLB00处建立配置,并产生位流文件(file-F);
(11)比较位流文件(file-0)和产生位流文件(file-F),记录首个不同数据的位置bit(F);
(12)CLB块配置数据大小为:整个配置文件从bit(F)开始的[COL×M+Δ]×ROW×N大小的文件,
即FPGA中CLB配置数据在配置文件中的位置:从bit(F)开始的[COL×M+Δ]×ROW×N个位的数据。
在具体应用本发明时,编辑工具是具体FPGA配套的PFGA开发包,本例中以XILINX公司SPARTAN-II XC2S100 FPGA为例说明,对应的编辑工具是《Xilinx Foundation Series 3.1i》。上述步骤中的软件工具即是FPGA开发系统软件《Xilinx Foundation Series 3.1i》。
为了提高测试故障覆盖率和便于故障覆盖率的计算,FPGA测试配置设计采取模块化配置方式,在一个配置文件中,设计至少一种CLB或IO的配置模块,在整个FPGA内重复这样的配置模块(我们知道FPGA包括许多结构完全相同的CLB矩阵和IO矩阵),每个CLB或IO的可配置资源的测试覆盖率很容易经过计算得到,那么整个FPGA的可配置资源的测试覆盖率也易于计算出。
应用本发明后,通过提取配置文件中的一块或几块CLB或IO的配置数据,在位流数据专用分析软件(FPGA_bitstream)的帮助下将其搬移到FPGA任意指定的CLB模块上重新构造FPGA配置文件,这样可以快速生成新的测试配置。
如图2.2所示为应用本发明的设计开发流程,主要包括:分析测试要求建立配置文件;手动进行CLB、IO等模块设计;进行数据提取与搬移(要根据数据与资源的映射关系进行),完成配置文件,最后根据需要可以进行FPGA测试。
应用本发明的方法可以避免一些设计规则对测试配置设计的限制,达到快速生成测试配置文件的目的,只要直接将测试要求在编辑工具的FPGA EDITOR工具中手工实现连接并生成CLB或IO模块的配置数据,通过位流数据专用分析软件的复制搬移功能,得到FPGA中所有可配置资源的测试配置文件,并生成测试码。
请参见图3至图8所示的一个具体实施例。包括如下步骤:
(1)用FPGA EDITOR建立新的名称为XC2S100的设计文件(如图3)。
(2)手动实现CLB的逻辑设计(如图4)。
(3)生成CLB位流文件,该文件名称为CLBR1C15.Bit(如图5)。
(4)用位流数据专用分析软件进行CLB配置提取与搬移。具体包括:
打开CLBR1C15.Bit位流文件的步骤(如图6);
点击选取CLB数据区,根据数据与资源的映射关系(此处的映射关系即为通过本发明的方法得到),用copy的方式提取与搬移CLB数据,使FPGA中的每一个资源符合期待的要求的步骤(如图7)。
(5)保存最终文件生成新的测试配置文件test-bitstream.bit(如图8)。
应用了本发明,使FPGA配置文件的生成方法具有以下特点:
(1)精确设计了CLB配置模块;
(2)充分考虑了CLB模块和IO模块与配置文件的映射关系。
(3)避免了一些设计规则对测试配置设计的限制,直接对配置文件进行处理,达到快速生成测试配置文件的目的。

Claims (2)

1.一种寻找FPGA配置文件与CLB块配置资源的映射方法,其特征是包括如下步骤:
1)不配置任何资源,产生位流文件(file-0);
2)建立任意配置[A],使用的CLB记为CLBxy,并产生位流文件(file-1),x为配置[A]的行数,y为配置[A]的列数;
3)在配置[A]基础上增加新的配置[B],配置[A]和配置[B]使用的资源相同,位置在同一个CLB列,但不在同一CLB行,配置[B]使用的CLB记为CLBx(y+n),并产生位流文件(file-n);
4)比较位流文件(file-0)和产生位流文件(file-1),记录首个不同数据的位置bit(0);
5)比较位流文件(file-1)和产生位流文件(file-n),记录首个不同数据的位置bit(n);
6)在配置[A]基础上增加新的配置[C],配置[A]和配置[C]使用的资源相同,位置在同一个CLB行,但不在同一CLB列,配置[C]使用的CLB记为CLB(x+m)y,并产生位流文件(file-m);
7)比较位流文件(ffie-1)和产生位流文件(file-m),记录首个不同数据的位置bit(m);
8)计算得到COL(列)=[bit(n)-bit(0)]/n,ROW(行)=[bit(m)-bit(0)]/{m[COL*M+Δ]};假设本FPGA包含的CLB规模为M×N,且Δ为常数,那么每一个CLB块配置数据的大小为COL(列)×ROW(行)的矩阵,其中,M为矩阵的行数,N为矩阵的列数,m取值为1、2、3、...、M,n取值为1、2、3、...、N;
9)重复步骤6)~8),验证Δ值;
10)在CLB00处建立配置,并产生位流文件(file-F);
11)比较位流文件(file-0)和产生位流文件(file-F),记录首个不同数据的位置bit(F);
12)CLB块配置数据大小为:整个配置文件从bit(F)开始的[COL ×M+Δ]×ROW×N大小的文件,
即FPGA中CLB配置数据在配置文件中的位置是:从bit(F)开始的[COL×M+Δ]×ROW×N个位的数据;其中
FPGA配置文件数据分成若干FRAME,FRAME的数据长度为已知,在数据手册中有说明;连续ROW行的FRAME数据矩阵构成了两个IOPAD和IOPAD连所在列的所有CLB数据;如:
FRAME1:0101000100010000001001001001001010010010000101001 
FRAME2:0100010010010010010100100110000000010100101000100 
FRAME3:1001001001010100010001000000001010010010000101001 
............................
FRAMEn:0100100101001001000010100101010001000100000010010 
以上n=ROW,那么构成的数据区域可分成如下数据块,数据块的数量为每一列的CLB数M加2,M为已知值;
每CLB块的数据矩阵的列数COL通过公式:COL(列)=[bit(n)-bit(0)]/n得到,FRAME的数据长度=(M+2)*ROW+Δ,则得到Δ值;
再通过同一行相邻列的配置得到新的数据文件,比较计算得到:ROW(行)=[bit(m)-bit(0)]/{m[COL*M+Δ]}。
2.根据权利要求1所述的方法,其特征是所述步骤1、2、3、6和10是由软件工具FPGA开发系统软件《Xilinx Foundation Series 3.1i》实现的。
CN201010216532.0A 2010-06-30 2010-06-30 寻找fpga配置文件与clb块配置资源的映射方法 Active CN101963943B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010216532.0A CN101963943B (zh) 2010-06-30 2010-06-30 寻找fpga配置文件与clb块配置资源的映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010216532.0A CN101963943B (zh) 2010-06-30 2010-06-30 寻找fpga配置文件与clb块配置资源的映射方法

Publications (2)

Publication Number Publication Date
CN101963943A CN101963943A (zh) 2011-02-02
CN101963943B true CN101963943B (zh) 2015-04-29

Family

ID=43516816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010216532.0A Active CN101963943B (zh) 2010-06-30 2010-06-30 寻找fpga配置文件与clb块配置资源的映射方法

Country Status (1)

Country Link
CN (1) CN101963943B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779194A (zh) * 2011-05-10 2012-11-14 中国科学院微电子研究所 一种基于soi的fpga结构的码流生成方法和装置
CN103164228B (zh) * 2013-03-29 2015-12-23 北京经纬恒润科技有限公司 一种现场可编程门阵列程序的生成方法及装置
CN104536755B (zh) * 2014-12-29 2019-05-10 深圳市国微电子有限公司 可编程逻辑器件重构方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1378665A (zh) * 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
CN101169466A (zh) * 2007-10-12 2008-04-30 电子科技大学 现场可编程门阵列可配置逻辑块验证方法及系统
CN101697129A (zh) * 2009-10-27 2010-04-21 中兴通讯股份有限公司 嵌入式系统现场可编程门阵列逻辑自加载方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281167B2 (en) * 2003-08-26 2007-10-09 Finisar Corporation Multi-purpose network diagnostic modules
US20090100304A1 (en) * 2007-10-12 2009-04-16 Ping Li Hardware and Software Co-test Method for FPGA

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1378665A (zh) * 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
CN101169466A (zh) * 2007-10-12 2008-04-30 电子科技大学 现场可编程门阵列可配置逻辑块验证方法及系统
CN101697129A (zh) * 2009-10-27 2010-04-21 中兴通讯股份有限公司 嵌入式系统现场可编程门阵列逻辑自加载方法及系统

Also Published As

Publication number Publication date
CN101963943A (zh) 2011-02-02

Similar Documents

Publication Publication Date Title
CN1303668C (zh) 复合集成电路的设计验证方法
US20100229061A1 (en) Cell-Aware Fault Model Creation And Pattern Generation
US20090171606A1 (en) Semiconductor manufacture performance analysis
CN101793941B (zh) Fpga配置文件的生成方法
CN113971383A (zh) 分布式静态时序分析
US11468218B2 (en) Information theoretic subgraph caching
CN101963943B (zh) 寻找fpga配置文件与clb块配置资源的映射方法
CN115398253A (zh) 用于模拟缺陷可检测性分析的迅速且可扩展的方法
US8813006B1 (en) Accelerated characterization of circuits for within-die process variations
Tille et al. Incremental solving techniques for SAT-based ATPG
Fasching et al. Technology CAD systems
US20210312113A1 (en) Method for finding equivalent classes of hard defects in stacked mosfet arrays
US8443313B2 (en) Circuit design optimization
CN103440391B (zh) 一种基于数值选择函数的半导体工艺角扫描仿真方法
US11836433B2 (en) Memory instance reconfiguration using super leaf cells
US11734489B2 (en) Circuit layout verification
CN112861455B (zh) Fpga建模验证系统及方法
US9514258B2 (en) Generation of memory structural model based on memory layout
CN101593222A (zh) 一种实现版图验证中密度检查的方法
CN113868997A (zh) 基于与缺陷相关联的计算机辅助设计标识符来分割缺陷
US10740515B1 (en) Devices and methods for test point insertion coverage
KR20220139904A (ko) 누설 전류들의 통계적 변화들을 갖는 동적 랜덤-액세스 메모리 패스 트랜지스터들의 설계
CN113204932A (zh) 用于良率分析和物理故障分析的先进单元感知故障模型
CN101794328B (zh) 针对门输出负载的快速且准确的估计
US20230071521A1 (en) Detecting simulation, emulation and prototyping issues using static analysis tools

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: 201203 Shanghai Zhangjiang road 351 GuoShouJing No. 2 No. 1 floor

Applicant after: Shanghai Hualing Integrated Circuit Technology Co., Ltd.

Address before: 201203 Shanghai Zhangjiang road 351 GuoShouJing No. 2 No. 1 floor

Applicant before: Shanghai Hualing Integrated Circuit Co., Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SHANGHAI HUALING INTEGRATED CIRCUIT CO., LTD. TO: SHANGHAI HUALING INTEGRATED CIRCUIT TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant