CN106383936A - 一种fpga存储器拆分方法 - Google Patents
一种fpga存储器拆分方法 Download PDFInfo
- Publication number
- CN106383936A CN106383936A CN201610807949.1A CN201610807949A CN106383936A CN 106383936 A CN106383936 A CN 106383936A CN 201610807949 A CN201610807949 A CN 201610807949A CN 106383936 A CN106383936 A CN 106383936A
- Authority
- CN
- China
- Prior art keywords
- primitive
- ram
- size
- address
- matrix
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Memories (AREA)
Abstract
本发明涉及一种FPGA存储器拆分方法,该方法根据RAM实例的实例尺寸以及FPGA芯片上存在的多种RAM原语的原语尺寸确定最小粒度,并根据最小粒度对RAM实例进行拆分获得原语矩阵,再合并原语矩阵的地址总线和/或数据总线获得由一种RAM原语组成的RAM实例。本发明实施例提供的拆分方法简单易实现、拆分结果接近或达到最优;并且拆分获得的RAM实例为规则的矩阵,极大地方便了后续的映射操作,也使得拆分与映射操作相对独立,当优化组合策略时,无需修改映射操作。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种FPGA存储器拆分方法。
背景技术
现场可编程门阵列(Field Programmable Gate Array,FPGA),它是作为专用集成电路(Application Specific Integrated Circuit,ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。适用于逻辑控制、信号处理、图像处理等多种领域,仅在中国,FPGA芯片的市场就超过百亿人民币,并且以30%每年的速度增长,重要性不言而喻。
在FPGA的具体设计过程中,由于用户所设计的随机存取存储器(random accessmemory,简称RAM)实例尺寸可以是任意的,但是FPGA芯片上的RAM原语尺寸是固定的,当实例尺寸超出原语尺寸时,需要考虑如何由多个原语尺寸的小RAM组成实例尺寸的大RAM,上述问题为存储器拆分问题。FPGA存储器通常有许多端口和参数,尤其是当需要多块存储器拼接成一个更大的存储器时,存储器的映射操作将会变得非常复杂。而且一款具体型号的FPGA芯片通常具有多种不同尺寸的RAM原语,这进一步增加了问题的复杂性。现有技术解决上述问题存在一定的技术缺陷,如:拆分方法复杂、拆分结果不便于后续操作等。
发明内容
本发明实施例提供了一种存储器拆分方法,该方法包括:获取RAM实例的实例尺寸以及芯片上多种RAM原语的原语尺寸;根据多种RAM原语的原语尺寸确定最小粒度,并根据实例尺寸以最小粒度对RAM实例进行拆分,获得RAM实例的原语矩阵;根据多种RAM原语的原语尺寸合并原语矩阵的地址总线,完成对RAM实例的地址拆分,其中,地址拆分后的RAM实例由多种RAM原语的一种组成。
可选地,在上述方法中,还包括:计算地址拆分后的RAM实例中每块RAM原语的利用率,当利用率小于利用阈值时,合并原语矩阵的数据总线,完成对RAM实例的数据拆分,其中,数据拆分后的RAM实例由多种RAM原语的一种组成。
可选地,在上述方法中,利用阈值根据芯片的设计需求进行设定。
可选地,在上述方法中,原语尺寸包括RAM原语的原语地址总线宽度、原语数据总线宽度和RAM原语的工作模式。
可选地,在上述方法中,根据多种RAM原语的原语尺寸确定最小粒度,包括:以多种RAM原语中原语尺寸最小的RAM原语为最小粒度,当RAM实例的地址线宽度大于最小粒度RAM原语的原语地址总线宽度时,最小粒度RAM原语的工作模式为×1。
本发明实施例提供了另一种存储器拆分方法,该方法包括:获取RAM实例的实例尺寸以及芯片上多种RAM原语的原语尺寸;根据多种RAM原语的原语尺寸确定最小粒度,并根据实例尺寸以最小粒度对RAM实例进行拆分,获得RAM实例的原语矩阵;根据多种RAM原语的原语尺寸合并原语矩阵的地址总线,完成对RAM实例的地址拆分;并且/或者根据多种RAM原语的原语尺寸合并原语矩阵的数据总线,完成对RAM实例的数据拆分,其中,地址拆分或数据拆分后的RAM实例由多种RAM原语的一种组成。
本发明实施例所提供一种存储器拆分方法,根据RAM实例的实例尺寸以及FPGA芯片上存在的多种RAM原语的原语尺寸确定最小粒度,并根据最小粒度对RAM实例进行拆分获得原语矩阵,再合并原语矩阵的地址总线(或者还包括数据总线)获得由一种RAM原语组成的RAM实例,拆分方法简单易实现、拆分结果接近或达到最优;并且拆分获得的RAM实例为规则的矩阵,极大地方便了后续的映射操作,也使得拆分与映射操作相对独立,当优化组合策略时,无需修改映射操作。
附图说明
图1为本发明实施例提供的一种存储器拆分方法流程示意图;
图2为本发明实施例一的RAM实例拆分流程示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
在FPGA进行存储器拆分时,将RAM实例拆分成RAM原语矩阵,存储器拆分的结果是RAM原语矩阵和周边逻辑资源(LUT/REG),因此较好的拆分策略应该是使RAM原语数量和周边逻辑资源数量同时达到最小。由于周边逻辑资源主要来源于存储器地址扩展,数据扩展不需要引入额外逻辑,因此需要尽量避免地址扩展。在RAM实例拆分中所用RAM原语的数量取决于每块RAM原语的利用率。在实际RAM尺寸固定的情况下,每块RAM原语资源利用率越高,需要的RAM原语的数量就会越少。如果每块RAM资源地址总线得到充分利用,利用率就能达到或接近最高,从而使耗费的RAM原语数量达到最小。
但在现有技术的实际拆分过程中,拆分方法复杂、差分结果不便于后续操作(映射等)。本发明提供一种FPGA存储器拆分方法,根据RAM实例的实例尺寸以及FPGA芯片上存在的多种RAM原语的原语尺寸确定最小粒度,并根据最小粒度对RAM实例进行拆分获得原语矩阵,再合并原语矩阵的地址总线(或者还包括数据总线)获得由一种RAM原语组成的RAM实例。
图1为本发明实施例提供的一种存储器拆分方法流程示意图,如图1所示,该方法包括:
步骤S101,获取RAM实例的实例尺寸以及芯片上多种RAM原语的原语尺寸。
需要说明的是,RAM实例是用户RTL(Register Transfer Level)设计推断出的,包括RAM实例的实例尺寸(地址总线宽度、数据总线宽度)。RAM原语是FPGA芯片上的,FPGA芯片上具有多种RAM原语,每种RAM原语的原语尺寸不同。
步骤S102,根据多种RAM原语的原语尺寸确定最小粒度,并根据实例尺寸以最小粒度对所述RAM实例进行拆分,获得RAM实例的原语矩阵。
需要说明的是,此时所获得的原语矩阵由选定的最小粒度的RAM原语组成。
可选地,以多种RAM原语中原语尺寸最小的RAM原语为最小粒度,当RAM实例的地址总线宽度大于最小粒度RAM原语的原语地址总线宽度时,为了便于拆分将最小粒度RAM原语的工作模式选为×1。
步骤S103,根据多种RAM原语的原语尺寸合并原语矩阵的地址总线和/或数据总线,完成对RAM实例的拆分,其中,拆分后的RAM实例由多种RAM原语的一种组成。
具体地,根据所述多种RAM原语的原语尺寸合并所述原语矩阵的地址总线,完成对所述RAM实例的地址拆分;而后计算地址拆分后的RAM实例中每块RAM原语的利用率,当利用率小于利用阈值时,合并原语矩阵的数据总线,完成对RAM实例的数据拆分,其中,数据拆分后的RAM实例由多种RAM原语的一种组成。其中,在本发明实施例中RAM原语的利用率是指RAM原语地址总线的利用率;利用阈值则根据FPGA芯片实际设计的具体要求进行设定,如50%。
需要说明的是,由于步骤S102所获得的原语矩阵由最小粒度的RAM原语组成,但FPGA芯片中具有多种RAM原语,为了更好的完成拆分,需对原语矩阵的地址总线进行合并,以便将RAM实例拆分为由多种RAM原语的其中一种RAM原语组成。
下面结合更为具体的实施例对本发明实施例所提供的方法进行进一步的说明。
实施例一
在FPGA芯片中存在三款RAM原语,分别为RAM4K、RAM8K和RAM16K,三种RAM原语的具体原语尺寸详见表1:
表1原语尺寸参数
需要说明的是,RAM8K由两块RAM4K组成,RAM16K由四块RAM4K组成,AW表示地址总线宽度,DW表示数据总线宽度。对于RAM4K而言,当其工作模式为×1时,其地址总线宽度为12、数据总线宽度为1,此时用A12D1对RAM4K进行描述。
用户RTL设计中推断出一块地址总线宽度15位,数据总线宽度8位的RAM实例,则根据本发明实施例所提供的方法,对RAM实例(AW=15,DW=8)进行拆分,图2为本发明实施例一的RAM实例拆分流程示意图,如图2所示,RAM实例的具体拆分过程为:
第一步,确定RAM实例的尺寸以及该FPAG芯片上RAM原语的尺寸;则游标已可知:RAM实例(AW=15,DW=8)、RAM4K(AW=12,DW=16)、RAM8K(AW=13,DW=32)以及RAM16K(AW=14,DW=64),如图2-1即为RAM实例示意图。
第二步,由于RAM4K的尺寸最小,因此最小粒度为RAM4K,又由于RAM实例的地址总线宽度15大于RAM4K的原语地址总线宽度12,因此最小粒度RAM4K的工作模式为×1;而后将RAM4K作为最小粒度对RAM实例进行拆分,将RAM实例拆分成8×8块A12D1的RAM4K(如图2-2)。
第三步,合并原语矩阵的地址总线,由于FPGA中三种RAM原语的存在大小差距,可以将四块RAM4K合并其地址总线成为一块A14D1的RAM16K,则进一步地可以将8×8块A12D1的RAM4K合并成2×8块A14D1的RAM16K(如图2-3)。
第四步,对每块RAM16K利用率进行计算,在本实施例中RAM16K的利用率为100%大于利用阈值50%,因此无需继续数据总线的合并,结束此次RAM实例的拆分。
显而易见的,根据本发明实施例所提供的方法对RAM实例进行拆分,获得的拆分结果是非常规则的矩阵极大的方便了后续的映射操作,并且拆分与映射相对独立,互不影响。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种存储器拆分方法,其特征在于,所述方法包括:
获取RAM实例的实例尺寸以及芯片上多种RAM原语的原语尺寸;
根据所述多种RAM原语的原语尺寸确定最小粒度,并根据所述实例尺寸以所述最小粒度对所述RAM实例进行拆分,获得RAM实例的原语矩阵;
根据所述多种RAM原语的原语尺寸合并所述原语矩阵的地址总线,完成对所述RAM实例的地址拆分,其中,地址拆分后的所述RAM实例由所述多种RAM原语的一种组成。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
计算地址拆分后的所述RAM实例中每块所述RAM原语的利用率,当所述利用率小于利用阈值时,合并所述原语矩阵的数据总线,完成对所述RAM实例的数据拆分,其中,数据拆分后的所述RAM实例由所述多种RAM原语的一种组成。
3.根据权利要求2所述的方法,其特征在于,所述利用阈值根据芯片的设计需求进行设定。
4.根据权利要求1所述的方法,其特征在于,所述根据所述多种RAM原语的原语尺寸确定最小粒度,包括:
以所述多种RAM原语中原语尺寸最小的RAM原语为所述最小粒度,其中,当所述RAM实例的地址总线宽度大于所述最小粒度RAM原语的原语地址总线宽度时,所述最小粒度RAM原语的工作模式选为×1。
5.一种存储器拆分方法,其特征在于,所述方法包括:
获取RAM实例的实例尺寸以及芯片上多种RAM原语的原语尺寸;
根据所述多种RAM原语的原语尺寸确定最小粒度,并根据所述实例尺寸以所述最小粒度对所述RAM实例进行拆分,获得RAM实例的原语矩阵;
根据所述多种RAM原语的原语尺寸合并所述原语矩阵的地址总线,完成对所述RAM实例的地址拆分;并且/或者
根据所述多种RAM原语的原语尺寸合并所述原语矩阵的数据总线,完成对所述RAM实例的数据拆分,其中,地址拆分或数据拆分后的所述RAM实例由所述多种RAM原语的一种组成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610807949.1A CN106383936B (zh) | 2016-09-07 | 2016-09-07 | 一种fpga存储器拆分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610807949.1A CN106383936B (zh) | 2016-09-07 | 2016-09-07 | 一种fpga存储器拆分方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106383936A true CN106383936A (zh) | 2017-02-08 |
CN106383936B CN106383936B (zh) | 2020-01-31 |
Family
ID=57939105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610807949.1A Active CN106383936B (zh) | 2016-09-07 | 2016-09-07 | 一种fpga存储器拆分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106383936B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948324A (zh) * | 2021-04-16 | 2021-06-11 | 山东高云半导体科技有限公司 | 存储器映射处理方法、装置及fpga芯片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63183693A (ja) * | 1987-01-23 | 1988-07-29 | Mitsubishi Electric Corp | 半導体記憶装置 |
CN102946502A (zh) * | 2012-10-10 | 2013-02-27 | 西安诺瓦电子科技有限公司 | 一种高速数据多路拆分传输处理装置 |
CN103123609A (zh) * | 2013-03-13 | 2013-05-29 | 中国科学院上海微系统与信息技术研究所 | 存储器的分块管理方法 |
CN105426314A (zh) * | 2014-09-23 | 2016-03-23 | 京微雅格(北京)科技有限公司 | 一种fpga存储器的工艺映射方法 |
-
2016
- 2016-09-07 CN CN201610807949.1A patent/CN106383936B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63183693A (ja) * | 1987-01-23 | 1988-07-29 | Mitsubishi Electric Corp | 半導体記憶装置 |
CN102946502A (zh) * | 2012-10-10 | 2013-02-27 | 西安诺瓦电子科技有限公司 | 一种高速数据多路拆分传输处理装置 |
CN103123609A (zh) * | 2013-03-13 | 2013-05-29 | 中国科学院上海微系统与信息技术研究所 | 存储器的分块管理方法 |
CN105426314A (zh) * | 2014-09-23 | 2016-03-23 | 京微雅格(北京)科技有限公司 | 一种fpga存储器的工艺映射方法 |
Non-Patent Citations (2)
Title |
---|
JIMMY KWA 等: "Small Virtual Channel Routers on FPGAs Through Block RAM Sharing", 《2012 INTERNATIONAL CONFERENCE ON FIELD-PROGRAMMABLE TECHNOLOGY》 * |
王延升: "粗粒度动态可重构处理器中的高能效关键配置技术研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948324A (zh) * | 2021-04-16 | 2021-06-11 | 山东高云半导体科技有限公司 | 存储器映射处理方法、装置及fpga芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN106383936B (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8239604B1 (en) | Method and apparatus for converting data between different word widths using line grouping of data segments | |
DE112016004314T5 (de) | Programmierbare zeitgebung von chipinterner terminierung in einem mehrrangigen system | |
US10854284B1 (en) | Computational memory cell and processing array device with ratioless write port | |
DE102019122363A1 (de) | Programmierbare doppelreihige arbeitsspeichermodul-beschleunigerkarte (dimm-beschleunigerkarte) | |
DE112016006203T5 (de) | Verfahren zum zugreifen auf ein dual in-line memory-modul über mehrere datenkanäle oder betreiben desselben | |
US10802532B2 (en) | Techniques to mirror a command/address or interpret command/address logic at a memory device | |
US10943648B1 (en) | Ultra low VDD memory cell with ratioless write port | |
DE102013203365A1 (de) | Verfahren und Schaltungsanordnung für kontrollierte Zugriffe auf Slave-Einheiten in einem Ein-Chip-System | |
CN108388531A (zh) | 一种芯片及其管脚复用方法 | |
US10552307B2 (en) | Storing arrays of data in data processing systems | |
CN106599840A (zh) | 一种图像识别协处理器、图像识别系统及方法 | |
CN106383936A (zh) | 一种fpga存储器拆分方法 | |
DE112017001118T5 (de) | Verfahren und Vorrichtung zum Bereitstellen eines zusammenhängend adressierbaren Speicherbereichs durch Neuabbildung eines Adressraums | |
DE102015119891A1 (de) | Verfahren zur Verwaltung von Energie und Leistung für eine Netzvorrichtung | |
DE102020119888A1 (de) | Hardware-basierte erkennung von fehlern bezüglich der erhaltung lokaler zustände | |
DE102020119400A1 (de) | Techniken zum setzen eines 2-ebenen-auto-schliess-timers zum zugriff auf eine speichervorrichtung | |
US9916129B1 (en) | Flow control for direct memory access transfers | |
CN105260515A (zh) | 轮胎动态包络面干涉检查方法及系统 | |
DE102020129114A1 (de) | Techniken für dynamische nähe auf der grundlage von on-die-terminierung | |
CN107704685B (zh) | 一种网格划分方法及装置 | |
CN104795334A (zh) | 模块化封装的集成电路芯片及其制作方法 | |
CN108776691A (zh) | 一种空间图形聚集的优化方法与系统 | |
CN106649899B (zh) | 一种本地存储器布局方法 | |
CN204833258U (zh) | 一种利用mcu核的外设扩展系统 | |
DE102020129118A1 (de) | Direct-Map-Memory-Erweiterung für Storage Class Memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190102 Address after: 901-903, 9th Floor, Satellite Building, 63 Zhichun Road, Haidian District, Beijing, 100080 Applicant after: Jing Wei Qi Li (Beijing) Technology Co., Ltd. Address before: 100080 Beijing Haidian A62, East of Building No. 27, Haidian Avenue, 4th Floor, A District, Haidian District Applicant before: Beijing deep science and Technology Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |