CN103019947A - 一种fpga芯片配置信息模型的层出化构建方法 - Google Patents
一种fpga芯片配置信息模型的层出化构建方法 Download PDFInfo
- Publication number
- CN103019947A CN103019947A CN2012104933189A CN201210493318A CN103019947A CN 103019947 A CN103019947 A CN 103019947A CN 2012104933189 A CN2012104933189 A CN 2012104933189A CN 201210493318 A CN201210493318 A CN 201210493318A CN 103019947 A CN103019947 A CN 103019947A
- Authority
- CN
- China
- Prior art keywords
- sram
- layer
- fpga
- tile
- configuration information
- 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.)
- Granted
Links
Images
Abstract
本发明属于电子技术领域,具体为一种FPGA芯片配置信息模型的层次化构建方法。具体包括:(一)层次化划分SRAM地址,是将整块FPGA的SRAM阵列按地址等级从上往下分别划分为:TOP,AREA,BLOCK,TILE,FRAME,BIT六个层次;(2)层次化构建可编程资源,是将可配置资源的配置信息划分为4个层次,从底层向顶层分别为:SRAM层,ELEMENT层,SITE层和TILE层。本方法具有通用性,在设计不同款FPGA芯片时,只需要按照本方法要求建立配置模型,便能采用同一种SRAM阵列值查找程序生成位流;采用层次化思想建模,不仅能够清晰地描述电路内部的层次关系,便于后期测试和验证,还能极大地减小配置数据的存储以及解析该模型的软件运行所需要的内存。
Description
技术领域
本发明属于电子技术领域,具体涉及一种FPGA芯片配置信息模型的层出化构建方法。
背景技术
目前,FPGA芯片和配套的EDA设计软件正在为IC设计提供灵活快捷的设计解决方案和验证方案。现在主流的FPGA大多基于SRAM单元配置,通过对片内SRAM置0或置1来完成数据通路选择和互联的开关,从而实现各种电路功能。在配置FPGA时,必然需要一套数据库来为我们提供该FPGA所能提供的配置选项和相应SRAM值的全部信息。为了迎接FPGA日益扩大的阵列规模以及日益增多的可配置单元提出的挑战,我们提出了一种普遍适用的建模方法,能够提供所有已有可配置资源的正确配置信息,同时,即使再有新的可配置单元出现,也能使用该方法迅速建立该单元的配置信息模型。
发明内容
本发明的目的在于提出一种普遍适用的建模方法,为FPGA中所有可配置资源建立配置信息模型。该模型能够配合较为简单的SRAM配置值查找程序,根据较高抽象层次的电路描述来生成配置位流,从而达到配置FPGA的目的。
本发明提出的普遍适用的建模方法,配置信息模型的最根本的描述对象是FPGA中的SRAM阵列。为了获取正确的配置信息,我们需要对FPGA芯片内部所有SRAM和其控制的可编程资源的配置信息进行统一建模。由于FPGA阵列模块设计的复用性和重复性很高,本发明故采用层次化的建模方式来构建该配置信息的模型。本发明的层次化主要体现在两个发面,一是SRAM地址划分的层次化,二是可编程逻辑资源配置信息的层次化。
层次化划分SRAM地址
随着FPGA阵列的扩大,SRAM阵列的规模更为庞大,这决定着我们必须考虑采用多级地址。本发明将整块FPGA的SRAM阵列按地址等级从上往下分别划分为:TOP, AREA, BLOCK, TILE, FRAME, BIT六个层次(附图1)。其中:
(a)BIT即对应一个SRAM,值为SRAM的输出。SRAM输出由WL(Word Line, 地址线)和BL(BitLine, 数据线)共同控制。
(b)FRAME的由纵向的BIT构成,长度根据TILE中SRAM阵列规模而定。本发明规定一个FRAME中的SRAM由同一个WL控制,意味着同一FRAME的SRAM在编程下载时会被同时配置,这也决定了FRAME的地址次序应与WL的选通次序保持一致。
(c)BLOCK由横向的FRAME组成,其中的SRAM阵列的长度与FRAME长度相同,宽度等于一个TILE所拥有的WL个数。
(d)AREA由横向的BLOCK组成,其中SRAM阵列的长度与FRAME长度相同,宽度由包含的BLOCK个数确定。AREA的划分个数根据芯片规模确定,当电路规模较小时,可只划分一个AREA,即TOP和AREA层次相同。
(e)TOP由所有AREA组成,是SRAM阵列顶层。
层次化构建可编程资源
在本发明提出的结构模型中,TILE层以上的信息将直接给出,但FRAME和BIT需要通过查找可编程资源的配置信息模型得到,于是我们提出了层次化构建可编程资源的方法。
逻辑门、触发器(DFF)、选择器(MUX)、存储器(RAM)和查找表(LUT)是构成FPGA的最基本的几个模块单元,在构建配置信息模型时,我们可以将FPGA看成是由众多诸如此类的黑匣子构成的,我们只需要知道这些黑匣子的配置选项和选择某个选项时对应的SRAM值,而根本不必了解黑匣子内部具体的电路实现。
在上述基本逻辑单元的基础上,本发明根据具体电路,将可配置资源的配置信息划分为4个层次,从底层向顶层分别为SRAM层,ELEMENT层,SITE层和TILE层(附图2)。其中:
(a)SRAM层
对SRAM对象建模的内容包括:名称,值,所控制的ELEMENT单元。
层
ELEMENT层描述最小功能单元模块的配置信息,建模的内容包括:名称,功能选项,以及功能选项对应的SRAM集合的值。其中,功能选项需要制定该功能是否为默认配置选项,在对FPGA的SRAM阵列进行赋值初始化时,需要根据默认配置选项来确定默认配置值。
层
SITE由ELEMENT层模块构成,包括可编程逻辑资源(SITE)和可编程互联资源(GSB)两大类。例如,一个简单的可配置逻辑片SLICE单元中含有LUT,MUX和DFF三种基本单元。
层
TILE由SITE层模块构成,是组成FPGA阵列的最小重复单元。在TILE层中主要描述TILE中所有SRAM对应的BL和WL,从而实现TILE层中的SRAM地址区分。
有益效果
本方法具有通用性,在设计不同款FPGA芯片时,只需要按照本方法要求建立配置模型,便能采用同一种SRAM阵列值查找程序生成位流。配套的查找算法能够根据电路配置的具体要求,在配置模型中查找所需实现功能对应SRAM值的集合;根据SRAM地址和值将该集合映射成规定格式的二进制位流文件,通过编程下载程序和电路下载到FPGA中,最终实现配置FPGA芯片以获得所需电路。此外,采用层次化思想建模,不仅能够清晰地描述电路内部的层次关系,便于后期测试和验证,还能极大地减小配置数据的存储以及解析该模型的软件运行所需要的内存。
附图说明
图1为SRAM地址划分示意图,图中为了清晰地表示各地址层次的地址范围,特意将每个层次独立出来表示,事实上它们是相互交叉来共同实现SRAM地址标识,如最左上角的BLOCK中所示。
图2为配置信息模型层次示意。从下往上分别为SRAM层,ELEMENT层,SITE层和TILE层。
图3为位流生成软件流程。
图中标号:1.TOP,FPGA SRAM阵列顶层;2.AREA,配置域,大规模FPGA可划分为多个域分别进行配置;3.BLOCK,由AREA中属于同一列TILE的SRAM构成;4. TILE,为FPGA的最小重复单元;5.FRAME,帧,为FPGA下载的最小数据流,长度固定;5.BIT,构成帧的比特,1比特对应一个SRAM。
具体实施方式
(1)建立目标FPGA配置信息模型
根据具体目标FPGA的具体电路功能,采用本发明提出的层出化构建方法建立相应的配置信息模型。
(2)编写电路配置文件
由于FPGA的巨大规模和人脑的局限性,在配置FPGA时我们不可能直接指定每个SRAM的配置值。因此我们需要先人为地或者借助EDA工具在较高抽象层次上规定FPGA中各可编程逻辑资源的配置选项,再通过程序将这种抽象层次较高的配置要求转换为FPGA下载电路能够读取的二进制文件。
对于FPGA中所有可编程资源,其功能均可以用“可编程资源名-功能名”的键值对形式描述,其中功能名必须与使用本发明方法建立的配置模型中给出的SITE功能选项保持一致。例如:4输入LUT实现逻辑功能F=A1+A2+A3+A4,可表述为“LUT-F=A1+A2+A3+A4”;MUX选通0输入端,可表述为“MUX-0”;DFF配置成锁存器,可以表述为“DFF-LATCH”;互联单元GSB中P0到P1的通路导通,可表述为“GSB-P0->P1”;一个16位块存储单元BlockRAM配置成全1,可以表述为“BlockRAM-1111111111111111”。
此外,电路配置文件还可以有更高层次的描述,即使用宏模块。宏模块中已经预先使用上述方法编写好所有可配置单元的配置情况,在调用时根据FPGA电路实际可用资源直接例化。
(3)初始化BitMap
BitMap是描述FPGA SRAM阵列信息的数据结构,其中每个结点与BitMap中的SRAM一一对应。结点包含SRAM的名称、值、地址、赋值控制线信息。在初始化时,需要从配置模型中给出的SRAM地址划分情况确定SRAM个数,以及根据默认功能选项来确定SRAM初始值。
(4)根据配置功能选项要求重置BitMap相应结点
可编程单元的种类不同,相应的SRAM值查找方式也会有所不同。其中可编程功能单元查找算法为键值查找和等式换算;可编程互联单元的查找算法为路径查找;可编程存储单元的查找算法为RAM查找。
) 键值查找
键值查找用于可编程单元为非LUT的逻辑单元的情况,功能名为待实现功能的配置选项要求。直接根据键名,也就是功能名找到SRAM的配置值。
) 等式换算
等式转换用于可配置单元为LUT,功能名为布尔表达式的配置要求。等式换算将算出布尔表达式中所有输入变量可能情况下相应SRAM的配置值。如查找四输入LUT实现F=A1+A2+A3+A4时相应SRAM配置值时,在A1A2A2A4=0000时选通SRAM0,若要F=A1+A2+A3+A4=0,那么SRAM0=0,对于A1A2A3A4=0001~1111的情况以此类推,得到SRAM0~15=0111111111111111。
) 路径查找
路径查找用于可配置单元为互联单元,功能名为路径起始点的配置要求。根据路径的起点和终点和配置模型中有关互联结构的描述我们可以定位到控制该路径的开关,继而可以确定控制该开关的SRAM值。
) RAM查找
RAM查找用于可编程单元为存储单元,功能名为存储数据的情况。存储单元本身包含在BitMap中,可从配置模型中提取存储单元RAM在BitMap中的地址信息,存储数据直接为RAM的配置值。
(5)SRAM映射成位流文件,实现下载
FPGA中SRAM的配置先后顺序是按照帧地址由低到高排列的,因此我们可以通过配置模型中的地址划分将BitMap中所有SRAM打包成帧,再将这些FRAME按地址先后顺序排列,最终输出为位流文件,下载到电路中实现需要的电路。
Claims (1)
1. 一种FPGA芯片配置信息模型的层出化构建方法,其特征在于具体步骤为:(一)SRAM地址划分的层次化,(二)可编程逻辑资源配置信息的层次化,其中:
(一)层次化划分SRAM地址
将整块FPGA的SRAM阵列按地址等级从上往下分别划分为:TOP, AREA, BLOCK, TILE, FRAME, BIT六个层次,其中:
(a)BIT即对应一个SRAM,值为SRAM的输出;SRAM输出由WL和BL共同控制;
(b)FRAME由纵向的BIT构成,长度根据TILE中SRAM阵列规模而定;本发明规定一个FRAME中的SRAM由同一个WL控制,意味着同一FRAME的SRAM在编程下载时会被同时配置,这也决定了FRAME的地址次序应与WL的选通次序保持一致;
(c)BLOCK由横向的FRAME组成,其中的SRAM阵列的长度与FRAME长度相同,宽度等于一个TILE所拥有的WL个数;
(d)AREA由横向的BLOCK组成,其中SRAM阵列的长度与FRAME长度相同,宽度由包含的BLOCK个数确定;
(e)TOP由所有AREA组成,是SRAM阵列顶层;
(2) 层次化构建可编程资源
将可配置资源的配置信息划分为4个层次,从底层向顶层分别为:SRAM层,ELEMENT层,SITE层和TILE层,其中:
(a)SRAM层
对SRAM对象建模的内容包括:名称,值,所控制的ELEMENT单元;
(b)ELEMENT层
ELEMENT层描述最小功能单元模块的配置信息,建模的内容包括:名称,功能选项,以及功能选项对应的SRAM集合的值;其中,功能选项需要制定该功能是否为默认配置选项,在对FPGA的SRAM阵列进行赋值初始化时,需要根据默认配置选项来确定默认配置值;
(c)SITE层
SITE由ELEMENT层模块构成,包括可编程逻辑资源(SITE)和可编程互联资源(GSB)两大类;
(d)TILE层
TILE由SITE层模块构成,是组成FPGA阵列的最小重复单元;在TILE层中主要描述TILE中所有SRAM对应的BL和WL,从而实现TILE层中的SRAM地址区分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210493318.9A CN103019947B (zh) | 2012-11-28 | 2012-11-28 | 一种fpga芯片配置信息模型的层次化构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210493318.9A CN103019947B (zh) | 2012-11-28 | 2012-11-28 | 一种fpga芯片配置信息模型的层次化构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019947A true CN103019947A (zh) | 2013-04-03 |
CN103019947B CN103019947B (zh) | 2016-02-24 |
Family
ID=47968572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210493318.9A Active CN103019947B (zh) | 2012-11-28 | 2012-11-28 | 一种fpga芯片配置信息模型的层次化构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019947B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155747A (zh) * | 2016-07-13 | 2016-11-23 | 无锡中微亿芯有限公司 | 一种基于fpga可加速配置的方法和控制系统 |
CN106682268A (zh) * | 2016-11-28 | 2017-05-17 | 深圳市紫光同创电子有限公司 | 可编程逻辑器件配置方法及设备 |
CN107544819A (zh) * | 2016-06-29 | 2018-01-05 | 中兴通讯股份有限公司 | 一种用于可编程器件的业务实现方法、装置和通信终端 |
CN108776644A (zh) * | 2018-05-04 | 2018-11-09 | 中国电子科技集团公司第三十六研究所 | 一种数据高速缓存系统、方法和航天用电子设备 |
CN109635466A (zh) * | 2018-12-18 | 2019-04-16 | 上海复旦微电子集团股份有限公司 | 一种用于可配置芯片的功能仿真方法及系统 |
CN111142013A (zh) * | 2019-12-31 | 2020-05-12 | 无锡市同飞科技有限公司 | 基于max7000系列cpld逻辑还原方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246510A (zh) * | 2008-02-28 | 2008-08-20 | 复旦大学 | 可编程逻辑器件硬件结构通用建模方法 |
CN102566982A (zh) * | 2012-01-10 | 2012-07-11 | 复旦大学 | 一种fpga两级流水线配置电路 |
-
2012
- 2012-11-28 CN CN201210493318.9A patent/CN103019947B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246510A (zh) * | 2008-02-28 | 2008-08-20 | 复旦大学 | 可编程逻辑器件硬件结构通用建模方法 |
CN102566982A (zh) * | 2012-01-10 | 2012-07-11 | 复旦大学 | 一种fpga两级流水线配置电路 |
Non-Patent Citations (2)
Title |
---|
NAGY ZOLTAN ETAL: "CONFIGURABLE MULTI-LAYER CNN-UM EMULATOR ON FPGA", 《CNNA 2002》 * |
YUN SHAO ETAL: "PAM MAP: AN ARCHITECTURE-INDEPENDENT LOGIC BLOCK MAPPING ALGORITHM FOR SRAM-BASED FPGAS", 《PROGRAMMABLE LOGIC,2009.SPL.5TH SOUTHERN CONFERENCE》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107544819A (zh) * | 2016-06-29 | 2018-01-05 | 中兴通讯股份有限公司 | 一种用于可编程器件的业务实现方法、装置和通信终端 |
CN107544819B (zh) * | 2016-06-29 | 2022-04-19 | 中兴通讯股份有限公司 | 一种用于可编程器件的业务实现方法、装置和通信终端 |
CN106155747A (zh) * | 2016-07-13 | 2016-11-23 | 无锡中微亿芯有限公司 | 一种基于fpga可加速配置的方法和控制系统 |
CN106155747B (zh) * | 2016-07-13 | 2020-04-21 | 无锡中微亿芯有限公司 | 一种基于fpga可加速配置的方法和控制系统 |
CN106682268A (zh) * | 2016-11-28 | 2017-05-17 | 深圳市紫光同创电子有限公司 | 可编程逻辑器件配置方法及设备 |
CN108776644A (zh) * | 2018-05-04 | 2018-11-09 | 中国电子科技集团公司第三十六研究所 | 一种数据高速缓存系统、方法和航天用电子设备 |
CN108776644B (zh) * | 2018-05-04 | 2022-09-27 | 中国电子科技集团公司第三十六研究所 | 一种数据高速缓存系统、方法和航天用电子设备 |
CN109635466A (zh) * | 2018-12-18 | 2019-04-16 | 上海复旦微电子集团股份有限公司 | 一种用于可配置芯片的功能仿真方法及系统 |
CN111142013A (zh) * | 2019-12-31 | 2020-05-12 | 无锡市同飞科技有限公司 | 基于max7000系列cpld逻辑还原方法 |
CN111142013B (zh) * | 2019-12-31 | 2021-12-07 | 无锡市同飞科技有限公司 | 基于max7000系列cpld逻辑还原方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103019947B (zh) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019947B (zh) | 一种fpga芯片配置信息模型的层次化构建方法 | |
CN1188948C (zh) | 用于配置可编程逻辑单元阵列的方法及装置 | |
CN105144585B (zh) | 具有存储器的集成电路装置以及实施集成电路装置中的存储器的方法 | |
CN112416853A (zh) | 带有智能存储器的堆叠可编程集成电路系统 | |
CN103258066B (zh) | 逻辑簇的布局方法 | |
CN106326134A (zh) | Ftl地址映射的方法及装置 | |
CN105468568A (zh) | 高效的粗粒度可重构计算系统 | |
US9269440B2 (en) | High density search engine | |
CN109785882A (zh) | 具有虚拟体化架构的sram及包括其的系统和方法 | |
CN102314531A (zh) | 集成电路版图自动构造层次方法 | |
CN107122565A (zh) | 基于非易失性存储器的fpga bram架构与设计方法 | |
Krasteva et al. | A fast emulation-based NoC prototyping framework | |
CN203133675U (zh) | 高密度服务器 | |
CN114297097B (zh) | 一种众核可定义分布式共享存储结构 | |
CN106250321B (zh) | 2r1w存储器的数据处理方法及数据处理系统 | |
US6738953B1 (en) | System and method for memory characterization | |
CN107967372A (zh) | 一种fpga总体布局合法化方法 | |
CN103593445A (zh) | 数据填充方法及装置 | |
CN103809769A (zh) | 一种block ram级联实现结构 | |
CN203909724U (zh) | 一种block ram级联实现结构 | |
CN204406848U (zh) | 基于双fpga芯片的验证开发板 | |
CN109815605B (zh) | 一种用于单粒子效应仿真的电路系统组建方法 | |
Clermidy et al. | 3D stacking for multi-core architectures: From WIDEIO to distributed caches | |
US8910102B2 (en) | Configuring a programmable logic device using a configuration bit stream without phantom bits | |
US10038444B2 (en) | Reconfigurable system-on-chip and related methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |