一种硬件仿真中多个fpga自动互联的方法及系统的制作方法

文档序号:8223454阅读:461来源:国知局
一种硬件仿真中多个fpga自动互联的方法及系统的制作方法
【技术领域】
[0001]本发明涉及电子设计自动化设计技术领域,尤其涉及一种硬件仿真中多个FPGA自动互联的方法及系统。
【背景技术】
[0002]目前,芯片规模都比较大,现有一片FPGA无法容纳下一块完整的芯片,这种情况下,就需要对芯片进行逻辑分割以放到不同的FPGA中来进行硬件平台的验证测试,而芯片逻辑进行了分割,就必然会引起各个被分割逻辑之间信号的传递和连接问题,此时就需要有工具能够自动识别各个分割模块之间需要连接的信号,生成新的顶层文件,并分类汇总生成需要传递的信号列表。
[0003]传统的FPGA仿真中,在将芯片分配到多个FPGA中后,需要手动为芯片的每一个端口指定互联线,如果芯片很大时,每增加一块FPGA,指定互联线的工作量会成倍增加,而且当芯片分配方案改变时,需要重新修正所有的互联线,如此一来,工作量相当大,不仅费时、费力,而且还容易出错。

【发明内容】

[0004]本发明的目的在于提供一种硬件仿真中多个FPGA自动互联的方法及系统。
[0005]为实现上述发明目的之一,本发明一实施方式提供一种硬件仿真中多个FPGA自动互联的方法,所述多个FPGA用于容纳多个模块,所述多个模块通过逻辑分割待分割芯片而成,包括步骤:
读取所述待分割芯片的源文件;
提取并存储所述源文件中的模块信息,所述模块信息包括所述多个模块的模块名及与所述多个模块对应的端口信息;
读取配置文件;
提取并存储所述配置文件中的配置信息,所述配置信息包括所述模块名及与所述模块名对应的FPGA信息;
根据所述配置信息中的所述模块名读取对应的所述端口信息;
根据所述配置信息中的所述FPGA信息存储所述端口信息;
根据所述端口信息生成分别对应每一所述FPGA的顶层文件和互联线信息文件;
通过所述顶层文件和所述互联线信息文件实现多个FPGA之间的互联。
[0006]作为本发明一实施方式的进一步改进,“提取并存储所述源文件中的模块信息,所述模块信息包括所述多个模块的模块名及与所述多个模块对应的端口信息”具体包括:
利用真值表进行源文件匹配;
提取并存储所述源文件中匹配成功的所述模块信息。
[0007]作为本发明一实施方式的进一步改进,“利用真值表进行源文件匹配”具体包括: 于真值表中设置关键字; 当所述源文件中包含与所述关键字匹配的所述模块信息时,匹配成功;当所述源文件中不包含与所述关键字匹配的所述模块信息时,匹配失败。
[0008]作为本发明一实施方式的进一步改进,“根据所述配置信息中的所述FPGA信息存储所述端口信息”具体包括:
调整并存储所述端口信息,每一所述FPGA包括对应的顶层文件及位于所述顶层文件下方的低层文件,所述端口信息的调整规则为:
当所述低层文件的端口用于传输每一所述FPGA内部多个子模块之间的信息时,若所述端口为待分割芯片初始状态时的输入端或输出端,则根据所述端口信息将所述端口定义为所述FPGA的输入端口或输出端口,若所述端口不是待分割芯片初始状态时的输入端或输出端,则于所述FPGA内部连接所述端口 ;当所述端口用于传输外部信息时,根据所述端口信息将所述端口定义为所述FPGA的输入端口或输出端口 ;
当所述低层文件的端口在不同层级具有不同的互联线信息时,采用最顶层互联线信息作为所述端口的所述互联线信息;
当所述低层文件中的模块的上一级路径发生变化时,所述子模块利用所述端口信息与所述子模块的路径做组合后替代初始的所述端口信息;
当所述低层文件的端口连接常数或者悬空时,所述顶层文件的端口对应连接常数或者悬空;
当所述FPGA中的模块为待分割芯片分割多次后重组形成的模块时,重新命名所述模块;
当所述端口信息中包含系统任务或预编译处理语句时,识别并存储对应的所述端口信息,并将所述端口信息复现至对应每一所述FPGA的初始的所述端口信息中。
[0009]作为本发明一实施方式的进一步改进,所述端口信息包括端口、线网、寄存器、逻辑运算以及硬件可描述语言的语法信息。
[0010]作为本发明一实施方式的进一步改进,所述互联线信息文件包含所述FPGA之间互联线的端口名称、位宽。
[0011]为实现上述发明目的之一,本发明一实施方式提供一种硬件仿真中多个FPGA自动互联的系统,包括多个模块、源文件读取单元、模块信息提取单元、第一结构体、配置文件读取单元、配置信息提取单元、第二结构体、端口信息读取单元、第三结构体及生成单元,多个模块被划分至所述多个FPGA中,所述多个模块通过逻辑分割待分割芯片而成;源文件读取单元用于读取所述待分割芯片的源文件;模块信息提取单元用于提取所述源文件中的模块信息,所述模块信息包括所述多个模块的模块名及与所述多个模块对应的端口信息;第一结构体用于存储所述模块信息;配置文件读取单元用于读取配置文件;配置信息提取单元用于提取所述配置文件中的配置信息,所述配置信息包括所述模块名及与所述模块名对应的FPGA信息;第二结构体用于存储所述配置信息;端口信息读取单元用于根据所述配置信息中的所述模块名读取对应的所述端口信息;第三结构体用于根据所述配置信息中的所述FPGA信息存储所述端口信息;生成单元用于根据所述端口信息生成分别对应每一所述FPGA的顶层文件和互联线信息文件,从而通过所述顶层文件和所述互联线信息文件实现多个FPGA之间的互联。
[0012]作为本发明一实施方式的进一步改进,所述系统还包括真值表,所述真值表用于进行所述源文件的匹配,所述第一结构体用于存储匹配成功的所述模块信息。
[0013]作为本发明一实施方式的进一步改进,所述端口信息包括端口、线网、寄存器、逻辑运算以及硬件可描述语言的语法信息。
[0014]作为本发明一实施方式的进一步改进,所述互联线信息文件包含所述FPGA之间互联线的端口名称、位宽。
[0015]与现有技术相比,本发明的有益效果在于:本发明采用工具自动索引模块间的互联线信息,并且可以人为随意指定FPGA的数量和其内部包含的模块数量,在效率、准确度和灵活度上有很大的提高。
【附图说明】
[0016]图1是本发明一实施方式的硬件仿真中多个FPGA自动互联的方法流程图;
图2是本发明一实施方式的硬件仿真中多个FPGA自动互联的系统框图;
图3是本发明一具体示例的待分割芯片的结构示意图;
图4是本发明一具体示例的待分割芯片逻辑分割后分配至多个FPGA中的结构示意图。
【具体实施方式】
[0017]以下将结合附图所示的【具体实施方式】对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
[0018]本发明将一整个待分割芯片进行逻辑分割,形成多个模块,多个模块分别容置于多个FPGA中,其中,FPGA及模块的数量、每一所述FPGA中容纳的模块数量可依据实际情况而定。
[0019]如图1所示,本发明的硬件仿真中多个FPGA自动互联的方法包括如下步骤:
读取所述待分割芯片的源文件;
提取并存储所述源文件中的模块信息,所述模块信息包括所述多个模块的模块名及与所述多个模块对应的端口信息;
读取配置文件;
提取并存储所述配置文件中的配置信息,所述配置信息包括所述模块名及与所述模块名对应的FPGA信息;
根据所述配置信息中的所述模块名读取对应的所述端口信息;
根据所述配置信息中的所述FPGA信息存储所述端口信息;
根据所述端口信息生成分别对应每一所述FPGA的顶层文件和互联线信息文件;
通过所述顶层文件和所述互联线信息文件实现多个FPGA之间的互联。
[0020]其中,所述源文件为所述待分割芯片的源代码,本实施方式以verilog HDL语言编写的源代码为例,但不以此为限;所述配置文件主要用于指定每一模块分配到对应的FPGA中;所述端口信息包括模块的端口、线网、寄存器、逻辑运算以及硬件可描述语言的语法信息等;所述互联线信息文件包含所述FPGA之间互联线的端口名称、位宽等,所述互联线信息以特定
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1