[go: up one dir, main page]

CN105426314B - A kind of process mapping method of FPGA memories - Google Patents

A kind of process mapping method of FPGA memories Download PDF

Info

Publication number
CN105426314B
CN105426314B CN201410490278.1A CN201410490278A CN105426314B CN 105426314 B CN105426314 B CN 105426314B CN 201410490278 A CN201410490278 A CN 201410490278A CN 105426314 B CN105426314 B CN 105426314B
Authority
CN
China
Prior art keywords
memory
port
port group
read
parameters
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
CN201410490278.1A
Other languages
Chinese (zh)
Other versions
CN105426314A (en
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.)
Jingwei Qili Beijing Technology Co ltd
Original Assignee
Capital Microelectronics Beijing 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 Capital Microelectronics Beijing Technology Co Ltd filed Critical Capital Microelectronics Beijing Technology Co Ltd
Priority to CN201410490278.1A priority Critical patent/CN105426314B/en
Publication of CN105426314A publication Critical patent/CN105426314A/en
Application granted granted Critical
Publication of CN105426314B publication Critical patent/CN105426314B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明涉及一种FPGA存储器的工艺映射方法,所述方法包括:根据存储器逻辑网表的原始信息进行分类封装,生成端口组集合;根据所述端口组集合包括的端口组的数量和端口组参数,构造存储器宏;根据目标工艺库中的资源规模对所述存储器宏的数据空间和地址空间进行切分,得到存储器组件;所述存储器组件包括功能参数,所述功能参数具体为:构造所述存储器宏的端口组的端口组参数;将所述存储器组件按位扩展和地址扩展生成存储器组件扩展组;根据所述存储器组件扩展组中包括的每一个存储器组件,再进行存储器组件类型的精确匹配;根据所述精确匹配后的所述存储器组件的连接关系和所述功能参数,在器件工艺映射库进行映射,生成所述FPGA存储器。

The present invention relates to a process mapping method of FPGA memory. The method comprises: classifying and encapsulating according to the original information of the logic netlist of the memory to generate a port group set; according to the number of port groups and port group parameters included in the port group set , constructing a memory macro; segmenting the data space and address space of the memory macro according to the resource scale in the target process library to obtain a memory component; the memory component includes function parameters, and the function parameters are specifically: constructing the The port group parameter of the port group of the memory macro; the memory component is expanded by bits and addresses to generate a memory component expansion group; according to each memory component included in the memory component expansion group, the exact matching of the memory component type is performed and performing mapping in a device process mapping library to generate the FPGA memory according to the precisely matched connection relationship of the memory components and the functional parameters.

Description

一种FPGA存储器的工艺映射方法A Process Mapping Method for FPGA Memory

技术领域technical field

本发明涉及微电子领域中的集成电路设计技术领域,特别是现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)存储器的工艺映射方法。The invention relates to the technical field of integrated circuit design in the field of microelectronics, in particular to a process mapping method for Field Programmable Gate Array (Field Programmable Gate Array, FPGA) memory.

背景技术Background technique

FPGA是一种具有丰富硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器件。这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。FPGA is a logic device with abundant hardware resources, powerful parallel processing capability and flexible reconfigurable capability. These features make FPGA more and more widely used in data processing, communication, network and many other fields.

存储器是FPGA的基本单元,工艺映射(Technology Mapping)是FPGA涉及流程中,连接前端逻辑综合和后端布局布线的重要桥梁。在这一阶段,与工艺无关的电路网表在一定的硬件约束条件下,映射到工艺库的相关结构,工艺映射方法直接影响到FPGA的性能。Memory is the basic unit of FPGA, and technology mapping (Technology Mapping) is an important bridge connecting front-end logic synthesis and back-end layout and routing in the process involved in FPGA. At this stage, the process-independent circuit netlist is mapped to the relevant structure of the process library under certain hardware constraints, and the process mapping method directly affects the performance of the FPGA.

发明内容Contents of the invention

本发明提供了一种FPGA存储器的工艺映射方法,能够实现一种支持多规模、多读写模式和多端口的FPGA存储器的工艺映射。The invention provides a process mapping method of an FPGA memory, which can realize the process mapping of an FPGA memory supporting multiple scales, multiple read-write modes and multiple ports.

本发明实施例提供了一种FPGA存储器的工艺映射方法,包括:The embodiment of the present invention provides a process mapping method of FPGA memory, comprising:

根据存储器逻辑网表的原始信息进行分类封装,生成端口组集合;Classify and encapsulate according to the original information of the memory logic netlist to generate a port group set;

根据所述端口组集合包括的端口组的数量和端口组参数,构造存储器宏;Constructing a memory macro according to the number of port groups included in the port group set and port group parameters;

根据目标工艺库中的资源规模对所述存储器宏的数据空间和地址空间进行切分,得到存储器组件;所述存储器组件包括功能参数,所述功能参数具体为:构造所述存储器宏的端口组的端口组参数;Segment the data space and address space of the memory macro according to the resource scale in the target process library to obtain a memory component; the memory component includes functional parameters, and the functional parameters are specifically: constructing a port group of the memory macro The port group parameters;

将所述存储器组件按位扩展和地址扩展生成存储器组件扩展组;bit-extending and address-extending the memory components to generate a memory component expansion group;

根据所述存储器组件扩展组中包括的每一个存储器组件,再进行存储器组件类型的精确匹配;performing precise matching of memory component types according to each memory component included in the memory component expansion group;

根据所述精确匹配后的所述存储器组件的连接关系和所述功能参数,在器件工艺映射库进行映射,生成所述FPGA存储器。According to the precisely matched connection relationship of the memory components and the functional parameters, mapping is performed in a device process mapping library to generate the FPGA memory.

优选的,所述根据所述端口组集合包括的端口组的数量和端口组参数,构造存储器宏包括:Preferably, according to the number of port groups included in the port group set and port group parameters, constructing a memory macro includes:

确定所述端口组的数量是否为1或2;determining whether the number of port groups is 1 or 2;

如果为1,根据所述端口组参数构造单端口存储器宏;If it is 1, construct a single-port memory macro according to the port group parameter;

如果为2,根据所述端口组参数构造全双端口存储器宏或者伪双端口存储器宏;其中,当两个所述端口组的端口组参数均为只读,或一个只读另一个读写时,构造全双端口存储器宏;当一个所述端口组的端口组参数为只写,另一个所述端口组的端口组参数为只读时,构造伪双端口存储器宏;If it is 2, construct a full dual-port memory macro or a pseudo-dual-port memory macro according to the port group parameters; wherein, when the port group parameters of the two port groups are read-only, or one is read-only and the other is read-write Constructing a full dual-port memory macro; when the port group parameter of one port group is write-only and the port group parameter of the other port group is read-only, construct a pseudo-dual-port memory macro;

如果所述端口组的数量为3或以上,则根据预设的双端口读写模式配对规则,对所述端口组集合中的端口组进行配对,并根据配对成功的端口组构造全双端口存储器宏或者伪双端口存储器宏,根据未配对成功的端口组构造单端口存储器宏。If the number of the port groups is 3 or more, pair the port groups in the port group set according to the preset dual-port read-write mode pairing rules, and construct a full dual-port memory according to the successfully paired port groups A macro or a pseudo-dual-port memory macro constructs a single-port memory macro based on an unpaired port group.

进一步优选的,所述根据预设的双端口读写模式配对规则,对所述端口组集合中的端口组进行配对具体为:Further preferably, the pairing of the port groups in the port group set according to the preset dual-port read-write mode pairing rules is specifically:

将所述端口组参数为只读的端口组依次与端口组参数为读写的端口组进行配对,直至所述端口组参数为读写的端口组全部被配对,或者所述端口组参数为只读的端口组全部被配对;Pairing the port groups whose port group parameters are read-only with the port group parameters whose port group parameters are read-write in turn, until all the port groups whose port group parameters are read-write are paired, or the port group parameters are only The read port groups are all paired;

当还存未被配对的所述端口组参数为只读的端口组时,将未被配对的所述端口组参数为只读的端口组依次与端口组参数为只写的端口组进行配对,直至所述端口组参数为只写的端口组全部被配对,或者所述端口组参数为只读的端口组全部被配对;When the unpaired port group parameters are still read-only port groups, pair the unpaired port group parameters with read-only port groups with the port group parameters for write-only port groups in turn, until all port groups whose port group parameters are write-only are paired, or all port groups whose port group parameters are read-only are paired;

当还存在未被配对的所述端口组参数为只读的端口组时,将未被配对的所述端口组参数为只读的端口组进行两两配对。When there are still unpaired port groups whose parameters are read-only, pair the unpaired port groups whose parameters are read-only.

优选的,所述根据目标工艺库中的资源规模对所述存储器宏的数据空间和地址空间进行切分,得到存储器组件具体为:Preferably, the data space and address space of the memory macro are segmented according to the resource scale in the target process library, and the memory components obtained are specifically:

根据所述存储器宏的数据深度和地址宽度计算所述存储器宏规模;calculating the size of the memory macro according to the data depth and address width of the memory macro;

在目标工艺库中,获取大于并最接近所述存储器宏规模的资源规模的组件类型作为初次切分组件类型,或者获取与所述存储器宏规模相等的资源规模的组件类型作为初次切分组件类型;In the target process library, obtain a component type with a resource scale larger than and closest to the memory macro scale as the primary split component type, or obtain a component type with a resource scale equal to the memory macro scale as the primary split component type ;

根据所述初次切分组件类型切分所述存储器宏,构造存储器组件。Divide the memory macro according to the type of the initial division component to construct a memory component.

进一步优选的,当所述目标工艺库中,全部资源规模均小于所述存储器宏规模时,所述方法还包括:Further preferably, when the size of all resources in the target process library is smaller than the macro-scale of the memory, the method further includes:

获取目标工艺库中资源规模最大的组件类型作为初次切分组件类型。Obtain the component type with the largest resource scale in the target process library as the initial split component type.

进一步优选的,所述精确匹配包括:Further preferably, the exact matching includes:

计算利用所述初次切分组件类型构造所述存储器组件的第一造价;calculating a first cost for constructing the memory component by using the primary slicing component type;

获取目标工艺库中,小于所述初次切分组件类型的资源规模的其他组件类型;Obtaining other component types in the target process library that are smaller than the resource scale of the initial segmentation component type;

依次计算利用其他组件类型构造所述存储器组件的造价,其中最小的造价为第二造价;Calculate the cost of constructing the memory component by using other component types in turn, wherein the smallest cost is the second cost;

当所述第二造价小于第一造价时,将所述第二造价对应的组件类型作为构造所述存储器组件的最优组件类型;When the second cost is less than the first cost, the component type corresponding to the second cost is used as the optimal component type for constructing the memory component;

否则,将所述初次切分组件类型作为构造所述存储器组件的最优组件类型。Otherwise, the initial split component type is used as the optimal component type for constructing the memory component.

本发明实施例提供的FPGA存储器的工艺映射方法,通过对存储器逻辑网表的原始信息进行分类封装,生成端口组集合;根据所述端口组集合包括的端口组的数量和端口组参数,构造存储器宏;根据目标工艺库中的资源规模对所述存储器宏的数据空间和地址空间进行切分,得到存储器组件;对存储器组件类型进行精确匹配后,再根据精确匹配后的所述存储器组件的连接关系和所述功能参数,在器件工艺映射库进行映射,生成所述FPGA存储器,从而实现了一种支持多规模、多读写模式和多端口的FPGA存储器的工艺映射方法。The process mapping method of the FPGA memory provided by the embodiment of the present invention generates a port group set by classifying and encapsulating the original information of the memory logic netlist; according to the port group quantity and port group parameters included in the port group set, the memory is constructed Macro; segment the data space and address space of the memory macro according to the resource scale in the target process library to obtain the memory component; after accurately matching the type of the memory component, and then according to the connection of the precisely matched memory component The relationship and the functional parameters are mapped in a device process mapping library to generate the FPGA memory, thereby realizing a process mapping method for an FPGA memory that supports multiple scales, multiple read-write modes, and multiple ports.

附图说明Description of drawings

图1为本发明实施例提供的FPGA存储器的工艺映射方法的流程图;Fig. 1 is the flow chart of the technology mapping method of the FPGA memory that the embodiment of the present invention provides;

图2为本发明实施例提供的端口组集合管脚的示意图;FIG. 2 is a schematic diagram of a port group assembly pin provided by an embodiment of the present invention;

图3为本发明实施例提供的构造存储器宏的方法流程图;FIG. 3 is a flowchart of a method for constructing a memory macro provided by an embodiment of the present invention;

图4为本发明实施例提供的存储器组件的切分方法流程图;FIG. 4 is a flow chart of a method for splitting a memory component provided by an embodiment of the present invention;

图5为本发明实施例提供的存储器组件的精确匹配的方法流程图。FIG. 5 is a flowchart of a method for precise matching of memory components provided by an embodiment of the present invention.

具体实施方式Detailed ways

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。The technical solutions of the present invention will be described in further detail below with reference to the accompanying drawings and embodiments.

图1为本发明实施例提供的FPGA存储器的工艺映射方法的流程图。如图1所示,所述方法包括如下步骤:FIG. 1 is a flow chart of a process mapping method for an FPGA memory provided by an embodiment of the present invention. As shown in Figure 1, the method includes the following steps:

步骤110,根据存储器逻辑网表的原始信息进行分类封装,生成端口组集合;Step 110, classifying and encapsulating according to the original information of the memory logic netlist, and generating a port group set;

具体的,在进行FPGA工艺映射时,首先需要有逻辑网表的原始信息输入。对于输入的逻辑网表的原始信息,进行分类封装,生成以地址管脚为主键的一组相关管脚及参数设置集合,即端口组的形式。所述端口组集合是指存取同一块存储器的多个端口组的集合。端口组集合可以如图2所示,图中PORT GROUP 0为端口组集合中的第一个端口组,PORT GROUPi为端口组集合中的第i+1个端口组。Specifically, when performing FPGA process mapping, the original information of the logic netlist needs to be input first. For the original information of the input logic netlist, it is classified and packaged to generate a set of related pins and parameter settings with the address pin as the main key, that is, in the form of a port group. The port group set refers to a set of multiple port groups accessing the same memory. The port group set may be shown in FIG. 2 , in which PORT GROUP 0 is the first port group in the port group set, and PORT GROUPi is the i+1th port group in the port group set.

端口组集合中的端口组具有相同的模板类,它们具有相同的管脚架构。Port groups in a port group collection have the same template class, and they have the same pin architecture.

每个端口组都具有一些端口组参数,在一个例子中可以具体如下表1所示。Each port group has some port group parameters, which can be specifically shown in Table 1 below in an example.

端口组参数Port Group Parameters 参数特征值parameter eigenvalue 同步模式synchronous mode 输出寄存,地址寄存output register, address register 控制信号control signal 片使能,写使能,读使能,重置使能chip enable, write enable, read enable, reset enable 读写冲突模式read-write conflict mode 先读,写通,保持,旁路Read First, Write Through, Hold, Bypass 数据输出端口复位值Data output port reset value >=0>=0

表1Table 1

以图2所示端口组集合为例,每个端口组都包括时钟信号管脚CLK、片选信号管脚EN、写使能信号管脚WE、复位信号管脚RST、数据输入信号管脚DIN(数据宽度)、地址信号管脚ADDR(地址深度)以及数据输出信号管脚DOUT。Taking the set of port groups shown in Figure 2 as an example, each port group includes a clock signal pin CLK, a chip select signal pin EN, a write enable signal pin WE, a reset signal pin RST, and a data input signal pin DIN (data width), address signal pin ADDR (address depth) and data output signal pin DOUT.

需要说明的是,端口组集合中各个端口组的参数特征值可以是不同的。It should be noted that the characteristic values of the parameters of the port groups in the port group set may be different.

步骤120,根据所述端口组集合包括的端口组的数量和端口组参数,构造存储器宏;Step 120, constructing a memory macro according to the number of port groups included in the port group set and port group parameters;

具体的,存储器宏是以端口模式为特征,根据读写使能及地址管脚的不同,将端口组集合中的所有端口组进行划分,配对得到的逻辑层封装。端口模式可以具体分类为:单端口、伪双端口、全双端口和多端口几种类别。Specifically, the memory macro is characterized by a port mode, and all port groups in the port group set are divided according to the read/write enable and address pins, and the logical layer encapsulation is obtained by pairing. Port modes can be specifically classified into: single-port, pseudo-dual-port, full-dual-port and multi-port.

构造存储器宏的具体方法可以如图3所示,包括如下步骤:The concrete method of constructing memory macro can be shown in Figure 3, comprises the following steps:

步骤301,确定所述端口组的数量是否为1;Step 301, determine whether the number of the port group is 1;

如果为1,执行步骤302;否则执行步骤303;If it is 1, execute step 302; otherwise execute step 303;

步骤302,当端口组数量为1时,根据所述端口组参数构造单端口存储器宏。Step 302, when the number of port groups is 1, construct a single-port memory macro according to the port group parameters.

步骤303,确定所述端口组的数量是否为2;Step 303, determining whether the number of the port groups is 2;

如果为2,执行步骤304;否则执行步骤307;If it is 2, execute step 304; otherwise execute step 307;

步骤304,当端口组数量为2时,确定两个所述端口组的端口组参数是否为均为只读或一个只读一个读写;Step 304, when the number of port groups is 2, determine whether the port group parameters of the two port groups are both read-only or one read-only and one read-write;

步骤305,如果两个所述端口组的端口组参数均为只读或一个只读一个读写,根据所述端口组参数构造全双端口存储器宏;Step 305, if the port group parameters of the two port groups are read-only or one is read-only and the other is read-write, construct a full dual-port memory macro according to the port group parameters;

步骤306,如果一个所述端口组的端口组参数为只写,另一个所述端口组的端口组参数为只读,根据所述端口组参数构造伪双端口存储器宏;Step 306, if the port group parameter of one port group is write-only and the port group parameter of the other port group is read-only, construct a pseudo dual-port memory macro according to the port group parameters;

步骤307,当端口组数量为3或以上时,根据预设的双端口读写模式配对规则,对所述端口组集合中的端口组进行配对,并根据配对成功的端口组构造全双端口存储器宏或者伪双端口存储器宏,根据未配对成功的端口组构造单端口存储器宏。Step 307, when the number of port groups is 3 or more, pair the port groups in the port group set according to the preset dual-port read-write mode pairing rules, and construct a full dual-port memory according to the successfully paired port groups A macro or a pseudo-dual-port memory macro constructs a single-port memory macro based on an unpaired port group.

具体的,如果端口组集合中至少有3个端口组时,需要首先对端口组进行分类,遍历端口组集合中的全部端口组,根据各个端口组的端口组参数,将全部端口组按照可读写、只读、只写的参数属性进行划分,分类为可读写端口组子集合、只读端口组子集合和只写端口组子集合。然后,对所有子集合中的端口组进行配对。Specifically, if there are at least 3 port groups in the port group set, it is necessary to classify the port groups first, traverse all port groups in the port group set, and sort all port groups according to the readable Write, read-only, and write-only parameter attributes are divided into read-write port group sub-sets, read-only port group sub-sets, and write-only port group sub-sets. Then, pair the port groups in all subcollections.

配对遵循一定的匹配规则,如下表2所示。The pairing follows certain matching rules, as shown in Table 2 below.

表2Table 2

并且,匹配的两个端口组需要是存取同一块存储器的两个端口组。Moreover, the two matching port groups need to be two port groups accessing the same memory.

在一个具体的例子中,匹配过程可以具体为:In a specific example, the matching process can be specified as:

依次选取只读端口组子集合中的一个端口组,首先将只读端口组子集合中的一个端口组与可读写端口组子集合中的端口组进行配对,如果配对成功,将配对成功的两个端口组分别从只读端口组子集合和可读写端口组子集合中移除,并且,根据配对的两个端口组构造全双端口存储器宏,直至所述可读写端口组子集合中的端口组全部被配对,或者所述只读端口组子集合中的端口组全部被配对。Select a port group in the read-only port group sub-set in turn, first pair a port group in the read-only port group sub-set with a port group in the read-write port group sub-set, if the pairing is successful, the paired The two port groups are respectively removed from the read-only port group subset and the read-write port group subset, and a full dual-port memory macro is constructed from the paired two port groups until the read-write port group subset The port groups in are all paired, or the port groups in the read-only port group subset are all paired.

在上述配对过程完成后,如果只读端口组子集合中还存未被配对的端口组,将只读端口组子集合中未被配对的端口组依次与只写端口组子集合的端口组进行配对,如果配对成功,将配对成功的两个端口组分别从只读端口组子集合和只写端口组子集合中移除,并且,根据配对的两个端口组构造伪双端口存储器宏。直至所述只写端口组子集合中的端口组全部被配对,或者所述只读端口组子集合中的端口组全部被配对。After the above pairing process is completed, if there are still unpaired port groups in the read-only port group sub-set, the unpaired port groups in the read-only port group sub-set are sequentially compared with the port groups in the write-only port group sub-set For pairing, if the pairing is successful, the two successfully paired port groups are respectively removed from the read-only port group sub-set and the write-only port group sub-set, and a pseudo dual-port memory macro is constructed according to the paired two port groups. Until all the port groups in the write-only port group subset are paired, or all the port groups in the read-only port group subset are paired.

在上述配对过程完成后,如果只读端口组子集合中还存未被配对的端口组,将未被配对的所述端口组参数为只读的端口组进行两两配对。并且,根据配对的两个端口组构造全双端口存储器宏。直至没有可以配对的端口组。After the above pairing process is completed, if there are still unpaired port groups in the read-only port group subset, pair the unpaired port group parameters into read-only port groups for pairwise pairing. Also, a full dual-port memory macro is constructed from paired two port groups. Until there are no port groups that can be paired.

在上述配对过程完成后,根据剩余未配对的端口组构造单端口存储器宏。After the above pairing process is completed, a single-port memory macro is constructed from the remaining unpaired port groups.

步骤130,根据目标工艺库中的资源规模对所述存储器宏的数据空间和地址空间进行切分,得到存储器组件;Step 130, segmenting the data space and address space of the memory macro according to the resource scale in the target process library to obtain memory components;

具体的,存储器组件是将存储器宏的数据空间和地址空间按照目标工艺库资源规模进行切分得到的可匹配到目标工艺库的逻辑层封装。所述存储器组件包括功能参数,所述功能参数具体为:构造所述存储器宏的端口组的端口组参数。Specifically, the memory component is obtained by dividing the data space and address space of the memory macro according to the resource scale of the target process library, and is a logical layer package that can be matched to the target process library. The memory component includes function parameters, specifically, the function parameters are: port group parameters of the port groups that construct the memory macro.

目标工艺库资源可以包括多种组件,比如块存储器、分布式存储器等,每一种组件可以由多种尺寸规模。比如块存储器可以是5K、9K、18K等,分布式存储器可以是32×2S、32×2D、32×2T、32×2Q等。The resource of the target process library may include various components, such as block storage, distributed storage, etc., and each component may have multiple sizes. For example, the block memory can be 5K, 9K, 18K, etc., and the distributed memory can be 32×2S, 32×2D, 32×2T, 32×2Q, etc.

对于前一步骤构造得到的存储器宏,具有一定大小的宏规模,可以利用目标工艺库资源的组件的尺寸规模来设定阈值,确定对所述存储器宏的数据空间和地址空间进行切分的初次切分组件类型,根据初次切分组件类型进行切分,然后再进行最优组件类型匹配。具体的如图4所示,包括下述步骤:For the memory macro constructed in the previous step, which has a certain macro scale, the threshold can be set by using the size scale of the components of the target process library resource to determine the first time to divide the data space and address space of the memory macro. Segment component type, segment according to the initial component type, and then perform optimal component type matching. Specifically as shown in Figure 4, it includes the following steps:

步骤401,根据所述存储器宏的数据深度和地址宽度计算所述存储器宏规模;Step 401, calculating the size of the memory macro according to the data depth and address width of the memory macro;

步骤402,确定目标工艺库中是否存在尺寸规模大于存储器宏规模的组件;Step 402, determining whether there is a component whose size scale is larger than the memory macro scale in the target process library;

步骤403,如果存在,获取尺寸规模等于,或者大于并最接近所述存储器宏规模的组件类型作为初次切分组件类型;Step 403, if it exists, obtain a component type whose size is equal to, or larger than and closest to the macroscale of the memory, as the initial split component type;

步骤404,如果不存在,则获取目标工艺库中尺寸规模最大的组件类型作为初次切分组件类型;Step 404, if it does not exist, obtain the component type with the largest size in the target process library as the initial segmentation component type;

步骤405,根据所述初次切分组件类型切分所述存储器宏,构造存储器组件。Step 405, split the memory macro according to the type of the initial split component, and construct the memory component.

步骤140,将所述存储器组件按位扩展和地址扩展生成存储器组件扩展组;Step 140, expand the memory component by bit and address to generate a memory component expansion group;

具体的,在前述的端口组集合中,已经规定了地址深度和数据宽度,在确定了存储器组件后,需要根据地址深度和数据宽度进行地址扩展和位扩展,使存储器组件扩展组的地址深度和数据宽度与端口组集合构造的存储器宏相一致。Specifically, in the aforementioned port group set, the address depth and data width have been specified. After the memory component is determined, it is necessary to perform address expansion and bit expansion according to the address depth and data width, so that the address depth and data width of the memory component expansion group The data width corresponds to the memory macro constructed by the port group set.

例如,端口组集合的地址深度为2K,前步确定的存储器组件的地址深度为1K,数据宽度为18bit,则在地址深度上,需要将存储器组件进行扩展,扩展成两个,通过EN选通,当EN高有效时选通其中一个存储器组件进行存取,当EN低有效时选通另一个存储器组件进行存取。For example, if the address depth of the port group set is 2K, the address depth of the memory component determined in the previous step is 1K, and the data width is 18bit, then in terms of address depth, the memory component needs to be expanded to two, and gated by EN , one of the memory components is gated for access when EN is high, and the other memory component is gated for access when EN is low.

根据以上具体例子所述的方法,可以根据端口组集合的参数,对存储器组件进行扩展,构造成与端口组集合相对应的存储器组件扩展组。According to the methods described in the above specific examples, the memory components can be expanded according to the parameters of the port group set, and an extended set of memory components corresponding to the port group set can be constructed.

步骤150,根据所述存储器组件扩展组中包括的每一个存储器组件,再进行存储器组件类型的精确匹配;Step 150, according to each storage component included in the storage component expansion group, perform exact matching of the storage component type;

具体的,对于扩展组中包括的每一个存储器组件,可以再进行组件类型的精确匹配。具体如下述步骤:Specifically, for each storage component included in the extended group, exact matching of component types may be performed. The specific steps are as follows:

步骤501,计算利用所述初次切分组件类型构造存储器组件的第一造价;Step 501, calculating the first cost of constructing the memory component by using the component type of the primary division;

步骤502,获取目标工艺库中,小于所述初次切分组件类型的资源规模的其他组件类型;Step 502, obtaining other component types in the target process library that are smaller than the resource scale of the initial split component type;

步骤503,依次计算利用所述其他组件类型构造存储器组件的造价,其中最小的造价为第二造价;Step 503, sequentially calculating the manufacturing cost of constructing memory components using the other component types, wherein the smallest manufacturing cost is the second manufacturing cost;

上述步骤501可以在步骤502或503之后执行,也可以与步骤502或503并行执行。The above step 501 may be performed after step 502 or 503, or may be performed in parallel with step 502 or 503.

步骤504,判断所述第一造价是否高于第二造价;Step 504, judging whether the first cost is higher than the second cost;

步骤505,当第一造价高于第二造价时,将所述第二造价对应的组件类型作为构造存储器组件的最优组件类型;Step 505, when the first cost is higher than the second cost, use the component type corresponding to the second cost as the optimal component type for constructing the memory component;

步骤506,否则,将初次切分组件类型作为构造存储器组件的最优组件类型。Step 506, otherwise, take the initial split component type as the optimal component type for constructing the memory component.

所述最优组件类型也就是最终确定的存储器组件。The optimal component type is also the final determined memory component.

对于扩展组中包括的每一个存储器组件都确定其最优组件类型,从而得到扩展组中最终确定的每一个存储器组件。The optimal component type is determined for each storage component included in the expansion group, so as to obtain each storage component finally determined in the expansion group.

步骤160,根据所述存储器组件扩展组中精确匹配后的存储器组件的连接关系和所述功能参数,在器件工艺映射库进行映射,生成所述FPGA存储器。Step 160 , according to the connection relationship of the precisely matched memory components in the extended group of memory components and the functional parameters, perform mapping in a device process mapping library to generate the FPGA memory.

具体的,由存储器组件到存储器实体的映射,其连线可以遵循不同的配置关系规则进行。在根据存储器组件扩展组构造FPGA存储器时,在构造器中存储有不同的组件选择模式的信息,根据选择的不同模式,进行相应的连接关系配置。并根据功能参数,在器件工艺映射库进行映射,构造出所需的FPGA存储器。Specifically, for the mapping from memory components to memory entities, the connections may follow different configuration relationship rules. When the FPGA memory is constructed according to the extended group of memory components, information of different component selection modes is stored in the constructor, and the corresponding connection relationship configuration is performed according to the different modes selected. And according to the functional parameters, map in the device process mapping library to construct the required FPGA memory.

通过本发明实施例提供的方法,能够支持多规模、多读写模式和多端口的FPGA存储器的工艺映射。Through the method provided by the embodiment of the present invention, process mapping of FPGA memories with multiple scales, multiple read-write modes and multiple ports can be supported.

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。Professionals should further realize that the units and algorithm steps described in conjunction with the embodiments disclosed herein can be implemented by electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the relationship between hardware and software Interchangeability. In the above description, the composition and steps of each example have been generally described according to their functions. Whether these functions are executed by hardware or software depends on the specific application and design constraints of the technical solution. Skilled artisans may use different methods to implement the described functions for each specific application, but such implementation should not be regarded as exceeding the scope of the present invention.

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。The steps of the methods or algorithms described in connection with the embodiments disclosed herein may be implemented by hardware, software modules executed by a processor, or a combination of both. Software modules can be placed in random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, removable disk, CD-ROM, or any other Any other known storage medium.

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。The specific embodiments described above have further described the purpose, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above descriptions are only specific embodiments of the present invention and are not intended to limit the scope of the present invention. Protection scope, within the spirit and principles of the present invention, any modification, equivalent replacement, improvement, etc., shall be included in the protection scope of the present invention.

Claims (6)

1.一种现场可编程门阵列FPGA存储器的工艺映射方法,其特征在于,所述方法包括:1. a process mapping method of Field Programmable Gate Array FPGA memory, it is characterized in that, described method comprises: 根据存储器逻辑网表的原始信息进行分类封装,生成端口组集合;Classify and encapsulate according to the original information of the memory logic netlist to generate a port group set; 根据所述端口组集合包括的端口组的数量和端口组参数,构造存储器宏;Constructing a memory macro according to the number of port groups included in the port group set and port group parameters; 根据目标工艺库中的资源规模对所述存储器宏的数据空间和地址空间进行切分,得到存储器组件;所述存储器组件包括功能参数,所述功能参数具体为:构造所述存储器宏的端口组的端口组参数;Segment the data space and address space of the memory macro according to the resource scale in the target process library to obtain a memory component; the memory component includes functional parameters, and the functional parameters are specifically: constructing a port group of the memory macro The port group parameters; 将所述存储器组件按位扩展和地址扩展生成存储器组件扩展组;bit-extending and address-extending the memory components to generate a memory component expansion group; 根据所述存储器组件扩展组中包括的每一个存储器组件,再进行存储器组件类型的精确匹配;performing precise matching of memory component types according to each memory component included in the memory component expansion group; 根据所述精确匹配后的所述存储器组件的连接关系和所述功能参数,在器件工艺映射库进行映射,生成所述FPGA存储器。According to the precisely matched connection relationship of the memory components and the functional parameters, mapping is performed in a device process mapping library to generate the FPGA memory. 2.根据权利要求1所述的方法,其特征在于,所述根据所述端口组集合包括的端口组的数量和端口组参数,构造存储器宏包括:2. The method according to claim 1, wherein said constructing a memory macro comprises: 确定所述端口组的数量是否为1或2;determining whether the number of port groups is 1 or 2; 如果为1,根据所述端口组参数构造单端口存储器宏;If it is 1, construct a single-port memory macro according to the port group parameter; 如果为2,根据所述端口组参数构造全双端口存储器宏或者伪双端口存储器宏;其中,当两个所述端口组的端口组参数均为只读,或一个只读另一个读写时,构造全双端口存储器宏;当一个所述端口组的端口组参数为只写,另一个所述端口组的端口组参数为只读时,构造伪双端口存储器宏;If it is 2, construct a full dual-port memory macro or a pseudo-dual-port memory macro according to the port group parameters; wherein, when the port group parameters of the two port groups are read-only, or one is read-only and the other is read-write Constructing a full dual-port memory macro; when the port group parameter of one port group is write-only and the port group parameter of the other port group is read-only, construct a pseudo-dual-port memory macro; 如果所述端口组的数量为3或以上,则根据预设的双端口读写模式配对规则,对所述端口组集合中的端口组进行配对,并根据配对成功的端口组构造全双端口存储器宏或者伪双端口存储器宏,根据未配对成功的端口组构造单端口存储器宏。If the number of the port groups is 3 or more, pair the port groups in the port group set according to the preset dual-port read-write mode pairing rules, and construct a full dual-port memory according to the successfully paired port groups A macro or a pseudo-dual-port memory macro constructs a single-port memory macro based on an unpaired port group. 3.根据权利要求2所述的方法,其特征在于,所述根据预设的双端口读写模式配对规则,对所述端口组集合中的端口组进行配对具体为:3. The method according to claim 2, wherein the pairing of the port groups in the port group set according to the preset dual-port read-write mode pairing rules is specifically: 将所述端口组参数为只读的端口组依次与端口组参数为读写的端口组进行配对,直至所述端口组参数为读写的端口组全部被配对,或者所述端口组参数为只读的端口组全部被配对;Pairing the port groups whose port group parameters are read-only with the port group parameters whose port group parameters are read-write in turn, until all the port groups whose port group parameters are read-write are paired, or the port group parameters are only The read port groups are all paired; 当还存在未被配对的所述端口组参数为只读的端口组时,将未被配对的所述端口组参数为只读的端口组依次与端口组参数为只写的端口组进行配对,直至所述端口组参数为只写的端口组全部被配对,或者所述端口组参数为只读的端口组全部被配对;When there are still unpaired port groups whose parameters are read-only, pair the unpaired port groups whose parameters are read-only with the port groups whose parameters are write-only. until all port groups whose port group parameters are write-only are paired, or all port groups whose port group parameters are read-only are paired; 当还存在未被配对的所述端口组参数为只读的端口组时,将未被配对的所述端口组参数为只读的端口组进行两两配对。When there are still unpaired port groups whose parameters are read-only, pair the unpaired port groups whose parameters are read-only. 4.根据权利要求1所述的方法,其特征在于,所述根据目标工艺库中的资源规模对所述存储器宏的数据空间和地址空间进行切分,得到存储器组件具体为:4. The method according to claim 1, wherein the data space and address space of the memory macro are segmented according to the resource scale in the target process library, and the memory components obtained are specifically: 根据所述存储器宏的数据深度和地址宽度计算所述存储器宏规模;calculating the size of the memory macro according to the data depth and address width of the memory macro; 在目标工艺库中,获取大于等于所述存储器宏规模的资源规模组件,并将其中最接近所述存储器宏规模的资源规模组件类型作为初次切分组件类型;In the target process library, obtain resource-scale components greater than or equal to the macro-scale of the memory, and use the resource-scale component type closest to the macro-scale of the memory as the initial split component type; 根据所述初次切分组件类型切分所述存储器宏,构造存储器组件。Divide the memory macro according to the type of the initial division component to construct a memory component. 5.根据权利要求4所述的方法,其特征在于,当所述目标工艺库中,全部资源规模均小于所述存储器宏规模时,所述方法还包括:5. The method according to claim 4, wherein, when all resource scales in the target process library are smaller than the macro scale of the memory, the method further comprises: 获取目标工艺库中资源规模最大的组件类型作为初次切分组件类型。Obtain the component type with the largest resource scale in the target process library as the initial split component type. 6.根据权利要求4或5所述的方法,其特征在于,所述精确匹配包括:6. The method according to claim 4 or 5, wherein the exact matching comprises: 计算利用所述初次切分组件类型构造所述存储器组件的第一造价;calculating a first cost for constructing the memory component by using the primary slicing component type; 获取目标工艺库中,小于所述初次切分组件类型的资源规模的其他组件类型;Obtaining other component types in the target process library that are smaller than the resource scale of the initial segmentation component type; 依次计算利用其他组件类型构造所述存储器组件的造价,其中最小的造价为第二造价;Calculate the cost of constructing the memory component by using other component types in turn, wherein the smallest cost is the second cost; 当所述第二造价小于第一造价时,将所述第二造价对应的组件类型作为构造所述存储器组件的最优组件类型;When the second cost is less than the first cost, the component type corresponding to the second cost is used as the optimal component type for constructing the memory component; 否则,将所述初次切分组件类型作为构造所述存储器组件的最优组件类型。Otherwise, the initial split component type is used as the optimal component type for constructing the memory component.
CN201410490278.1A 2014-09-23 2014-09-23 A kind of process mapping method of FPGA memories Active CN105426314B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410490278.1A CN105426314B (en) 2014-09-23 2014-09-23 A kind of process mapping method of FPGA memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410490278.1A CN105426314B (en) 2014-09-23 2014-09-23 A kind of process mapping method of FPGA memories

Publications (2)

Publication Number Publication Date
CN105426314A CN105426314A (en) 2016-03-23
CN105426314B true CN105426314B (en) 2018-09-11

Family

ID=55504532

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410490278.1A Active CN105426314B (en) 2014-09-23 2014-09-23 A kind of process mapping method of FPGA memories

Country Status (1)

Country Link
CN (1) CN105426314B (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407535A (en) * 2016-09-06 2017-02-15 北京深维科技有限公司 Field-programmable gate array chip-based process mapping method
CN106383938B (en) * 2016-09-07 2020-01-10 京微齐力(北京)科技有限公司 FPGA memory inference method and device
CN106383936B (en) * 2016-09-07 2020-01-31 京微齐力(北京)科技有限公司 FPGA memory splitting method
CN110851345B (en) * 2019-09-23 2023-04-14 上海辛格林纳新时达电机有限公司 Calling method and calling device of system parameters
CN112948324A (en) * 2021-04-16 2021-06-11 山东高云半导体科技有限公司 Memory mapping processing method and device and FPGA chip
CN115758965A (en) * 2022-11-21 2023-03-07 深圳国微晶锐技术有限公司 Method and system for mapping memory model to FPGA on-chip memory
CN119005116B (en) * 2024-07-15 2025-06-10 深圳奥维领芯科技有限公司 Chip design method and system, and computer program product

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003209558A (en) * 2002-01-10 2003-07-25 Toyo Commun Equip Co Ltd Node device
CN101246511A (en) * 2008-02-28 2008-08-20 复旦大学 Fast Logic Block Mapping Method for Programmable Logic Devices
CN101286181A (en) * 2008-05-30 2008-10-15 山东大学 Field Programmable Gate Array Programmable System on Chip Based on DW8051 Core

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003209558A (en) * 2002-01-10 2003-07-25 Toyo Commun Equip Co Ltd Node device
CN101246511A (en) * 2008-02-28 2008-08-20 复旦大学 Fast Logic Block Mapping Method for Programmable Logic Devices
CN101286181A (en) * 2008-05-30 2008-10-15 山东大学 Field Programmable Gate Array Programmable System on Chip Based on DW8051 Core

Also Published As

Publication number Publication date
CN105426314A (en) 2016-03-23

Similar Documents

Publication Publication Date Title
CN105426314B (en) A kind of process mapping method of FPGA memories
TWI486810B (en) Counter operation in a state machine lattice
US9590635B1 (en) Partial reconfiguration of programmable devices
US20160320451A1 (en) Simulation verification method for fpga function modules and system thereof
CN114546890A (en) System-level space read-write verification method, system, storage medium and equipment
TW201331856A (en) Methods and systems for detection in a state machine
US9471736B2 (en) Computing system automatically generating a transactor
CN108120917B (en) Test clock circuit determination method and device
CN103337258B (en) A kind of method for testing memory covering Static and dynamic fault
CN104598352B (en) Rapid reliability evaluation method for SRAM (Static Random Access Memory) type FPGA (Field Programmable Gate Array)
CN106383938B (en) FPGA memory inference method and device
TWI537980B (en) Apparatuses and methods for writing masked data to a buffer
CN109408873B (en) Multi-dimensional array signal control method and device and computer readable storage medium
CN114692227A (en) A large-scale chip netlist-level hardware Trojan detection method
US20140278329A1 (en) Modeling Content-Addressable Memory For Emulation
CN105260545B (en) A kind of verification method of programmable circuit system
CN106649899A (en) Local memory layout method
JP6461831B2 (en) Memory inspection device
CN104021250B (en) Process Mapping Method of FPGA ROM Storage Data
JP7665671B2 (en) Automatic configuration of pipeline modules in electronic equipment systems - Patents.com
US10007489B1 (en) Automated method identifying physical memories within a core or macro integrated circuit design
US8819612B1 (en) Analyzing timing requirements of a hierarchical integrated circuit design
CN115618774A (en) Mapping method, device and electronic device
CN115169270B (en) Memory conversion method, system, equipment and storage medium
CN113420518A (en) Method and system for transistor level circuit simulation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20241209

Address after: 601, Floor 6, Building 5, Yard 8, Kegu 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing, 100176 (Yizhuang Cluster, High-end Industrial Zone, Beijing Pilot Free Trade Zone)

Patentee after: Jingwei Qili (Beijing) Technology Co.,Ltd.

Country or region after: China

Address before: 100083 20 / F, block B, Tiangong building, 30 Xueyuan Road, Haidian District, Beijing

Patentee before: CAPITAL MICROELECTRONICS Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right