CN101963943B - 寻找fpga配置文件与clb块配置资源的映射方法 - Google Patents
寻找fpga配置文件与clb块配置资源的映射方法 Download PDFInfo
- 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
Links
Abstract
一种FPGA配置文件与CLB块配置资源的映射方法,包括如下步骤:(1)通过不同配置的位流数据比较获得CLB块配置数据块的位宽。(2)通过不同配置的位流数据比较获得CLB块配置数据块的行数。(3)通过计算获得FPGA配置文件与CLB块配置资源的映射关系。(4)通过位流数据比较获得每个资源所映射的数据。与现有技术相比,本方法不需依赖FPGA固有的逻辑设计,只需通过配置文件的比较及相应的计算,就可以精确获知FPGA配置文件与CLB块配置资源的映射,再以这种映射用于FPGA的应用开发,大大提高调试效率,加速开发进程。
Description
技术领域
本发明涉及一种现场可编程门阵列(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》实现的。
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)
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)
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)
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 |
-
2010
- 2010-06-30 CN CN201010216532.0A patent/CN101963943B/zh active Active
Patent Citations (3)
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 |