一种面向FPGA的多路选择器工艺映射方法技术

技术编号:32642823 阅读:16 留言:0更新日期:2022-03-12 18:19
本申请提供了一种面向FPGA的多路选择器工艺映射方法,涉及FPGA技术领域,该方法解析RTL级描述文件并识别得到待映射选择器单元,对于具有预设基本结构的待映射选择器单元,直接例化模板完成工艺映射,对于不具有预设基本结构的待映射选择器单元,将待映射选择器单元的结构基于预设基本结构进行拆分得到若干个具有信号级联关系的子单元,并将待映射选择器单元的待选信号和选择信号按预定逻辑分配连接至相应的子单元,分别例化子单元所具有的预设基本结构对应的模板、完成对待映射选择器单元的工艺映射,该方法为实现多路选择器的优化映射提供了切实可行的方法,为异质结构FPGA的发展和性能优化提供了技术基础。发展和性能优化提供了技术基础。发展和性能优化提供了技术基础。

【技术实现步骤摘要】
一种面向FPGA的多路选择器工艺映射方法


[0001]本专利技术涉及FPGA领域,尤其是一种面向FPGA的多路选择器工艺映射方法。

技术介绍

[0002]现场可编程逻辑门阵列(Field

Programmable Gate Array,FPGA)以其配置灵活、开发周期短等特点而被广泛应用于人工神经网络、原型验证、算法加速等领域。FPGA的设计流程由电子设计自动化(Electronic Design Automation,EDA)工具实现,主要包括逻辑综合、装箱、布局、布线、时序分析和码流生成等操作。工艺映射是逻辑综合的最后一步,通过将逻辑网表中的单元与芯片上的各类器件进行绑定来得到工艺网表,是物理实现数字系统的关键。
[0003]早期的FPGA是简单的同质结构,仅由LUT(Look

Up Table,查找表)与寄存器等基本逻辑器件构成,其中,LUT是FPGA中不可或缺的逻辑器件,每个K输入LUT通过编程配置可以实现任意K变量的逻辑函数。对于同质结构FPGA,已有许多有效的结构化工艺映射方法,一般通过分割枚举、分割排序、最佳分割选取等步骤用K

可行锥集覆盖逻辑网表,最后将每个K

可行的锥绑定到K输入LUT。
[0004]但是同质结构的FPGA的性能与专用集成电路(Application Specific Integrated Circuit,ASIC)相差甚远,因此随着FPGA设计水平的不断提高,FPGA逐渐向着异质结构发展,逐渐会在芯片上嵌入存储器(Block RAM)、数字信号处理器(DSP)、多路选择器等高性能的专用功能器件,用来缩小与ASIC在性能上的差距并扩展FPGA的应用领域,但目前针对异质结构FPGA却没有很有效的工艺映射方法。多路选择器是数字系统中最基本的数据通路。面向FPGA的多个应用领域,有研究人员选取其中的典型用户设计进行分析,指出多路选择器平均占逻辑单元总数的1/4以上。因此在用户设计的规模日益增大的情况下,如何高效利用专用功能器件,尤其是如何实现多路选择器的优化映射,是一个意义重大的课题,目前还没有很好的解决方法。

技术实现思路

[0005]针对上述问题及技术需求,提出了一种面向FPGA的多路选择器工艺映射方法,本专利技术的技术方案如下:
[0006]一种面向FPGA的多路选择器工艺映射方法,该方法包括:
[0007]解析RTL级描述文件并识别得到待映射选择器单元,每个待映射选择器单元包括N个待选信号以及位选择信号,符号表示向上取整;
[0008]对于具有预设基本结构的待映射选择器单元,例化待映射选择器单元所具有的预设基本结构对应的模板、完成对待映射选择器单元的工艺映射,每个预设基本结构对应的模板是预先对具有预设基本结构的选择器单元完成工艺映射后保存得到的工艺网表;
[0009]对于不具有预设基本结构的待映射选择器单元,将待映射选择器单元的结构基于预设基本结构进行拆分得到若干个具有信号级联关系的子单元,并将待映射选择器单元的
待选信号和选择信号按预定逻辑分配连接至相应的子单元,分别例化子单元所具有的预设基本结构对应的模板、完成对待映射选择器单元的工艺映射。
[0010]本专利技术的有益技术效果是:
[0011]本申请公开了一种面向FPGA的多路选择器工艺映射方法,该方法为实现多路选择器的优化映射提供了切实可行的方法,为异质结构FPGA的发展和性能优化提供了技术基础。
[0012]另外,该方法还可以将与多路选择器有驱动关系的反相器也融入到多路选择器的映射结构中,有利于优化掉反相器,减少逻辑单元总数。
附图说明
[0013]图1是本申请的面向FPGA的多路选择器工艺映射方法的主要流程图。
[0014]图2是一个实施例中预先保存的三个模板的示意图。
[0015]图3是一个实施例中对待映射选择器单元进行工艺映射的主要流程示意图。
[0016]图4是任意的2
K
选1形式的待拆分单元基于递归原则的拆分示意图。
[0017]图5是对于N=16384的待映射选择器单元的拆分为子单元的示意图。
[0018]图6是对于未形成2
K
选1形式的待拆分单元的拆分示意图。
[0019]图7是对于N=20的待映射选择器单元的拆分为子单元的示意图。
[0020]图8是log2N不是整数的一个实施例中对于未覆盖的条件分支的处理流程示意图。
具体实施方式
[0021]下面结合附图对本专利技术的具体实施方式做进一步说明。
[0022]本申请公开了一种面向FPGA的多路选择器工艺映射方法,该方法包括如下步骤,请参考图1:
[0023]S1,解析RTL级描述文件并识别得到待映射选择器单元。
[0024]可选的,本申请中的RTL级描述文件以Verilog、System Verilog以及VHDL中的任意一种描述语言编写得到。
[0025]选择器单元会通过至少两个具有预定关联的描述语句和/或至少一个符合预定语句特征的描述语句表示,则通过对RTL级描述文件中的描述语句进行解析并识别这些描述语句,即可以识别得到所有选择器单元,将其记为待映射选择器单元。至少一个符合预定语句特征的描述语句比如case语句,至少两个具有预定关联的描述语句比如if/else语句和有限状态机等。
[0026]且可以识别得到待映射选择器单元的待选信号的数量、选择信号的数量以及各路信号与其他单元的连接关系。每个形成N选1选择器单元结构的待映射选择器单元包括N个待选信号以及位选择信号,N为大于等于2的参数,符号表示向上取整。比如当待映射选择器单元为2选1选择器单元时,待映射选择器单元包括2个待选信号以及1位选择信号。比如当待映射选择器单元为3选1选择器单元时,待映射选择器单元包括3个待选信号以及2位选择信号。
[0027]S2,对于具有预设基本结构的待映射选择器单元,例化待映射选择器单元所具有的预设基本结构对应的模板、完成对待映射选择器单元的工艺映射。
[0028]每个预设基本结构为一个预定的多选一选择器单元的结构,比如是2选1选择器单元、3选1选择器单元、4选1选择器单元、8选1选择器单元等等的结构。每个预设基本结构对应的模板是预先对具有该预设基本结构的选择器单元完成工艺映射后保存得到的工艺网表,也即预先将预设基本结构的选择器单元与可配置逻辑单元(CLB)中的LUT(查找表)与多路选择器硬核进行绑定后得到工艺网表,可以认为是具有该预设基本结构的待映射选择器单元的最优工艺映射结果。对于有对应模板的待映射选择器单元,直接例化模板实现该待映射选择器单元的最优映射。
[0029]比如预设基本结构为4选1选择器单元的结构,且预先保存该预设基本结构对应的模板记为模板0,则对于包括4个待选信号以及2位选择信号的待映射选择器单元,直接例化模板0实现对该待映射选择器单元的最优映射本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向FPGA的多路选择器工艺映射方法,其特征在于,所述方法包括:解析RTL级描述文件并识别得到待映射选择器单元,每个待映射选择器单元包括N个待选信号以及位选择信号,符号表示向上取整;对于具有预设基本结构的待映射选择器单元,例化所述待映射选择器单元所具有的预设基本结构对应的模板、完成对所述待映射选择器单元的工艺映射,每个预设基本结构对应的模板是预先对具有所述预设基本结构的选择器单元完成工艺映射后保存得到的工艺网表;对于不具有所述预设基本结构的待映射选择器单元,将所述待映射选择器单元的结构基于预设基本结构进行拆分得到若干个具有信号级联关系的子单元,并将所述待映射选择器单元的待选信号和选择信号按预定逻辑分配连接至相应的子单元,分别例化子单元所具有的预设基本结构对应的模板、完成对所述待映射选择器单元的工艺映射。2.根据权利要求1所述的工艺映射方法,其特征在于,所述将所述待映射选择器单元的结构基于预设基本结构进行拆分得到若干个具有信号级联关系的子单元,并将所述待映射选择器单元的待选信号和选择信号按预定逻辑分配连接至相应的子单元,包括:将所述待映射选择器单元作为待拆分单元开始进行若干层拆分,每一个待拆分单元被拆分为若干个第一级选择单元和一个第二级选择单元,所述第二级选择单元是基于预设基本结构得到的一个子单元,各个第一级选择单元的输出作为所述第二级选择单元的各个待选信号,所述待拆分单元的待选信号按第一编码顺序分为若干组且每一组作为拆分得到的一个第一级选择单元的待选信号;所述待拆分单元的选择信号按第二编码顺序分为若干组分别作为拆分得到的第一级选择单元和第二级选择单元的选择信号;将未达到子单元级别的第一级选择单元作为新的待拆分单元继续拆分;其中,选择信号的所述第二编码顺序是R位选择信号从最低位至最高位的顺序,待选信号的所述第一编码顺序是根据各个待选信号对应的选择信号所构成的二进制数的大小对所述待选信号进行升序排列得到的顺序。3.根据权利要求2所述的工艺映射方法,其特征在于,对于log2N为整数而形成2
K
选1形式的待映射选择器单元,基于递归原则对所述待映射选择器单元依次进行拆分,K为参数;对于log2N为非整数而不具有2
K
选1形式的所述待映射选择器单元,对所述待映射选择器单元拆分为若干个由2选1单元相连的2
K
选1形式的待拆分单元,对拆分过程中得到的各个2
K
选1形式的待拆分单元分别基于递归原则依次进行拆分,对拆分得到的各个2选1单元基于待选信号和选择信号连接的单元的映射结果对所述2选1单元进行映射。4.根据权利要求3所述的工艺映射方法,其特征在于,预设基本结构的选择器单元包括:4选1选择器单元、8选1选择器单元以及16选1选择器单元,且4选1选择器单元与查找表进行绑定形成对应的模板,8选1选择器单元与查找表及其相连的第一级多路选择器硬核MUX0进行绑定形成对应的模板,16选1选择器单元与查找表及其依次相连的第一级多路选择器硬核MUX0和第二级多路选择器硬核MUX1进行绑定形成对应的模板;则对于不具有所述预设基本结构的待映射选择器单元:若所述待映射选择器单元的待选信号的数量N=2,则跳过对所述待映射选择器单元的
处理;若所述待映射选择器单元的待选信号的数量N=3,则直接将所述待映射选择器单元与对应的查找表绑定完成工艺映射;若所述待映射选择器单元的待选信号的数量N>4,则执行所述将所述待映射选择器单元的结构基于预设基本结构进行拆分得到若干个具有信号级联关系的子单元的步骤,且拆分得到的子单元至少包括:形成4选1选择器单元结构的子单元、形成8选1选择器单元结构的子单元、形成16选1选择器单元结构的子单元中的至少一种。5.根据权利要求4所述的工艺映射方法,其特征在于,在对所述待映射选择器单元的拆分过程中,在拆分任意一个具有2
K
选1形式的待拆分单元时:若K%4=0,则所述待拆分单元直接形成16
n
选1单元,将16
n
选1单元拆分为1个16选1单元和16个16
n
‑1选1单元,将每个16
n
‑1选1单元作为新的待拆分单元继续拆分直至n=2,其中,且n≥2,表示向下取整;若K%4=1,则将所述待拆分单元拆分为1个2选1单元和2个16
n
选1单元,并将所述待拆分单元的选择信号中的从低至高的K

1位同时作为2个16
n
选1单元的选择信号、最高的一位作为2选1单元的选择信号,继续对每个16
n
选1单元分别依次进行拆分;若K%4=2,则将所述待拆分单元拆分为1个4选1单元和4个16
n
选1单元,并将所述待拆分单元的选择信号中的从低至高的K

2位同时作为4个16
n
选1单元的选择信号、最高的两位作为4选1单元的选择信号,继续对每个16
n
选1单元分别依次进行拆分;若K%4=3,则将所述待拆分单元拆分为1个8选1单元和8个16
n
选1单元,并将所述待拆分单元的选择信号中的从低至高的K

3位同时作为8个16
n
选1单元的选择信号、最高的三位作为8选1单元的选择信号,继续对每个16
n
选1单元分别依次进行拆分。6.根据权利要求5所述的工艺映射方法,其特征在于,在对任意取值的参数n时的16
n
选1单元拆分为1个16选1单元和16个16
n
‑1选1单元时,将16
n
选1单元的选择信号中的从低至高的4(n

1)位同时作为16个16
n
‑1选1单元的选择信号、并将选择信号中的最高的4位作为16选1单元的选择信号。7.根据权利要求5所述的工艺映射方法,其特征在于,对于任意一个具有2
K
选1形式的待拆分单元,当K%4=1时,对一个待拆分单元的结构拆分得到的子单元还包括2选1单元,且对所述待拆分单元最终拆分得到的结构中,所述待拆分单元的选择信号的次高位s
K
‑2驱动的两个单元分别绑定到两个第二级多路选择器硬核MUX1,所述待映射选择器单元的选择信号的最高位s
K
‑1驱动的单元绑定到一个三输入查找表LUT3,则所述方法还包括:对待拆分单元的选择信号的最高两位所驱动的单元进行合并操作,合并得到一个形成4选1选择器单元结构的子单元。8.根据权利要求4所述的工艺映射方法,其特征在于,对任意的具有N
F
个待选信号且不具有2
K
选1形式的待拆分单元的拆分过程包括,令若则将具有N
F
个待选信号的待拆分单元拆分为1个作为第二级选择单元的2选1单元和1个作为第一级选择单元的选1的待拆分单元,并将所述待拆分单元的待选信号中按照所述第一编码顺序的前个待选信号连接到选1的待拆分单元,将选1的待拆分单元的输出和所述待拆分单元的待选信号中最高位的待选信号分别作为2选1单元的待选信号,所
述待拆分单元的选择信号中的最低的K
F

1位作为选1的待拆分单元的选择信号、最高的一位作为2选1单元的选择信号;若则将具有N
F
个待选信号的待拆分单元拆分为1个作为第二级选择单元的2选1单元,以及包括选1的待拆分单元和选1的中间单元的第一级选择单元,将所述待拆分单元的待选信号按照所述第一编码顺序的前个待选信号作为选1的待拆分单元的待选信号、后个待选信号作为选1的待拆分单元的待选信号,选1的待拆分单元和选1的中间单元的输出分别作为2选1单元的两个待选信号;将所述待拆分单元的选择信号中的最低的K
F

1位作为选1的待拆分单元的选择信号、最低的位作为选1的待拆分单元的选择信号,将最高的一位选择信号作为2选1单元的选择信号;基...

【专利技术属性】
技术研发人员:谢尚銮惠锋刘佩王晨阳张立
申请(专利权)人:无锡中微亿芯有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1