一种fpga存储器的工艺映射方法

文档序号:9667265阅读:494来源:国知局
一种fpga存储器的工艺映射方法
【技术领域】
[0001] 本发明涉及微电子领域中的集成电路设计技术领域,特别是现场可编程逻辑门阵 列(FieldProgrammableGateArray,FPGA)存储器的工艺映射方法。
【背景技术】
[0002]FPGA是一种具有丰富硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器 件。这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。
[0003] 存储器是FPGA的基本单元,工艺映射(TechnologyMapping)是FPGA涉及流程中, 连接前端逻辑综合和后端布局布线的重要桥梁。在这一阶段,与工艺无关的电路网表在一 定的硬件约束条件下,映射到工艺库的相关结构,工艺映射方法直接影响到FPGA的性能。

【发明内容】

[0004] 本发明提供了一种FPGA存储器的工艺映射方法,能够实现一种支持多规模、多读 写模式和多端口的FPGA存储器的工艺映射。
[0005] 本发明实施例提供了一种FPGA存储器的工艺映射方法,包括:
[0006] 根据存储器逻辑网表的原始信息进行分类封装,生成端口组集合;
[0007] 根据所述端口组集合包括的端口组的数量和端口组参数,构造存储器宏;
[0008] 根据目标工艺库中的资源规模对所述存储器宏的数据空间和地址空间进行切分, 得到存储器组件;所述存储器组件包括功能参数,所述功能参数具体为:构造所述存储器 宏的端口组的端口组参数;
[0009] 将所述存储器组件按位扩展和地址扩展生成存储器组件扩展组;
[0010] 根据所述存储器组件扩展组中包括的每一个存储器组件,再进行存储器组件类型 的精确匹配;
[0011] 根据所述精确匹配后的所述存储器组件的连接关系和所述功能参数,在器件工艺 映射库进行映射,生成所述FPGA存储器。
[0012] 优选的,所述根据所述端口组集合包括的端口组的数量和端口组参数,构造存储 器宏包括:
[0013] 确定所述端口组的数量是否为1或2;
[0014] 如果为1,根据所述端口组参数构造单端口存储器宏;
[0015] 如果为2,根据所述端口组参数构造全双端口存储器宏或者伪双端口存储器宏; 其中,当两个所述端口组的端口组参数均为只读,或一个只读另一个读写时,构造全双端口 存储器宏;当一个所述端口组的端口组参数为只写,另一个所述端口组的端口组参数为只 读时,构造伪双端口存储器宏;
[0016] 如果所述端口组的数量为3或以上,则根据预设的双端口读写模式配对规则,对 所述端口组集合中的端口组进行配对,并根据配对成功的端口组构造全双端口存储器宏或 者伪双端口存储器宏,根据未配对成功的端口组构造单端口存储器宏。
[0017] 进一步优选的,所述根据预设的双端口读写模式配对规则,对所述端口组集合中 的端口组进行配对具体为:
[0018] 将所述端口组参数为只读的端口组依次与端口组参数为读写的端口组进行配对, 直至所述端口组参数为读写的端口组全部被配对,或者所述端口组参数为只读的端口组全 部被配对;
[0019] 当还存未被配对的所述端口组参数为只读的端口组时,将未被配对的所述端口组 参数为只读的端口组依次与端口组参数为只写的端口组进行配对,直至所述端口组参数为 只写的端口组全部被配对,或者所述端口组参数为只读的端口组全部被配对;
[0020] 当还存在未被配对的所述端口组参数为只读的端口组时,将未被配对的所述端口 组参数为只读的端口组进行两两配对。
[0021] 优选的,所述根据目标工艺库中的资源规模对所述存储器宏的数据空间和地址空 间进行切分,得到存储器组件具体为:
[0022] 根据所述存储器宏的数据深度和地址宽度计算所述存储器宏规模;
[0023] 在目标工艺库中,获取大于并最接近所述存储器宏规模的资源规模的组件类型作 为初次切分组件类型,或者获取与所述存储器宏规模相等的资源规模的组件类型作为初次 切分组件类型;
[0024] 根据所述初次切分组件类型切分所述存储器宏,构造存储器组件。
[0025] 进一步优选的,当所述目标工艺库中,全部资源规模均小于所述存储器宏规模时, 所述方法还包括:
[0026] 获取目标工艺库中资源规模最大的组件类型作为初次切分组件类型。
[0027] 进一步优选的,所述精确匹配包括:
[0028] 计算利用所述初次切分组件类型构造所述存储器组件的第一造价;
[0029] 获取目标工艺库中,小于所述初次切分组件类型的资源规模的其他组件类型;
[0030] 依次计算利用其他组件类型构造所述存储器组件的造价,其中最小的造价为第二 造价;
[0031] 当所述第二造价小于第一造价时,将所述第二造价对应的组件类型作为构造所述 存储器组件的最优组件类型;
[0032] 否则,将所述初次切分组件类型作为构造所述存储器组件的最优组件类型。
[0033] 本发明实施例提供的FPGA存储器的工艺映射方法,通过对存储器逻辑网表的原 始信息进行分类封装,生成端口组集合;根据所述端口组集合包括的端口组的数量和端口 组参数,构造存储器宏;根据目标工艺库中的资源规模对所述存储器宏的数据空间和地址 空间进行切分,得到存储器组件;对存储器组件类型进行精确匹配后,再根据精确匹配后的 所述存储器组件的连接关系和所述功能参数,在器件工艺映射库进行映射,生成所述FPGA 存储器,从而实现了一种支持多规模、多读写模式和多端口的FPGA存储器的工艺映射方 法。
【附图说明】
[0034] 图1为本发明实施例提供的FPGA存储器的工艺映射方法的流程图;
[0035] 图2为本发明实施例提供的端口组集合管脚的示意图;
[0036] 图3为本发明实施例提供的构造存储器宏的方法流程图;
[0037] 图4为本发明实施例提供的存储器组件的切分方法流程图;
[0038] 图5为本发明实施例提供的存储器组件的精确匹配的方法流程图。
【具体实施方式】
[0039] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0040] 图1为本发明实施例提供的FPGA存储器的工艺映射方法的流程图。如图1所示, 所述方法包括如下步骤:
[0041] 步骤110,根据存储器逻辑网表的原始信息进行分类封装,生成端口组集合;
[0042] 具体的,在进行FPGA工艺映射时,首先需要有逻辑网表的原始信息输入。对于输 入的逻辑网表的原始信息,进行分类封装,生成以地址管脚为主键的一组相关管脚及参数 设置集合,即端口组的形式。所述端口组集合是指存取同一块存储器的多个端口组的集合。 端口组集合可以如图2所示,图中PORTGROUP0为端口组集合中的第一个端口组,PORT GROUPi为端口组集合中的第i+1个端口组。
[0043] 端口组集合中的端口组具有相同的模板类,它们具有相同的管脚架构。
[0044] 每个端口组都具有一些端口组参数,在一个例子中可以具体如下表1所示。
[0045]
[0046] 表 1
[0047] 以图2所示端口组集合为例,每个端口组都包括时钟信号管脚CLK、片选信号管脚 EN、写使能信号管脚WE、复位信号管脚RST、数据输入信号管脚DIN(数据宽度)、地址信号管 脚ADDR(地址深度)以及数据输出信号管脚D0UT。
[0048] 需要说明的是,端口组集合中各个端口组的参数特征值可以是不同的。
[0049] 步骤120,根据所述端口组集合包括的端口组的数量和端口组参数,构造存储器 宏;
[0050] 具体的,存储器宏是以端口模式为特征,根据读写使能及地址管脚的不同,将端口 组集合中的所有端口组进行划分,配对得到的逻辑层封装。端口模式可以具体分类为:单 端口、伪双端口、全双端口和多端口几种类别。
[0051] 构造存储器宏的具体方法可以如图3所示,包括如下步骤:
[0052] 步骤301,确定所述端口组的数量是否为1 ;
[0053]如果为1,执行步骤302;否则执行步骤303;
[0054] 步骤302,当端口组数量为1时,根据所述端口组参数构造单端口存储器宏。
[0055] 步骤303,确定所述端口组的数量是否为2 ;
[0056] 如果为2,执行步骤304;否则执行步骤307 ;
[0057] 步骤304,当端口组数量为2时,确定两个所述端口组的端口组参数是否为均为只 读或一个只读一个读写;
[0058] 步骤305,如果两个所述端口组的端口组参数均为只读或一个只读一个读写,根据 所述端口组参数构造全双端口存储器宏;
[0059] 步骤306,如果一个所述端口组的端口组参数为只写,另一个所述端口组的端口组 参数为只读,根据所述端口组参数构造伪双端口存储器宏;
[0060] 步骤307,当端口组数量为3或以上时,根据预设的双端口读写模式配对规则,对 所述端口组集合中的端口组进行配对,并根据配对成功的端口组构造全双端口存储器宏或 者伪双端口存储器宏,根据未配对成功的端口组构造单端口存储器宏。
[0061] 具体的,如果端口组集合中至少有3个端口组时,需要首先对端口组进行分类,遍 历端口组集合中的全部端口组,根据各个端口组的端口组参数,将全部端口组按照可读写、 只读、只写的参数属性进行划分,分类为可读写端口组子集合、只读端口组子集合和只写端 口组子集合。然后,对所有子集合中的端口组进行配对。
[0062] 配对遵循一定的匹配规则,如下表2所示。
[0063]
[0064]表 2
[0065] 并且,匹配的两个端口组需要是存取同一块存储器的两个端口组。
[0066] 在一个具体的例子中,匹配过程可以具体为:
[0067] 依次选取只读端口组子集合中的一个端口组,首先将只读端口组子集合中的一个 端口组与可读写端口组子集合中的端口组进行配对,如果配对成功,将配对成功的两个端 口组分别从只读端口组子集合和可读写端口组子集合中移除,并且,根据配对的两个端口 组构造全双端口存储器宏,直至所述可读写端口组子集合中的端口组全部被配对,或者所 述只读端口组子集合中的端口组全部被配对。
[0068] 在上述配对过程完成后,如果只读端口组子集合中还存未被配对的端口组,将只 读端口组子集合中未被配对的端口组依次与只写端口组子集合的端口组进行配对,如果配 对成功,将配对成功的两个端口组分别从只读端口组子集合和只写端口组子集合中移除, 并且,根据配对的两个端口组构造伪双端口存储器宏。直至所述只写端口组子集合中的端 口组全部被配
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1