CN117807938A - 一种从逻辑原语参数产生fpga芯片配置比特的方法 - Google Patents
一种从逻辑原语参数产生fpga芯片配置比特的方法 Download PDFInfo
- Publication number
- CN117807938A CN117807938A CN202311851629.2A CN202311851629A CN117807938A CN 117807938 A CN117807938 A CN 117807938A CN 202311851629 A CN202311851629 A CN 202311851629A CN 117807938 A CN117807938 A CN 117807938A
- Authority
- CN
- China
- Prior art keywords
- logic primitive
- logic
- mapping
- configuration
- chip
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000013507 mapping Methods 0.000 claims abstract description 165
- 238000013461 design Methods 0.000 claims abstract description 73
- 238000007781 pre-processing Methods 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 5
- 238000005260 corrosion Methods 0.000 abstract description 7
- 230000007797 corrosion Effects 0.000 abstract description 7
- 230000003044 adaptive effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 206010013911 Dysgeusia Diseases 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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]
- G06F30/343—Logical level
-
- 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]
- G06F30/347—Physical level, e.g. placement or routing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
Abstract
本发明涉及FPGA技术领域,公开了一种从逻辑原语参数产生FPGA芯片配置比特的方法,该方法包括:获取FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件;基于FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件建立逻辑原语参数到芯片配置位映射规则;获取用户原始设计文件,基于用户原始设计文件,利用逻辑原语参数到芯片配置位映射规则将逻辑原语参数配置到FPGA芯片比特位,生成FPGA芯片配置位和配置位取值。本发明通过数据驱动的方式在一定程度上避免潜在的代码坏味道和软件架构腐蚀,降低了EDA工具对于不同型号芯片的适配时间成本,提高了芯片型号的迭代速度。
Description
技术领域
本发明涉及FPGA技术领域,具体涉及一种从逻辑原语参数产生FPGA芯片配置比特的方法。
背景技术
FPGA(Field Programmable Gate Array,现场可编程门阵列)设计商为用户提供一定数量的逻辑原语(primitive),用以快速搭建特定的逻辑功能,其中,一些逻辑原语会带有可选的配置项,当由用户设计产生的网表确定配置项的取值后,EDA(电子设计自动化)工具需要将该取值处理为芯片上的配置位,并最终生成bitstream(比特流)加载到FPGA芯片上以完成用户设计。
相关配置方法需要对每种逻辑原语的参数建立专门配置模块,通常会导致一定程度的代码坏味道和软件架构腐蚀,并且不同配置模块从建立到验证耗时较长,不利于芯片型号快速迭代。
发明内容
有鉴于此,本发明提供了一种从逻辑原语参数产生FPGA芯片配置比特的方法,以解决相关配置方法导致一定程度的代码坏味道和软件架构腐蚀,并且不同配置模块从建立到验证耗时较长,不利于芯片型号快速迭代的问题。
第一方面,本发明提供了一种从逻辑原语参数产生FPGA芯片配置比特的方法,该方法包括:
获取FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件;
基于FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件建立逻辑原语参数到芯片配置位映射规则;
获取用户原始设计文件,基于用户原始设计文件,利用逻辑原语参数到芯片配置位映射规则将逻辑原语参数配置到FPGA芯片比特位,生成FPGA芯片配置位和配置位取值。
本实施例提供的一种从逻辑原语参数产生FPGA芯片配置比特的方法,基于FPGA芯片硬件设计数据、逻辑原语数据、逻辑原语参数映射文件和用户原始设计文件,利用逻辑原语参数到芯片配置位映射规则将逻辑原语参数配置到FPGA芯片比特位,实现了逻辑原语参数的准确配置,通过数据驱动的方式在一定程度上避免潜在的代码坏味道和软件架构腐蚀,并且在从逻辑原语参数产生FPGA芯片配置比特的过程中不涉及程序代码的修改,仅涉及规则文件的更新,有利于EDA工具对于不同型号芯片的适配时间成本,提高了芯片型号的迭代速度。
在一种可选的实施方式中,基于FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件建立逻辑原语参数到芯片配置位映射规则,包括:
基于FPGA芯片硬件设计数据构建芯片配置位分布模型;芯片配置位分布模型包括各配置比特在比特流中的实际位置和配置项;
基于逻辑原语数据构建逻辑原语参数模型;逻辑原语参数模型包括逻辑原语参数的类型和取值范围;
基于逻辑原语参数映射文件,将逻辑原语参数模型的各逻辑原语参数与芯片配置位分布模型中的配置项进行映射,得到逻辑原语参数到芯片配置位映射规则。
本实施例提供的一种从逻辑原语参数产生FPGA芯片配置比特的方法,通过FPGA芯片硬件设计数据和逻辑原语数据进行独立建模有利于提供对用户更友好的逻辑原语参数,并且有利于不同架构的FPGA芯片支持同一套逻辑原语。
在一种可选的实施方式中,基于逻辑原语参数映射文件,将逻辑原语参数模型的各逻辑原语参数与芯片配置位分布模型中的配置项进行映射,得到逻辑原语参数到芯片配置位映射规则,包括:
基于逻辑原语参数映射文件确定逻辑原语参数对应的配置项;
基于逻辑原语参数映射文件确定预处理方式和映射方式;
基于逻辑原语参数、逻辑原语参数对应的配置项、预处理方式和映射方式建立逻辑原语参数到芯片配置位映射规则。
本实施例提供的一种从逻辑原语参数产生FPGA芯片配置比特的方法,基于逻辑原语参数、逻辑原语参数对应的配置项、预处理方式和映射方式建立逻辑原语参数到芯片配置位映射规则,为后续将逻辑原语参数配置到FPGA芯片比特位奠定了基础。
在一种可选的实施方式中,基于用户原始设计文件,利用逻辑原语参数到芯片配置位映射规则将逻辑原语参数配置到FPGA芯片比特位,生成FPGA芯片配置位和配置位取值,包括:
基于所述用户原始设计文件对所述逻辑原语参数到芯片配置位映射规则进行匹配,生成二进制序列;
基于逻辑原语参数到芯片配置位映射规则,对基于芯片配置位分布模型进行查询,生成配置比特序列;
基于逻辑原语参数到芯片配置位映射规则确定映射方式;
利用映射方式将二进制序列赋值给配置比特序列,生成FPGA芯片配置位和配置位取值。
本实施例提供的一种从逻辑原语参数产生FPGA芯片配置比特的方法,在从逻辑原语参数产生FPGA芯片配置比特的过程中,仅涉及规则文件的更新,有利于降低对于不同型号芯片的配置时间成本,提高了芯片型号的迭代速度。
在一种可选的实施方式中,基于所述用户原始设计文件对所述逻辑原语参数到芯片配置位映射规则进行匹配,生成二进制序列,包括:
对逻辑原语参数到芯片配置位映射规则进行解析,得到逻辑原语参数和与逻辑原语参数对应的预处理方式;
基于逻辑原语参数对用户设计文件中的网表进行查询,获取逻辑原语参数的取值;
基于预处理方式对逻辑原语参数的取值进行处理,生成二进制序列。
本实施例提供的一种从逻辑原语参数产生FPGA芯片配置比特的方法,通过对用户设计文件中的网表进行查询,以及基于预处理方式对逻辑原语参数的取值进行处理,简化了逻辑原语参数的配置的过程,降低EDA工具对于不同型号芯片的适配时间成本。
在一种可选的实施方式中,基于逻辑原语参数到芯片配置位映射规则,对基于芯片配置位分布模型进行查询,生成配置比特序列,包括:
对逻辑原语参数到芯片配置位映射规则进行解析,得到配置项;
基于配置项对芯片配置位分布模型进行查询,生成配置项中配置比特的位置;
基于配置比特的位置对配置比特进行重新组合,生成配置比特序列。
本实施例提供的一种从逻辑原语参数产生FPGA芯片配置比特的方法,通过基于配置项对芯片配置位分布模型进行查询,生成配置项中配置比特的位置,实现了对配置项中配置比特的位置的准确识别,并且对配置比特进行重新组合,实现了对配置项中配置比特位置的更新,简化了逻辑原语参数的配置的过程,降低EDA工具对于不同型号芯片的适配时间成本。
在一种可选的实施方式中,映射方式包括直接映射,条件映射和预处理后直接映射。
第二方面,本发明提供了一种从逻辑原语参数产生FPGA芯片配置比特的装置,该装置包括:
获取模块,用于获取FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件;
建立模块,用于基于FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件建立逻辑原语参数到芯片配置位映射规则;
配置模块,用于获取用户原始设计文件,基于用户原始设计文件,利用逻辑原语参数到芯片配置位映射规则将逻辑原语参数配置到FPGA芯片比特位,生成FPGA芯片配置位和配置位取值。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的一种从逻辑原语参数产生FPGA芯片配置比特的方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的一种从逻辑原语参数产生FPGA芯片配置比特的方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种从逻辑原语参数产生FPGA芯片配置比特的方法的流程示意图;
图2是根据本发明实施例的另一种从逻辑原语参数产生FPGA芯片配置比特的方法的流程示意图;
图3是根据本发明实施例的逻辑原语参数到芯片配置位映射规则的示意图;
图4是根据本发明实施例的又一种从逻辑原语参数产生FPGA芯片配置比特的方法的流程示意图;
图5是根据本发明实施例的原语参数配置过程的示意图;
图6是根据本发明实施例的配置系统的运行示意图;
图7是根据本发明实施例的利用逻辑原语参数到芯片配置位映射规则将逻辑原语参数配置到FPGA芯片配置比特位的示意图;
图8是根据本发明实施例的一种从逻辑原语参数产生FPGA芯片配置比特的装置的结构框图;
图9是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关配置方法需要对每种逻辑原语的参数建立专门配置模块,当网表中出现某种逻辑原语时调用相应的模块产生具体的芯片配置位,该配置模块中通常认为逻辑原语的参数与FPGA芯片上的配置项等价,上述配置方法具有如下缺点:
(1)由于需要为不同逻辑原语分别建立不同配置模块,通常会导致一定程度的代码坏味道和软件架构腐蚀;
(2)不同配置模块从建立到验证耗时较长,不利于芯片型号快速迭代;
(3)由于假设逻辑原语参数与芯片的配置项等价,不利于简化/抽象出对用户友好的逻辑原语参数。
为解决上述问题,本发明实施例提供了一种从逻辑原语参数产生FPGA芯片配置比特的方法,应用于服务器类的设备中。
根据本发明实施例,提供了一种从逻辑原语参数产生FPGA芯片配置比特的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种从逻辑原语参数产生FPGA芯片配置比特的方法,可用于上述的服务器类的设备,图1是根据本发明实施例的一种从逻辑原语参数产生FPGA芯片配置比特的方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,获取FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件。
具体地,FPGA芯片硬件设计数据包括8位或16位的配置数据,以及配置数据对应的功能等数据,逻辑原语数据包括逻辑运算数据等,逻辑原语参数映射文件包括FPGA芯片硬件对于逻辑原语的实现方案。
步骤S102,基于FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件建立逻辑原语参数到芯片配置位映射规则。
步骤S103,获取用户原始设计文件,基于用户原始设计文件,利用逻辑原语参数到芯片配置位映射规则将逻辑原语参数配置到FPGA芯片比特位,生成FPGA芯片配置位和配置位取值。
本实施例提供的一种从逻辑原语参数产生FPGA芯片配置比特的方法,基于FPGA芯片硬件设计数据、逻辑原语数据、逻辑原语参数映射文件和用户原始设计文件,利用逻辑原语参数到芯片配置位映射规则将逻辑原语参数配置到FPGA芯片比特位,实现了逻辑原语参数的准确配置,通过数据驱动的方式在一定程度上避免潜在的代码坏味道和软件架构腐蚀,并且在从逻辑原语参数产生FPGA芯片配置比特的过程中不涉及程序代码的修改,仅涉及规则文件的更新,有利于EDA工具对于不同型号芯片的适配时间成本,提高了芯片型号的迭代速度。
在本实施例中提供了一种从逻辑原语参数产生FPGA芯片配置比特的方法,可用于上述的服务器类的设备,图2是根据本发明实施例的一种从逻辑原语参数产生FPGA芯片配置比特的方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S202,基于FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件建立逻辑原语参数到芯片配置位映射规则。
具体地,上述步骤S202包括:
步骤S2021,基于FPGA芯片硬件设计数据构建芯片配置位分布模型;芯片配置位分布模型包括各配置比特在比特流中的实际位置和配置项。
具体地,芯片配置位分布模型根据FPGA芯片硬件设计数据中配置比特具体功能,将若干配置比特进行分组,组成多个配置项,并存储每个配置比特在比特流中的实际位置,即配置比特的位置。
步骤S2022,基于逻辑原语数据构建逻辑原语参数模型;逻辑原语参数模型包括逻辑原语参数的类型和取值范围。
具体地,逻辑原语参数模型包括每个逻辑原语参数的类型(包括二进制类型,整型,字符串类型等)和每个逻辑原语参数的取值范围。
步骤S2023,基于逻辑原语参数映射文件,将逻辑原语参数模型的各逻辑原语参数与芯片配置位分布模型中的配置项进行映射,得到逻辑原语参数到芯片配置位映射规则。
具体地,根据逻辑原语参数映射文件中硬件对于逻辑原语的实现方案,抽象出逻辑原语的参数到配置比特的映射规则。
在一些可选的实施方式中,上述步骤S2023包括:
步骤a1,基于逻辑原语参数映射文件确定逻辑原语参数对应的配置项。
例如,LUT(Look-Up-Table,查找表)的逻辑原语参数为“INIT”,根据逻辑原语参数映射文件确定用于实现“INIT”的配置项为“PRAMA[127:64]”。
步骤a2,基于逻辑原语参数映射文件确定预处理方式和映射方式。
具体地,映射方式包括直接映射,条件映射和预处理后直接映射,其中,直接映射(DIRECT),主要用于二进制类型的逻辑原语参数,即逻辑原语参数与配置项等价,逻辑原语参数从低比特到高比特完全赋值到配置项;条件映射,即对于某逻辑原语参数的不同取值,若干配置项取特定值,若多个参数取值共同确定若干未配置项则抽象为嵌套条件;预处理后直接映射,主要用于二进制类型逻辑原语参数,即对于逻辑原语的参数预处理后直接映射到若干配置项,常见的预处理为高位补零后扩展到若干位、合并(COMBINE)、取反(INVERT)、间隔若干位重复、多条参数取值拼接为一条、同一条参数拆解为多条。
进一步地,对于二进制类型的逻辑原语参数,可以采用直接映射或预处理后直接映射,对于整型或字符串类型的逻辑原语参数,可以采用条件映射,或将整型或字符串类型的逻辑原语参数预处理后采用预处理后直接映射方式。
步骤a3,基于逻辑原语参数、逻辑原语参数对应的配置项、预处理方式和映射方式建立逻辑原语参数到芯片配置位映射规则。
具体地,如图3所示,逻辑原语参数到芯片配置位映射规则有逻辑原语参数(INIT0,INIT1)、配置项(PRAMA[127:96],PRAMA[127:32])、预处理方式(COMBINE,INVERT)和映射方式DIRECT构成。
步骤S203,获取用户原始设计文件,基于用户原始设计文件,利用逻辑原语参数到芯片配置位映射规则将逻辑原语参数配置到FPGA芯片比特位,生成FPGA芯片配置位和配置位取值。详细请参见图1所示实施例的步骤S103,在此不再赘述。
本实施例提供的一种从逻辑原语参数产生FPGA芯片配置比特的方法,通过FPGA芯片硬件设计数据和逻辑原语数据进行独立建模有利于提供对用户更友好的逻辑原语参数,并且有利于不同架构的FPGA芯片支持同一套逻辑原语。
在本实施例中提供了一种从逻辑原语参数产生FPGA芯片配置比特的方法,可用于上述的服务器类的设备,图4是根据本发明实施例的一种从逻辑原语参数产生FPGA芯片配置比特的方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,获取FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S402,基于FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件建立逻辑原语参数到芯片配置位映射规则。详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S403,获取用户原始设计文件,基于用户原始设计文件,利用逻辑原语参数到芯片配置位映射规则将逻辑原语参数配置到FPGA芯片比特位,生成FPGA芯片配置位和配置位取值。
具体地,上述步骤S403包括:
步骤S4031,基于所述用户原始设计文件对所述逻辑原语参数到芯片配置位映射规则进行匹配,生成二进制序列。
具体地,对于任意一条逻辑原语参数到芯片配置位映射规则,将该规则解析为三部分:对逻辑原语参数的取值的操作(即预处理方式),对配置比特的重新组合(即配置项)和对配置比特的赋值方式(即映射方式)。
在一些可选的实施方式中,上述步骤S4031包括:
步骤b1,对逻辑原语参数到芯片配置位映射规则进行解析,得到逻辑原语参数和与逻辑原语参数对应的预处理方式。
步骤b2,基于逻辑原语参数对用户设计文件中的网表进行查询,获取逻辑原语参数的取值。
具体地,基于用户设计文件得到网表,网表包含有逻辑原语参数和逻辑原语参数的取值,若网表中包含有逻辑原语参数到芯片配置位映射规则中的逻辑原语参数,则将网表中的取值作为逻辑原语参数的取值;若网表中不包含有逻辑原语参数到芯片配置位映射规则中的逻辑原语参数,则基于逻辑原语参数模型得到逻辑原语参数的默认值,将逻辑原语参数的默认值作为逻辑原语参数的取值。
步骤b3,基于预处理方式对逻辑原语参数的取值进行处理,生成二进制序列。
例如,如图5所示,逻辑原语参数到芯片配置位映射规则中的逻辑原语参数为INIT0和INIT1,通过上述步骤b2查询网表,得到INIT0和INIT1的取值,逻辑原语参数到芯片配置位映射规则中的预处理方式为COMBINE和INVERT,因此,将取值后的INIT0和INIT1合并之后取反,得到二进制序列。
步骤S4032,基于逻辑原语参数到芯片配置位映射规则,对基于芯片配置位分布模型进行查询,生成配置比特序列。
在一些可选的实施方式中,上述步骤S4032包括:
步骤c1,对逻辑原语参数到芯片配置位映射规则进行解析,得到配置项。
步骤c2,基于配置项对芯片配置位分布模型进行查询,生成配置项中配置比特的位置。
具体地,根据芯片配置位分布模型确定配置项中的配置比特在芯片比特流中的位置,即配置比特的位置。
步骤c3,基于配置比特的位置对配置比特进行重新组合,生成配置比特序列。
具体地,将配置比特的位置从高到低进行排序,并将排序后的配置比特重新组合,生成配置比特序列。
例如,如图5所示,根据芯片配置位分布模型确定配置项PRAMA[127:96],PRAMA[127:32]中某些配置位的位置,进而将该配置位的位置重新组合,生成配置比特序列。
步骤S4033,基于逻辑原语参数到芯片配置位映射规则确定映射方式。
步骤S4034,利用映射方式将二进制序列赋值给配置比特序列,生成FPGA芯片配置位和配置位取值。
例如,如图5所示,利用直接映射的映射方式将二进制序列赋值给配置比特序列,生成FPGA芯片配置位和配置位取值。
本实施例提供的一种从逻辑原语参数产生FPGA芯片配置比特的方法,基于逻辑原语参数、逻辑原语参数对应的配置项、预处理方式和映射方式建立逻辑原语参数到芯片配置位映射规则,为后续将逻辑原语参数配置到FPGA芯片比特位奠定了基础。
下面通过一个具体的实施例来说明一种从逻辑原语参数产生FPGA芯片配置比特的方法的具体步骤。
实施例1:
如图6所示,运行从逻辑原语参数产生FPGA芯片配置比特的方法的配置系统将运行过程分为两种状态:只和FPGA芯片型号相关的system-mode(系统模式)和用户设计相关的user-mode(使用者模式)。当system-mode中各个部分建模完成后该芯片的硬件特征认为已经固定,不同的用户设计只会影响user-mode的工作过程和结果。system-mode的数据输入为FPGA芯片硬件设计的说明,对用户可见的逻辑原语设计的说明,和逻辑原语参数到硬件电路实现间的映射规则文件。用户的原始设计文件和来自system-mode的信息共同决定了user-mode的具体工作状态和结果。
一种从逻辑原语参数产生FPGA芯片配置比特的方法的具体步骤如下:
通过将逻辑原语参数与芯片硬件实现的配置位分别独立建模,进而建立三条逻辑原语参数到芯片配置位映射规则,其中,如图7所示,三条逻辑原语参数到芯片配置位映射规则分别表示为:
(1)对于逻辑原语参数INIT0,INIT1合并后取反最后映射到PRAMA[127:96]和PRAMB[127:32],采用按顺序的直接映射;
(2)对于逻辑原语参数RST,INVERT合并后按顺序直接映射到PRAMA[1:0];
(3)对于逻辑原语参数DATA_WIDTH,采用按条件映射的方式,若该参数取值为36则对应二进制序列为14’hfff,若取值为18则对应的二进制序列为14’h0,将获得的二进制序列映射到PRAMC[13:0]。
从用户原始设计文件中的网表中获得的参数及取值分别为:INIT0取值64’h0,INIT1取值64’hffffffffffffffff,RST取值1’b0,INVERT取值1’b1,DATA_WIDTH取值36。
根据芯片配置位分布模型得到PRAMA的128比特最终所处位置为区间[127,0],要求PRAMB的128比特所处位置为区间[255,128],要求PRAMC的14比特所处位置为区间[269,256]。
对逻辑原语参数进行预处理,可以得到PRAMA[127:96]的取值为INIT0取值的高32位取反后的结果即32’bffffffff,PRAMB[127:32]的取值为INIT0的从高到低32位取反并拼接INIT1的从高到低64位取反:32’bffffffff左移64位后按位加64’h0;同理可得PRAMA[1:0],PRAMC[13:0]的取值。
进而得到具体取值后,按照PRAMA,PRAMB,PRAMC被要求所处位置区间即可得出最终的配置位和配置位的取值。
上述实施例1中,通过数据驱动的系统运行方式可以在一定程度上避免潜在的代码坏味道和软件架构腐蚀;并且,由于新的映射方式只涉及规则文件的更新,无需修改代码,有利于降低对于不同型号芯片支持的时间成本,有利于开发人员将主要精力集中到芯片特性上;最后,将逻辑原语的参数与芯片硬件实现的配置位分别独立建模,有利于提供对用户更友好的逻辑原语参数,有利于不同架构的FPGA芯片支持同一套逻辑原语。
在本实施例中还提供了一种从逻辑原语参数产生FPGA芯片配置比特的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种从逻辑原语参数产生FPGA芯片配置比特的装置,如图8所示,包括:
获取模块801,用于获取FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件;
建立模块802,用于基于FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件建立逻辑原语参数到芯片配置位映射规则;
配置模块803,用于获取用户原始设计文件,基于用户原始设计文件,利用逻辑原语参数到芯片配置位映射规则将逻辑原语参数配置到FPGA芯片比特位,生成FPGA芯片配置位和配置位取值。
在一些可选的实施方式中,建立模块802包括:
第一构建单元,用于基于FPGA芯片硬件设计数据构建芯片配置位分布模型;芯片配置位分布模型包括各配置比特在比特流中的实际位置和配置项;
第二构建单元,用于基于逻辑原语数据构建逻辑原语参数模型;逻辑原语参数模型包括逻辑原语参数的类型和取值范围;
映射单元,用于基于逻辑原语参数映射文件,将逻辑原语参数模型的各逻辑原语参数与芯片配置位分布模型中的配置项进行映射,得到逻辑原语参数到芯片配置位映射规则。
在一些可选的实施方式中,映射单元包括:
第一确定子单元,用于基于逻辑原语参数映射文件确定逻辑原语参数对应的配置项;
第二确定子单元,用于基于逻辑原语参数映射文件确定预处理方式和映射方式;
建立子单元,用于基于逻辑原语参数、逻辑原语参数对应的配置项、预处理方式和映射方式建立逻辑原语参数到芯片配置位映射规则。
在一些可选的实施方式中,配置模块803包括:
第一查询单元,用于基于所述用户原始设计文件对所述逻辑原语参数到芯片配置位映射规则进行匹配,生成二进制序列;
第二查询单元,用于基于逻辑原语参数到芯片配置位映射规则,对基于芯片配置位分布模型进行查询,生成配置比特序列;
确定单元,用于基于逻辑原语参数到芯片配置位映射规则确定映射方式;赋值单元,用于利用映射方式将二进制序列赋值给配置比特序列,生成FPGA芯片配置位和配置位取值。
在一些可选的实施方式中,第一查询单元包括:
第一解析子单元,用于对逻辑原语参数到芯片配置位映射规则进行解析,得到逻辑原语参数和与逻辑原语参数对应的预处理方式;
第一查询子单元,用于基于逻辑原语参数对用户设计文件中的网表进行查询,获取逻辑原语参数的取值;
处理子单元,用于基于预处理方式对逻辑原语参数的取值进行处理,生成二进制序列。
在一些可选的实施方式中,第二查询单元包括:
第二解析子单元,用于对逻辑原语参数到芯片配置位映射规则进行解析,得到配置项;
第二查询子单元,用于基于配置项对芯片配置位分布模型进行查询,生成配置项中配置比特的位置;
组合子单元,用于基于配置比特的位置对配置比特进行重新组合,生成配置比特序列。
在一些可选的实施方式中,第二确定子单元中映射方式包括直接映射,条件映射和预处理后直接映射。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的一种从逻辑原语参数产生FPGA芯片配置比特的装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图8所示的一种从逻辑原语参数产生FPGA芯片配置比特的装置。
请参阅图9,图9是本发明可选实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种从逻辑原语参数产生FPGA芯片配置比特的方法,其特征在于,所述方法包括:
获取FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件;
基于所述FPGA芯片硬件设计数据、所述逻辑原语数据和所述逻辑原语参数映射文件建立逻辑原语参数到芯片配置位映射规则;
获取用户原始设计文件,基于所述用户原始设计文件,利用所述逻辑原语参数到芯片配置位映射规则将所述逻辑原语参数配置到FPGA芯片比特位,生成FPGA芯片配置位和配置位取值。
2.根据权利要求1所述的方法,其特征在于,所述基于所述FPGA芯片硬件设计数据、所述逻辑原语数据和所述逻辑原语参数映射文件建立逻辑原语参数到芯片配置位映射规则,包括:
基于所述FPGA芯片硬件设计数据构建芯片配置位分布模型;所述芯片配置位分布模型包括各配置比特在比特流中的实际位置和配置项;
基于所述逻辑原语数据构建逻辑原语参数模型;所述逻辑原语参数模型包括逻辑原语参数的类型和取值范围;
基于所述逻辑原语参数映射文件,将所述逻辑原语参数模型的各逻辑原语参数与所述芯片配置位分布模型中的配置项进行映射,得到逻辑原语参数到芯片配置位映射规则。
3.根据权利要求2所述的方法,其特征在于,所述基于所述逻辑原语参数映射文件,将所述逻辑原语参数模型的各逻辑原语参数与所述芯片配置位分布模型中的配置项进行映射,得到逻辑原语参数到芯片配置位映射规则,包括:
基于所述逻辑原语参数映射文件确定所述逻辑原语参数对应的配置项;
基于所述逻辑原语参数映射文件确定预处理方式和映射方式;
基于所述逻辑原语参数、所述逻辑原语参数对应的配置项、所述预处理方式和所述映射方式建立所述逻辑原语参数到芯片配置位映射规则。
4.根据权利要求3所述的方法,其特征在于,所述基于所述用户原始设计文件,利用所述逻辑原语参数到芯片配置位映射规则将所述逻辑原语参数配置到FPGA芯片比特位,生成FPGA芯片配置位和配置位取值,包括:
基于所述用户原始设计文件,对所述逻辑原语参数到芯片配置位映射规则进行匹配,生成二进制序列;
基于所述逻辑原语参数到芯片配置位映射规则,对基于所述芯片配置位分布模型进行查询,生成配置比特序列;
基于所述逻辑原语参数到芯片配置位映射规则确定所述映射方式;
利用所述映射方式将所述二进制序列赋值给所述配置比特序列,生成所述FPGA芯片配置位和所述配置位取值。
5.根据权利要求4所述的方法,其特征在于,所述基于所述用户原始设计文件对所述逻辑原语参数到芯片配置位映射规则进行匹配,生成二进制序列,包括:
对所述逻辑原语参数到芯片配置位映射规则进行解析,得到所述逻辑原语参数和与所述逻辑原语参数对应的所述预处理方式;
基于所述逻辑原语参数对所述用户设计文件中的网表进行查询,获取逻辑原语参数的取值;
基于所述预处理方式对所述逻辑原语参数的取值进行处理,生成所述二进制序列。
6.根据权利要求4所述的方法,其特征在于,所述基于所述逻辑原语参数到芯片配置位映射规则,对基于所述芯片配置位分布模型进行查询,生成配置比特序列,包括:
对所述逻辑原语参数到芯片配置位映射规则进行解析,得到所述配置项;
基于配置项对所述芯片配置位分布模型进行查询,生成所述配置项中配置比特的位置;
基于所述配置比特的位置对配置比特进行重新组合,生成所述配置比特序列。
7.根据权利要求3所述的方法,其特征在于,所述映射方式包括直接映射,条件映射和预处理后直接映射。
8.一种从逻辑原语参数产生FPGA芯片配置比特的装置,其特征在于,所述装置包括:
获取模块,用于获取FPGA芯片硬件设计数据、逻辑原语数据和逻辑原语参数映射文件;
建立模块,用于基于所述FPGA芯片硬件设计数据、所述逻辑原语数据和所述逻辑原语参数映射文件建立逻辑原语参数到芯片配置位映射规则;
配置模块,用于获取用户原始设计文件,基于所述用户原始设计文件,利用所述逻辑原语参数到芯片配置位映射规则将所述逻辑原语参数配置到FPGA芯片比特位,生成FPGA芯片配置位和配置位取值。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的从逻辑原语参数产生FPGA芯片配置比特的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的从逻辑原语参数产生FPGA芯片配置比特的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311851629.2A CN117807938B (zh) | 2023-12-29 | 2023-12-29 | 一种从逻辑原语参数产生fpga芯片配置比特的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311851629.2A CN117807938B (zh) | 2023-12-29 | 2023-12-29 | 一种从逻辑原语参数产生fpga芯片配置比特的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117807938A true CN117807938A (zh) | 2024-04-02 |
CN117807938B CN117807938B (zh) | 2024-07-12 |
Family
ID=90429540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311851629.2A Active CN117807938B (zh) | 2023-12-29 | 2023-12-29 | 一种从逻辑原语参数产生fpga芯片配置比特的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117807938B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7380232B1 (en) * | 2006-03-10 | 2008-05-27 | Xilinx, Inc. | Method and apparatus for designing a system for implementation in a programmable logic device |
US20110231628A1 (en) * | 2010-03-16 | 2011-09-22 | Harman International Industries, Incorporated | System for memory instantiation and management |
US20140241346A1 (en) * | 2013-02-25 | 2014-08-28 | Google Inc. | Translating network forwarding plane models into target implementation using network primitives |
CN112997145A (zh) * | 2018-08-27 | 2021-06-18 | 领汇仪器有限公司 | 使用部分重配置对现场可编程门阵列进行编程的改进的过程 |
CN115658030A (zh) * | 2022-10-19 | 2023-01-31 | 超聚变数字技术有限公司 | 代码处理方法、装置和电子设备 |
CN116894413A (zh) * | 2023-09-05 | 2023-10-17 | 苏州异格技术有限公司 | 一种基于硬件的逻辑映射方法、装置、设备及存储介质 |
-
2023
- 2023-12-29 CN CN202311851629.2A patent/CN117807938B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7380232B1 (en) * | 2006-03-10 | 2008-05-27 | Xilinx, Inc. | Method and apparatus for designing a system for implementation in a programmable logic device |
US20110231628A1 (en) * | 2010-03-16 | 2011-09-22 | Harman International Industries, Incorporated | System for memory instantiation and management |
US20140241346A1 (en) * | 2013-02-25 | 2014-08-28 | Google Inc. | Translating network forwarding plane models into target implementation using network primitives |
CN112997145A (zh) * | 2018-08-27 | 2021-06-18 | 领汇仪器有限公司 | 使用部分重配置对现场可编程门阵列进行编程的改进的过程 |
CN115658030A (zh) * | 2022-10-19 | 2023-01-31 | 超聚变数字技术有限公司 | 代码处理方法、装置和电子设备 |
CN116894413A (zh) * | 2023-09-05 | 2023-10-17 | 苏州异格技术有限公司 | 一种基于硬件的逻辑映射方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
谢丁;邵;来金梅;王健;陈利光;王元;俞建德;: "现代层次化可编程逻辑器件软件系统FDE2009", 电子学报, no. 05, 15 May 2010 (2010-05-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117807938B (zh) | 2024-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111913998B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN114880346A (zh) | 一种数据处理方法及相关组件、加速处理器 | |
JP7170094B2 (ja) | オペレーター併合方法、装置、電子デバイス、記憶媒体及びコンピュータプログラム | |
CN111737399A (zh) | 扩展问答集的方法、装置、电子设备和可读存储介质 | |
CN104408073A (zh) | 数据操作方法和装置 | |
US10255399B2 (en) | Method, apparatus and system for automatically performing end-to-end channel mapping for an interconnect | |
US20100005203A1 (en) | Method of Merging and Incremantal Construction of Minimal Finite State Machines | |
CN111061743A (zh) | 数据加工方法、装置和电子设备 | |
CN110704394A (zh) | 报表配置修改方法及装置 | |
CN117350204B (zh) | 目标网表的生成方法、装置、计算机设备及可读存储介质 | |
CN117807938B (zh) | 一种从逻辑原语参数产生fpga芯片配置比特的方法 | |
CN111857656B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113590593A (zh) | 数据表信息的生成方法和装置、存储介质及电子装置 | |
CN111176838B (zh) | 为二分图中的节点分配嵌入向量的方法以及装置 | |
CN111177479A (zh) | 获取关系网络图中节点的特征向量的方法以及装置 | |
CN116009847A (zh) | 代码生成方法、装置、电子设备及存储介质 | |
JP7316305B2 (ja) | グラフ計算の処理方法、装置、電子機器及び記憶媒体 | |
CN111506399B (zh) | 任务迁移方法、装置、电子设备及存储介质 | |
Lai et al. | Placement for the reconfigurable datapath architecture | |
CN112270412A (zh) | 网络算子处理方法、装置、电子设备及存储介质 | |
CN117787172B (zh) | 布线资源图的构建方法、装置、计算机设备及存储介质 | |
CN117391002B (zh) | 一种ip核扩展描述方法及ip核生成方法 | |
CN117787169B (zh) | 基于fpga的网表优化方法、装置、计算机设备及存储介质 | |
CN113760809B (zh) | 一种gpio接口的配置方法、系统、装置及可读存储介质 | |
US20240143892A1 (en) | Methods and apparatus to implement library analytics and guided partitioning to select power-performance-area of semiconductor chip design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |