科技成果

阅读数: 609

成果名称: 基于FPGA内嵌处理器的虚拟仿真测试方法

成果登记号: 9612023Y3572

第一完成单位: 西安润道智检科技有限公司

联 系 人: 李晓燕

成果类型: 应用技术

成果体现形式 : 新技术

技术领域: 电子信息

应用行业: 信息传输、软件和信息技术服务业

学科分类: 计算机仿真(520.6020)

应用状态: 产业化应用

完成人: 王文宇,易鑫,李静

成果简介:

        本发明公开了一种基于FPGA内嵌处理器的虚拟仿真测试方法,包括如下步骤:步骤1,查看被测FPGA软件开发环境,如果是使用MicroBlaze系列开发,则执行步骤2;如果被测FPGA软件使用Zynp系列开发,则执行步骤3;步骤2:连接及转换文件:将被测FPGA软件中C语言转换为可执行文件;然后读取可执行文件,进行仿真测试;步骤3,编写总线BFM文件,使用BFM文件替换原硬核IP,调用BFM文件进行仿真测试。本发明的虚拟仿真测试方法能够实现两种语言协同开发的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~15ddr3_1数据位16~31这两片内存拼接成32位数据位宽的DDR3内存; 如果被测FPGA软件中使用的DDR3接口的数据位宽为48bit,则将ddr3_0数据位0~15ddr3_1数据位16~31ddr3_2数据位32~47这三片内存拼接成48位数据位宽的DDR3内存; 如果被测FPGA软件中使用的DDR3接口的数据位宽为64bit,则将ddr3_0数据位0~15ddr3_1数据位16~31ddr3_2数据位32~47ddr3_3的数据位48~63这四片内存拼接成64位数据位宽的DDR3内存; 其次,将memory_init.bmmMEMORY变量的地址设置为被测FPGA软件中使用外设存储器分配的地址。 进一步的,所述步骤2-1-2的具体操作如下: 在LINUX操作系统下,使用”./gen_memfiles.sh ”命令,把.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的具体操作如下: 首先,找到被测软件中例化ARMIP语句,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的例化,此时的ARMIP已经被替换为BFM模块。 进一步的,所述步骤3-3的具体操作如下: 在被测FPGA软件中查找嵌入式代码与FPGA逻辑单元交互时读写的地址与数据,在测试顶层文件中调用BFM文件,使用BFM文件中的读写任务块实现ARMFPGA逻辑单元的读写操作,然后进行仿真测试。 与现有技术相比,本发明的方法的优点在于:本发明的虚拟仿真测试方法能够实现两种语言(C语言和VerilogVHDL语言)协同开发的FPGA内嵌处理器虚拟仿真测试。从而不仅保证了设计的正确性、完善性,又杜绝了后续生产工作中因设计而引发的错误,即节约了经济成本、又保证了项目如期地完成。