本发明专利技术公开了一种基于FPGA内嵌处理器的虚拟仿真测试方法,包括如下步骤:步骤1,查看被测FPGA软件开发环境,如果是使用MicroBlaze系列开发,则执行步骤2;如果被测FPGA软件使用Zynp系列开发,则执行步骤3;步骤2:连接及转换文件:将被测FPGA软件中C语言转换为可执行文件;然后读取可执行文件,进行仿真测试;步骤3,编写总线BFM文件,使用BFM文件替换原硬核IP,调用BFM文件进行仿真测试。本发明专利技术的虚拟仿真测试方法能够实现两种语言协同开发的FPGA内嵌处理器虚拟仿真测试。从而不仅保证了设计的正确性、完善性,又杜绝了后续生产工作中因设计而引发的错误,即节约了经济成本、又保证了项目如期地完成。
【技术实现步骤摘要】
基于FPGA内嵌处理器的虚拟仿真测试方法
本专利技术属于虚拟仿真测试领域,具体涉及一种基于FPGA内嵌处理器的虚拟仿真测试方法。
技术介绍
FPGA作为一种可编程的器件,最初应用在通信领域,随着纳米技术的提出和微电子技术的发展,可编程逻辑系统设计技术在集成电路产业中独树一帜,应用范围遍及军工、汽车电子、航空航天、医疗、通讯、安防、广播、工业、消费类市场、监察控制等多个热门领域。并随着工艺的不断进步,向着更广泛的领域扩展。然而在FPGA设计中,测试任务起着承上启下的作用,它不仅保证了设计的正确性、完善性,又杜绝了后续生产工作中,因设计而引发的错误,即节约了经济、又保证了项目如期地完成。在传统的FPGA开发设计中,由于FPGA单纯的逻辑电路设计占用了绝大部分,测试一般仅采用直接对设计输入激励,然后捕获输出结果并加以分析的测试方法进行验证,但是随着应用场景的变化和对FPGA性能等要求的提高,各FPGA供应商提出了FPGA内嵌处理器的设计方案,一般采用两种语言协同开发(两种语言即软件语言如C语言、硬件语言如Verilog或VHDL),针对此种FPGA内嵌处理器软件的测试方法,因仿真工具无法同时识别C语言与Verilog等硬件语言,测试往往采用屏蔽嵌入式处理器设计部分(C语言),只针对逻辑部分(Verilog或VHDL语言)进行仿真测试。显然,这种测试方法无法从整个设计的完善度、可靠性方面完整的去验证整个FPGA软件的功能,导致存在验证漏洞,因此提出一种可充分验证FPGA内嵌处理器软件的测试方法是非常有必要的。
技术实现思路
为了解决FPGA内嵌处理器设计中采用屏蔽嵌入式处理器设计部分,只针对逻辑部分进行仿真测试导致的存在验证漏洞的问题,本专利技术的目的在于,提供一种基于FPGA内嵌处理器的虚拟仿真测试方法。为了实现上述目的,本专利技术采用如下技术方案予以解决:一种基于FPGA内嵌处理器的虚拟仿真测试方法,包括如下步骤:步骤1,查看被测FPGA软件开发环境,如果是使用MicroBlaze系列开发,则执行步骤2;如果被测FPGA软件使用Zynp系列开发,则执行步骤3;步骤2:连接及转换文件:将被测FPGA软件中C语言转换为可执行文件;然后读取可执行文件,进行仿真测试;步骤3,编写总线BFM文件,使用BFM文件替换原硬核IP,调用BFM文件进行仿真测试。进一步的,所述步骤2包括如下步骤:步骤2-1:将被测FPGA软件中C语言部分编译完成后生成的.elf文件转化成.mem文件;步骤2-2:读取可执行文件:将步骤2-1得到的转换后的可执行文件读入测试平台;在测试执行时与FPGA逻辑部分进行数据交互完成测试。进一步的,所述步骤2-1具体包括如下步骤:步骤2-1-1:修改bmm文件;步骤2-1-2:调用bmm文件,生成.mem可执行文件。进一步的,所述步骤2-1-1的具体操作如下:首先,查询被测FPGA软件中使用的DDR3接口的数据位宽和外设存储器分配地址,如果被测FPGA软件中使用的DDR3接口的数据位宽为16bit,则仅保留memory_init.bmm文件中的ddr3_0数据位0~15;如果被测FPGA软件中使用的DDR3接口的数据位宽为32bit,则将ddr3_0数据位0~15、ddr3_1数据位16~31这两片内存拼接成32位数据位宽的DDR3内存;如果被测FPGA软件中使用的DDR3接口的数据位宽为48bit,则将ddr3_0数据位0~15、ddr3_1数据位16~31、ddr3_2数据位32~47这三片内存拼接成48位数据位宽的DDR3内存;如果被测FPGA软件中使用的DDR3接口的数据位宽为64bit,则将ddr3_0数据位0~15、ddr3_1数据位16~31、ddr3_2数据位32~47、ddr3_3的数据位48~63这四片内存拼接成64位数据位宽的DDR3内存;其次,将memory_init.bmm中MEMORY变量的地址设置为被测FPGA软件中使用外设存储器分配的地址。进一步的,所述步骤2-1-2的具体操作如下:在LINUX操作系统下,使用”./gen_memfiles.sh<locationofelffile>”命令,把.elf文件通过调用步骤2-1-1得到的memory_init.bmm文件转化成.mem可执行文件。进一步的,所述步骤2-2具体包括如下步骤:步骤2-2-1:将步骤2-1得到的.mem可执行文件读入DDR3模型中。步骤2-2-2:通过例化DDR3模型,顶层文件获取DDR3中的所有指令集,然后进行常规仿真测试。进一步的,所述步骤2-2-1的具体操作:在测试顶层文件中,使用系统函数“$readmemh()”将步骤2-1得到的.mem可执行文件中的.mem指令集信息读入DDR3模型中。进一步的,所述步骤3具体包括如下步骤:步骤3-1,依据设计中使用的总线类型编写BFM文件;步骤3-2,使用BFM文件替换原硬核IP;步骤3-3,调用BFM文件进行仿真测试。进一步的,所述步骤3-2的具体操作如下:首先,找到被测软件中例化ARM的IP语句,Zynq系列的硬核IP例化原模块名称为xxx_processing_system7_0_0.v模块内的processing_system7_bfm_v2_0_5_processing_system7_bfm;其次,将对processing_system7_bfm_v2_0_5_processing_system7_bfm模块的例化替换为BFM.sv的例化,此时的ARM的IP已经被替换为BFM模块。进一步的,所述步骤3-3的具体操作如下:在被测FPGA软件中查找嵌入式代码与FPGA逻辑单元交互时读写的地址与数据,在测试顶层文件中调用BFM文件,使用BFM文件中的读写任务块实现ARM与FPGA逻辑单元的读写操作,然后进行仿真测试。与现有技术相比,本专利技术的方法的优点在于:本专利技术的虚拟仿真测试方法能够实现两种语言(C语言和Verilog或VHDL语言)协同开发的FPGA内嵌处理器虚拟仿真测试。从而不仅保证了设计的正确性、完善性,又杜绝了后续生产工作中因设计而引发的错误,即节约了经济成本、又保证了项目如期地完成。附图说明图1为基于FPGA内嵌处理器(MicroBlaze系列)的虚拟仿真测试示意图。图2为基于FPGA内嵌处理器(Zynp系列)的虚拟仿真测试示意图。图3为基于FPGA内嵌处理器(MicroBlaze系列)的虚拟仿真波形示意图。图4为基于FPGA内嵌处理器(Zynp系列)的虚拟仿真波形示意图。具体实施方式下面结合附图对本专利技术的具体实施方案进行详细说明。本专利技术给出的基于FPGA内嵌处理器的虚拟仿真测试方法,包括如下步骤:步骤1本文档来自技高网...
【技术保护点】
1.一种基于FPGA内嵌处理器的虚拟仿真测试方法,其特征在于,包括如下步骤:/n步骤1,查看被测FPGA软件开发环境,如果是使用MicroBlaze系列开发,则执行步骤2;如果被测FPGA软件使用Zynp系列开发,则执行步骤3;/n步骤2:连接及转换文件:将被测FPGA软件中C语言转换为可执行文件;然后读取可执行文件,进行仿真测试;/n步骤3,编写总线BFM文件,使用BFM文件替换原硬核IP,调用BFM文件进行仿真测试。/n
【技术特征摘要】
1.一种基于FPGA内嵌处理器的虚拟仿真测试方法,其特征在于,包括如下步骤:
步骤1,查看被测FPGA软件开发环境,如果是使用MicroBlaze系列开发,则执行步骤2;如果被测FPGA软件使用Zynp系列开发,则执行步骤3;
步骤2:连接及转换文件:将被测FPGA软件中C语言转换为可执行文件;然后读取可执行文件,进行仿真测试;
步骤3,编写总线BFM文件,使用BFM文件替换原硬核IP,调用BFM文件进行仿真测试。
2.如权利要求1所述的基于FPGA内嵌处理器的虚拟仿真测试方法,其特征在于,所述步骤2包括如下步骤:
步骤2-1:将被测FPGA软件中C语言部分编译完成后生成的.elf文件转化成.mem文件;
步骤2-2:读取可执行文件:将步骤2-1得到的转换后的可执行文件读入测试平台;在测试执行时与FPGA逻辑部分进行数据交互完成测试。
3.如权利要求2所述的基于FPGA内嵌处理器的虚拟仿真测试方法,其特征在于,所述步骤2-1具体包括如下步骤:
步骤2-1-1:修改bmm文件;
步骤2-1-2:调用bmm文件,生成.mem可执行文件。
4.如权利要求3所述的基于FPGA内嵌处理器的虚拟仿真测试方法,其特征在于,所述步骤2-1-1的具体操作如下:
首先,查询被测FPGA软件中使用的DDR3接口的数据位宽和外设存储器分配地址,
如果被测FPGA软件中使用的DDR3接口的数据位宽为16bit,则仅保留memory_init.bmm文件中的ddr3_0数据位0~15;
如果被测FPGA软件中使用的DDR3接口的数据位宽为32bit,则将ddr3_0数据位0~15、ddr3_1数据位16~31这两片内存拼接成32位数据位宽的DDR3内存;
如果被测FPGA软件中使用的DDR3接口的数据位宽为48bit,则将ddr3_0数据位0~15、ddr3_1数据位16~31、ddr3_2数据位32~47这三片内存拼接成48位数据位宽的DDR3内存;
如果被测FPGA软件中使用的DDR3接口的数据位宽为64bit,则将ddr3_0数据位0~15、ddr3_1数据位16~31、ddr3_2数据位32~47、ddr3_3的数据位48~63这四片内存拼接成64位数据位宽的DDR3内存;
其次,将memory_init.bmm中MEMORY变量的地址设置为被测FPGA软件中使用外设存储器分配的地址。
【专利技术属性】
技术研发人员:王文宇,易鑫,李静,
申请(专利权)人:西安润道智检科技有限公司,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。