一种fpga的资源布局方法及装置的制造方法

文档序号:9929686阅读:400来源:国知局
一种fpga的资源布局方法及装置的制造方法
【技术领域】
[0001] 本发明设及现场可编程口阵列(FPGA)技术领域,尤其设及一种FPGA的资源布局方 法及装置。
【背景技术】
[0002] 在现代数字电路设计中,电路设计过程越来越复杂。由于FPGA忍片具有可编程的 功能,简化了数字电路设计的过程。但随着数字电路的设计规模越来越大,各种资源也越来 越多,对FPGA软件布局的性能要求也越来越高。
[0003] FPGA资源一般分为S种:可配置逻辑单元块(CLB)、输入/输出单元(IO)和可编程 布线资源。其中,CLB根据功能又可W分为多个不同单元,如LUT(查找表)、FF(触发器)、RAM (随机存取存储器)、DSP(数字信号处理模块,如乘法器单元)、化L(锁相回路或锁相环)、化L (延迟锁相环)、PWU(上电模块)等等。通常情况下,根据FPGA忍片不同资源需求,上述资源并 非均匀分部在FPGA忍片上。如果布局算法设计不合理,就会导致本来应该放置在一起的资 源,却被放置的很远。从而使得布线难度增加,时序延时过长,满足不了用户设计需求。当 前,布局算法主要面临着两大问题:大规模的设计尺寸(上百万单元)和复杂的设计约束(布 局后实际的面积、时延、功耗、拥塞度等等)。
[0004] 现今,FPGA实现电路功能是需要对成千上万甚至更多可编程开关进行编程,即确 定其状态为导通还是断开,显然一一确定每个开关的状态是不现实的。实际设计中用户通 常使用硬件描述语言如Verilog、VHDL,或者原理图作为输入,该过程是FPGA设计的第一步: 设计输入;第二步,功能仿真,检查电路是否符合原始设计功能和时序;第=步,逻辑综合与 优化,将电路功能完全用基本逻辑口实现,该过程包含逻辑优化过程;第四步,工艺映射与 装箱,把生成的基本口电路映射到FPGA上,即使用FPGA上的基本单元化B和IO实现基本口电 路功能,具体的,目前的技术方案是,将基本口电路(类似于本发明中的工艺算子Tech Operator)进行一定的处理后直接映射到FPGA基本单元(类似于本发明中的格点电路单元 Grid Device)上,即将所有的TOP合理地放置在Grid Device上;第五步,布局布线,布局确 定化B和IO的位置,布线过程是使用合适的布线资源将化B和IO连接起来;第六步,时序仿 真,用于检验时序是否满足设定的时序约束条件或器件固有的时序规则,如建立时间、保持 时间,进行时序仿真对于分析时序关系,估计系统性能,W及检查和消除竞争是非常必要 的;第屯步,生成位流文件下载到FPGA中去。
[0005] 目前的FPGA设计流程布局会存在W下缺陷:可布局资源不能充分利用,布局的灵 活性不强。

【发明内容】

[0006] 本发明提供一种FPGA的资源布局方法及装置,解决现有FPGA的资源布局方案不够 完善的问题。
[0007] 为解决上述技术问题,本发明采用W下技术方案:
[000引一种FPGA的资源布局方法,包括:
[0009] 将FPGA中的一个或多个工艺算子映射到口级算子,所述工艺算子包括一个或多个 基本口电路;
[0010] 将一个或多个n级算子定义为n级算子组;
[ocm]将各个n级算子组映射到格点电路单元。
[0012] 在一些实施例中,将FPGA中的一个或多个工艺算子映射到口级算子包括:将FPGA 中的一个或多个工艺算子的参数和端口映射到口级算子。
[0013] 在一些实施例中,将一个或多个口级算子定义为口级算子组包括:将满足预设条 件的多个相同的口级算子定义为口级算子组;或者将满足预设条件的多个不同的口级算子 定义为口级算子组且所述口级算子组为一个新的口级算子。
[0014] 在一些实施例中,将各个口级算子组映射到格点电路单元包括:
[0015] 从格点电路单元中提取至少一个口级电路单元,所述口级电路单元包括一个或多 个电路模块;
[0016] 将各个口级算子组映射到一个或多个口级电路单元。
[0017] -种FPGA的资源布局装置,包括:
[0018] 第一映射模块,用于将FPGA中的一个或多个工艺算子映射到口级算子,所述工艺 算子包括一个或多个基本口电路;
[0019] 定义模块,用于将一个或多个口级算子定义为口级算子组;
[0020] 第二映射模块,用于将各个口级算子组映射到格点电路单元。
[0021] 在一些实施例中,第一映射模块具体用于将FPGA中的一个或多个工艺算子的参数 和端口映射到口级算子。
[0022] 在一些实施例中,定义模块具体用于将满足预设条件的多个相同的口级算子定义 为口级算子组;或者将满足预设条件的多个不同的口级算子定义为口级算子组且所述口级 算子组为一个新的口级算子。
[0023] 在一些实施例中,第二映射模块包括:
[0024] 提取子模块,用于从格点电路单元中提取至少一个口级电路单元,所述口级电路 单元包括一个或多个电路模块;
[0025] 映射子模块,用于将各个口级算子组映射到一个或多个口级电路单元。
[0026] 在一些实施例中,所述格点电路单元包括:可配置逻辑模块CLM。
[0027] 本发明针对现有技术的不足,在工艺映射与装箱过程中增加一个映射建模的过 程,将工艺算子(Tech Operator,简称TOP),即综合后的库单元,一个或多个基本口电路,抽 象映射到具体的可编程逻辑模块中去。具体的,将TOP映射到口级算子(Gate Operator,简 称GOP),有时候,多个TOP能映射同一个G0P,需要设定各种打包组合(packing)规则,运些规 则模型可W通过一种自定义的编程语言进行描述,将满足一定连接关系的相同或不同的 GOP打包一起,组成一个Group,接下来,将GOP组作为基本的单元进行布局处理,即将所有的 GOP组合理地放置在格点电路单元(Grid Device)上,相比现有技术方案中直接将TOP合理 地放置在格点电路单元上而言,本发明至少具有W下的有益效果:1、增加布局的灵活性,例 如,某个基本口电路在FPGA基本单元可W有多个位置可W放置,在映射建模过程中存在多 种的对应关系。2、尽可能有效地利用可布局的资源,例如,某几个基本口电路相互连接并且 映射到相同的基本单元,可W将TOP映射到某个GOP,通过打包后将多个GOP映射到相同的 Gate Device,布局时放置在相同的Grid Device中。
[002引进一步地,将所有的GOP组合理地放置在格点电路单元(Grid Device)上的方式具 体可W是,从格点电路单元中根据实际各个电路模块所实现的功能提取至少一个口级电路 单元(Gate Device),将各个GOP组映射到一个或多个Gate Device。运样便通过增加两个模 型GOP和Gate DeviceW及对应的映射流程,实现了布局的灵活性和尽可能有效地利用可布 局的资源。
【附图说明】
[0029] 图1为本发明一实施例提供的FPGA的资源布局方法的流程图;
[0030] 图2为本发明一实施例提供的多个相同GOP的连接示意图;
[0031 ]图3为本发明一实施例提供的多个不同GOP的连接示意图;
[0032] 图4为本发明一实施例提供的CLM电路结构示意图;
[0033] 图5为图4所示CLM电路结构的简化示意图;
[0034] 图6为本发明一实施例提供的FPGA的资源布局装置的示意图。
【具体实施方式】
[0035] 下面通过具体实施例对本发明的构思进一步详细说明。
[0036] 如图1所示,为本发明一实施例提供的FPGA的资源布局方法的流程图,主要包括W 下步骤:
[0037] S101、将FPGA中的一个或多个TOP映射到GOP ,TOP包括一个或多个基本口电路。
[0038] 具体的,将FPGA中的一个或多个TOP的参数和端口映射到G0P。也就是分成两个部 分来映射,分别为参数映射和端口映射,分别将一个或多个TOP上的参数和端口映射到GOP 上。
[0039] 下面W通过代码来实现TOP topLUT4到GOP gopLUT4的映射为例,其中parameter map表示参数映射,IN口为GOP gopLUT4的参数,1化1'_8为1'0?1〇9〇714的参数;port map表示 端口映射,L0,Ll,L2,L3,Z为G0PgopLUT4的端口,I0,Il,I2,I3,0为T0PtopLUT4的端口,代 码实现过程:
[0040]
[0041]
[0042] 本步骤可W将一个或多个TOP通过一次映射到GOP。
[0043] S102、将一个或多个GOP定义为GOP组;
[0044] TOP映射到GOP后,根据我们的打包规则,可W将满足预设条件的多个不同的或相 同的GOP打包在一起,组成一个Group,即GOP组。其中预设条件可W根据实际的电路连接关 系制定的,将满足一定连接关系的多个相同的GOP定义为一个GOP组,或者将满足一定连接 关系的多个不同的GOP定义为一个GOP组。
[0045] 多个相同的GOP打包在一起,打包后布局时还是考虑原来的GOP,只是将打包在一 起的GOP的连接关系绑定在一起。多个不同的GOP打包在一起生成一个新的G0P,布局时只用 放置打包后的运个新的G0P。
[0046] W4个相同的GOP打包在一起为例,如图2所示,假设有4个GOP gopA的CIN和COUT首 尾相互连接(其中CIN和COUT为GOP gopA的端口),则认为满足预设条件,则可W将运4个GOP gopA打包在一起作为一个Group,固定之间的相对位置,布局时作为一个整体进行布局,运 样可W减少布局时间和时序,充分利用布局资源。
[0047] W4个不同的GOP打包在一起为例,如图3所示,假设3和GOP gopQ和1个GOP gopIO脚FI化有如图3所示的连接关系,则认为满足预设条件,则可W将运3个GOP gopQ和1 个GOP gopIOBUFIOL打包一起作为一个Gro叩,运个GOP组用一个新的GOP表示,即GOP gopIOBUFIOLQ,布局时只用放置一个GOP gopIOBUFIOLQ即可,而不用分别放置3个GOP gopQ 和1个GOP gopIOBUFIOL,从而减少布局时间和时序。其中D,Q分别为GOP gopQ的输入和输出 端口,I,IN,TS和OUT,0,T分别为GOP gopI0BUFI0L的输入和输出端口。
[004引 S103、将各个GOP组映射到Grid Device。
[0049] 该步骤可W直接将各个GOP组映射到Grid Device。也可W采用下列方式:
[00加]从Grid Device中提取至少一个Gate Device ,Gate Device包括一个或多个电路 模块;将各个GOP组映射到一个或多个Gate Device,也是将GOP上的参数和端口映射到Gate Device 上。
[0051] WGOP组中只有一个GOP gopLUT4为例,根据用户配置,可W将该GOP gopLUT4映射 到Gate Device devAL、Gate Device devBL、Gate Device devCL或Gate Device devDL,具 体的,
[0052] parameter map表示参数映射,port map表示端口映射。INIT和MODE为GOP gopLUT4的参数,LO,LI,L2,L3,Z为GOP gopLUT4的端口; INITA和FGA_M0DE为devAL的参数, 八0,41,42,43,¥0为(16¥41^的端口;1^18和。68_]\1006为(16¥化的参数,80,81,82,83,¥1为 dev化的端口; INITC和FGC_MODE为dev化的参数,〇),(:1,〔2,〔3,¥2为(16¥化的端口;抑口0和 FGD_MODE为devDL的参数,DO,D1,D2,D3,Y3为devDL的端口,代码实现过程如下:
[0化3]
[0化4
[005
Y:3 二> 文
[0化6] ):
[0化7] 假如5102中是将11个相同的60?邑〇口4进行打包成一个6'〇啡,60?邑〇口4的编号从0 ~(n-1)
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1