本发明涉及微电子领域中的集成电路设计技术领域,特别是一种fpga芯片基本单元的设计方法。
背景技术:
现场可编程逻辑门阵列(fieldprogrammablegatearray,fpga)是一种具有丰富硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器件。这些特征使得fpga在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。
fpga的设计流程就是利用eda开发软件和编程工具对fpga芯片进行开发的过程。典型fpga的开发流程一般包括功能定义/器件选型、设计输入、功能仿真、综合优化、综合后仿真、实现、布线后仿真、板级仿真以及芯片编程与调试等主要步骤。
目前fpga芯片的生产流程为,先做电路设计,将嵌入式存储模块emb(embeddedstorage)、数字声音处理器模块dsp(digitalsoundfieldprocessor)、可编程逻辑模块plb(programmablelogicblock)、带本地存储器的可编程逻辑模块plbr(programmablelogicblocklocalmemorylram)以及输入输出模块i/o(inputoutput)做成一个完整的电路;然后人工按照层次化的要求,将每一层的版图画好,再去生产。这样的生产流程,一个中等规模的芯片,需要五个人用三个月的时间去完成。对于大型的fpga芯片,根本无从下手。
目前工业界还没有找到能够将各个基本模块进行自由组合,组合成满足不同的需求、尺寸以及适合各种工艺的fpga芯片的方法。
技术实现要素:
本发明的目的是针对现有技术的缺陷,提供了一种fpga芯片基本单元的设计方法,该方法能够将fpga芯片中的基本单元设计成在物理上绝对独立的单元,使得各个独立的基本单元能够自由组合出满足不同的需求、尺寸以及适合各种工艺的芯片。
本发明提供一种fpga芯片基本单元的设计方法,该方法包括:获取fpga芯片的基本单元;获取所述基本单元输入输出端口的时序约束信息,并根据所述时序约束信息完成所述基本单元的内部物理设计;获取所述基本单元中要穿过的金属线的时序约束信息,根据所述金属线的时序约束完成所述金属线布线;对所述金属线的布线结果进行仿真;确定所述基本单元为物理上完全独立的单元后,并以此产生fpga芯片的网表;根据所述网表生产流片。
在上述方法中,基本单元包括嵌入式存储器单元、数字声音处理器单元、输入输出单元、可编程逻辑块单元以及带本地存储器的可编程逻辑块单元;沿水平方向放置的辅助单元以及沿垂直方向放置的辅助单元。
在上述方法中,沿水平方向的辅助单元包括嵌入式存储器辅助单元、数字声音处理器辅助单元、输入输出辅助单元、可编程逻辑块辅助单元以及带本地存储器的可编程逻辑块辅助单元;且沿水平方向的辅助单元在水平方向上的物理尺寸与被辅助的基本单元的尺寸吻合。
在上述方法中,沿垂直方向放置的辅助单元包括第一辅助单元、第二辅助单元以及第三辅助单元;其中,所述第一辅助单元包括嵌入式存储器辅助单元、数字声音处理器辅助单元、输入输出辅助单元、可编程逻辑块辅助单元以及带本地存储器的可编程逻辑块辅助单元;所述第二辅助单元包括一个或多个锁相环辅助单元;所述第三辅助单元,用于核心上电初始化。
在上述方法中,物理上完全独立的单元是指基本单元的四周分布着输入输出端口,并且所述基本单元的连线分布在所述基本单元的内部。
本发明通过各个在物理上独立的基本单元,自由组合出满足不同的需求、尺寸以及适合各种工艺的芯片;进而缩短芯片的生产时间,减少工作量,加快芯片产品上市时间,进而降低成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种fpga芯片基本单元的设计方法流程示意图;
图2为本发明实施例提供的fpga芯片中plb以及plbr基本单元的示意图;
图3为本发明实施例提供的fpga芯片中emb或dsp基本单元的示意图;
图4为本发明实施例提供的fpga芯片中i/o基本单元示意图;
图5为本发明实施例提供的fpga芯片中沿垂直方向放置的辅助单元示意图;
图6为本发明实施例提供的fpga芯片中沿水平方向放置的辅助单元示意图;
图7为本发明实施例提供的一种基本单元自由组合的芯片示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
本发明提供了一种fpga芯片基本单元的设计方法,该方法能够将fpga芯片中的基本单元设计成在物理上绝对独立的单元,使得各个独立的基本单元能够自由组合出满足不同的需求、尺寸以及适合各种工艺的芯片。也就是说,用本发明所提供的方法生产芯片,一个人能够在一天的时间内做几个芯片,更适合于大型芯片的批量生产。
下面以图1为例,对本发明实施例进行说明。图1为本发明实施例提供的一种fpga芯片基本单元的设计方法流程示意图。如图所示,该方法包括步骤s101-s106:
步骤s101:获取fpga芯片的基本单元;
在上述方法中,基本单元包括嵌入式存储器单元emb(embeddedstorage)、数字声音处理器单元dsp(digitalsoundfieldprocessor)、输入输出单元i/o(inputoutput)、可编程逻辑块单元plb(programmablelogicblock)以及带本地存储器的可编程逻辑块单元plbr(programmablelogicblocklocalmemorylram);沿水平方向放置的辅助单元seam_unit以及沿垂直方向放置的辅助单元spine_unit。
需要说明的是,在这里是根据在芯片中物理位置、物理形状将fpga芯片切分成多个基本单元;不同数量的基本单元组合在一起构成fpga芯片。
在上述方法中,沿水平方向的辅助单元包括嵌入式存储器辅助单元、数字声音处理器辅助单元、输入输出辅助单元、可编程逻辑块辅助单元以及带本地存储器的可编程逻辑块辅助单元;且沿水平方向的辅助单元在水平方向上的物理尺寸与被辅助的基本单元的尺寸吻合。
在上述方法中,沿垂直方向放置的辅助单元包括第一辅助单元、第二辅助单元以及第三辅助单元;其中,所述第一辅助单元包括嵌入式存储器辅助单元、数字声音处理器辅助单元、输入输出辅助单元、可编程逻辑块辅助单元以及带本地存储器的可编程逻辑块辅助单元;所述第二辅助单元包括一个或多个锁相环辅助单元;所述第三辅助单元,用于核心上电初始化。
需要说明的是,辅助单元也是管理单元,对被辅助的基本单元进行配置以及时钟复位,例如:第二辅助单元是在芯片中需要有一个或多个锁相环的情况下,对锁相环进行辅助。
步骤s102:获取所述基本单元输入输出端口的时序约束信息,并根据所述时序约束信息完成所述基本单元的内部物理设计;
需要说明的是,上述的每一个基本单元的输入输出端口都有各自的时序信息以及约束要求。例如:每个基本单元的输入接口,有数据达到时间、数据延时以及数据上升、下降时间等信息,以及相关的约束要求;每个输出接口,也有输出驱动能力、输出延时以及数据上升、下降时间等信息,以及相关的约束要求。
在本步骤中,根据每一个基本单元输入输出端口的时序约束信息,完成基本单元的内部物理设计,此时要注意金属线层次不能超过当前层的金属层数的约束。
步骤s103:获取所述基本单元中要穿过的金属线的时序约束信息,根据所述金属线的时序约束完成所述金属线布线;
需要说明的是,上述每一个基本单元,都是处于芯片的上下、左右以及斜穿线的互连之中,这些金属线也具有自己的时序要求,也有自己的时序约束。
在本步骤中,需要确定每一个基本单元中要穿过的金属线的条数、层数、时序信息以及约束要求;金属线按照金属线的时序约束信息进行布线。
步骤s104:对所述金属线的布线结果进行仿真;
需要说明的是,这里是对金属线的布线结果进行时序仿真;这里是对每一个基本单元的布线结果进行时序仿真。
时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。由于不同芯片的内部延时不一样,不同的布线方案也给延时带来不同的影响。因此在布线后,通过对每个基本单元进行时序仿真,分析其时序关系,估计系统性能,以及检查和消除竞争冒险是非常有必要的。
步骤s105:确定所述基本单元为物理上完全独立的单元后,并以此产生fpga芯片的网表;
在上述方法中,物理上完全独立的单元是指基本单元的四周分布着输入输出端口,并且所述基本单元的连线分布在所述基本单元的内部。
需要说明的是,每一个在物理上完全独立的基本单元能够实现每一个基本单元的功能,例如:emb能够实现单、双端口信息存储,dsp进行加减乘除运算,i/o完成不同条件下芯片与外界电路对输入/输出信号的驱动与匹配要求,plb能够有8个查找表lut的功能,plbr既有plb的功能还有256bit存储器和16×16×1的移位寄存器的功能;并且,穿过本基本单元的线包括和本基本单元有关联的线,也包括与本基本单元无关联的线。
在本步骤中,产生的是单一层次的芯片网表,芯片网表包括上述在物理上独立的各个基本单元、各个基本单元的所有输入输出端口以及各个基本单元输入输出端口上的连线信息。这里的单一层次是指不需要人工再去按照层次化的标准,将每一层的版图画好后再去生产;而是在物理上独立的各个基本单元,可以直接根据需要自由组合。
步骤s106:根据所述网表生产流片。
需要说明的是,流片是指像流水线一样通过一系列工艺步骤制造芯片。
下面以图7为例,对芯片的组合进行说明,图7为本发明实施例提供的一种基本单元自由组合的芯片示意图。
图7是由plb、plbr,如图2所示,图2为本发明实施例提供的fpga芯片中plb以及plbr基本单元的示意图;由emb或dsp,如图3所示,图3为本发明实施例提供的fpga芯片中emb或dsp基本单元的示意图;由i/o,如图4所示,图4为本发明实施例提供的fpga芯片中i/o基本单元示意图;由沿垂直方向放置的辅助单元spine_unit,如图5所示,图5为本发明实施例提供的fpga芯片中沿垂直方向放置的辅助单元示意图;由沿水平方向放置的辅助单元seam_unit组合而成,如图6所示,图6为本发明实施例提供的fpga芯片中沿水平方向放置的辅助单元示意图。
需要说明的是,如图7所示,沿水平方向放置的辅助单元的尺寸与被辅助的基本单元的在沿水平方向的尺寸吻合;沿垂直方向放置的辅助单元适合所有被辅助的基本单元通用;emb或dsp的垂直方向的物理长度为i/o或plb或plbr在垂直方向的物理长度的4倍。
这里还需要说明的是,图2为本发明实施例提供的fpga芯片中plb以及plbr基本单元的示意图,plb包括逻辑单元le(logicelement)以及绕线资源,绕线资源又分为plb内部的绕线资源xbar以及通往plb外部的绕线资源oxbar;且plb与plbr的绕线资源相同,故在图中没有单独表示。其余的基本单元与plb类似,这里不再赘述。
本发明通过各个在物理上独立的基本单元,自由组合出满足不同的需求、尺寸以及适合各种工艺的芯片;进而缩短芯片的生产时间,减少工作量,加快芯片产品上市时间,进而降低成本。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。