一种数据回读系统的制作方法

文档序号:11808094阅读:450来源:国知局
一种数据回读系统的制作方法与工艺

本发明涉及仿真技术领域,特别是涉及一种数据回读系统。



背景技术:

随着IC(Integrated Circuit,集成电路)设计规模和复杂度的不断增加,由于软硬件协同仿真具有加速仿真的效果,软硬件协同仿真在IC设计验证中扮演越来越重要的角色。在软硬件协同仿真平台中,用户只能通过观察仿真数据波形才能对IC设计进行仿真和调试,因此,仿真数据波形的回读是IC设计验证中一个极其重要的组成部分。

目前,很多高校、研发机构或者IC设计公司通常运用逻辑分析仪、FPGA(Field-Programmable Gate Array,现场可编程门阵列)厂商提供的在线调试软件来回读仿真数据波形。而逻辑分析仪价格昂贵,很少有用户用得起,所以FPGA厂商提供的在线调试软件的使用更为广泛。

但是,在线调试软件回读仿真数据波形的原理是将仿真波形数据的值写入FPGA中多余的块RAM(Random-Access Memory,随机存取存储器)来实现抓取仿真信号。这样,造成FPGA的逻辑资源严重浪费,在大规模的IC设计中更加严重。



技术实现要素:

鉴于上述问题,本发明实施例的目的在于提供一种数据回读系统,以解决在线调试软件回读仿真数据波形时造成FPGA的逻辑资源严重浪费的问题。

为了解决上述问题,本发明实施例公开了一种数据回读系统,包括数据回读装置、FPGA模块、分别与所述数据回读装置和所述FPGA模块相连的物理通道连接装置,其中,所述数据回读装置用于产生波形回读命令,并将所述波形回读命令发送至所述物理通道连接装置,以及从所述物理通道连接装置获取仿真波形数据,并显示所述仿真波形数据对应的仿真波形;所述物理通道连接装置用于传输所述波形回读命令和所述仿真波形数据;所述FPGA模块包括待测试电路模块和仿真波形数据捕获模块,所述FPGA模块用于获取所述波形回读命令,根据所述波形回读命令通过所述仿真波形数据捕获模块捕获所述待测试电路模块生成的仿真波形数据,并将所述仿真波形数据发送至所述物理通道连接装置。

可选地,所述数据回读装置包括ll(Logic Location,逻辑位置)文件生成模块、ll文件解析模块、命令生成模块、写波形文件模块和波形查看模块,其中,所述ll文件生成模块与所述ll文件解析模块相连,所述ll文件生成模块用于调用综合布局布线工具生成ll文件,并将所述ll文件发送至所述ll文件解析模块;所述ll文件解析模块与所述命令生成模块相连,所述ll文件解析模块用于解析所述ll文件获得SLR(Super Logic Region,超级逻辑区域)参数、far(Frame Address Register,帧地址寄存器)地址和far地址内部偏移量,并将所述SLR参数、所述far地址和所述far地址内部偏移量发送至所述命令生成模块;所述命令生成模块与所述物理通道连接装置相连,所述命令生成模块用于根据所述SLR参数、所述far地址和所述far地址内部偏移量生成波形回读命令,并将所述波形回读命令发送至所述物理通道连接装置;所述写波形文件模块分别与所述物理通道连接装置和所述波形查看模块相连,所述写波形文件模块用于从所述物理通道连接装置获取所述仿真波形数据,根据所述仿真波形数据生成预设文件格式的波形文件,并将所述波形文件发送至所述波形查看模块;所述波形查看模块用于调用仿真工具显示所述波形文件对应的仿真波形。

可选地,所述数据回读装置还包括:缓存模块,所述缓存模块分别与所述物理通道连接装置和所述写波形文件模块相连,所述缓存模块用于从所述物理通道连接装置获取所述仿真波形数据,并将所述仿真波形数据发送至所述写波形文件模块。

可选地,所述波形文件的预设文件格式包括VCD(Value Change Dump,值变转储文件)文件格式或FSDB(Fast Signal Database,快速信号数据库文件)文件格式。

可选地,所述仿真工具包括EDA(Electronic Design Automation,电子设计自动化)仿真工具。

可选地,所述FPGA模块为第一FPGA,所述仿真波形数据捕获模块为ICAP模块(Internal Configuration Access Port,内部配置访问端口),所述第一FPGA还包括第一捕获序列生成模块,其中,所述第一捕获序列生成模块分别与所述物理通道连接装置和所述ICAP模块相连,所述第一捕获序列生成模块用于从所述物理通道连接装置获取所述波形回读命令,以及根据所述波形回读命令生成捕获命令序列,并将所述捕获命令序列发送至所述ICAP模块;所述ICAP模块与所述物理通道连接装置相连,所述ICAP模块用于根据所述捕获命令序列捕获所述待测试电路模块生成的仿真波形数据,并将所述仿真波形数据发送至发送至所述物理通道连接装置。

可选地,所述FPGA模块还包括:第一内存模块,所述第一内存模块分别与所述ICAP模块和所述物理通道连接装置相连,所述第一内存模块用于从所述ICAP模块接收所述仿真波形数据,并将所述仿真波形数据发送至所述物理通道连接装置。

可选地,所述FPGA模块为内嵌ICAP硬核的FPGA模块。

可选地,所述FPGA模块包括第二FPGA和第三FPGA,所述仿真波形数据捕获模块为SelectMap接口模块,所述第二FPGA包括第二捕获序列生成模块和所述SelectMap接口模块,所述第三FPGA包括所述待测试电路模块,其中,所述第二捕获序列生成模块分别与所述物理通道连接装置和所述SelectMap接口模块相连,所述第二捕获序列生成模块用于从所述物理通道连接装置获取所述波形回读命令,以及根据所述波形回读命令生成捕获命令序列,并将所述捕获命令序列发送至所述SelectMap接口模块;所述SelectMap接口模块与所述物理通道连接装置和所述第三FPGA相连,所述SelectMap接口模块用于根据所述捕获命令序列捕获所述待测试电路模块生成的仿真波形数据,并将所述仿真波形数据发送至发送至所述物理通道连接装置。

可选地,所述第二FPGA还包括:第二内存模块,所述第二内存模块分别与所述SelectMap(并行模式)接口模块和所述物理通道连接装置相连,所述第二内存模块用于从所述SelectMap接口模块接收所述仿真波形数据,并将所述仿真波形数据发送至所述物理通道连接装置。

可选地,所述物理通道连接装置包括以太网口、PCIE(Peripheral Component Interconnect Express,外围器件快速互联)接口、JTAG(Joint Test Action Group,联合测试工作组)接口或USB(Universal Serial Bus,通用串行总线)接口。

本发明实施例的数据回读系统包括以下优点:

一、通过仿真波形数据捕获模块例如ICAP模块中的ICAP硬核或SelectMap接口模块中的SelectMap接口等从FPGA模块中读取仿真波形数据,而仿真波形数据捕获模块设置在FPGA模块内部,例如ICAP硬核为内嵌在FPGA模块内部的硬核,所以在获取仿真波形数据时不需要占用FPGA模块的逻辑资源,仅在获取仿真波形数据以及传递获取的仿真波形数据时占用少量的逻辑资源,而且逻辑资源的占用不会随着IC设计规模的增大而增大;

二、不需要设计获取仿真波形数据部分的逻辑,仅需要设计出FPGA模块所需的仿真波形数据捕获命令序列的生成逻辑以及仿真波形数据的传送逻辑即可,所以设计简单,静态时序分析简单;

三、当FPGA模块为内嵌ICAP硬核的FPGA模块时,FPGA模块访问ICAP硬核时只需实例化ICAP原语即可,FPGA模块通过ICAP硬核进行仿真波形数据回读时极为方便。

附图说明

图1是本发明的一种数据回读系统实施例的结构框图;

图2是本发明的另一种数据回读系统实施例的结构框图;

图3是本发明的再一种数据回读系统实施例的结构框图;

图4是本发明的另一种数据回读系统实施例中ICAP硬核的输入输出结构示意图;

图5是本发明的一种数据回读系统实施例中ll文件中各参数的格式的示意图表;

图6是本发明的另一种数据回读系统实施例中将捕获命令序列发送至ICAP硬核的过程示意图;

图7是本发明的另一种数据回读系统实施例中多个SLR的分布示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明的一种数据回读系统实施例的结构框图。该数据回读系统具体可以包括如下模块:数据回读装置1、FPGA模块、分别与数据回读装置1和FPGA模块相连的物理通道连接装置2。

其中,数据回读装置1用于产生波形回读命令,并将波形回读命令发送至物理通道连接装置2,以及从物理通道连接装置2获取仿真波形数据,并显示仿真波形数据对应的仿真波形;物理通道连接装置2用于传输波形回读命令和仿真波形数据;FPGA模块3包括仿真波形数据捕获模块30和待测试电路模块31,FPGA模块3用于获取波形回读命令,根据波形回读命令通过仿真波形数据捕获模块30捕获待测试电路模块31生成的仿真波形数据,并将仿真波形数据发送至物理通道连接装置2。待测试电路模块31可以为用户待测试设计在FPGA模块3中映射的电路模块。

可选地,参照图2和图3,数据回读装置1可以包括ll文件生成模块11、ll文件解析模块12、命令生成模块13、写波形文件模块14和波形查看模块15。其中,ll文件生成模块11与ll文件解析模块12相连,ll文件生成模块11用于调用综合布局布线工具生成ll文件,并将ll文件发送至ll文件解析模块12;ll文件解析模块12与命令生成模块13相连,ll文件解析模块12用于解析ll文件获得SLR参数、far地址和far地址内部偏移量,并将SLR参数、far地址和far地址内部偏移量发送至命令生成模块13;命令生成模块13与物理通道连接装置2相连,命令生成模块13用于根据SLR参数、far地址和far地址内部偏移量生成波形回读命令,并将波形回读命令发送至物理通道连接装置2;写波形文件模块14分别与物理通道连接装置2和波形查看模块15相连,写波形文件模块14用于从物理通道连接装置2获取仿真波形数据,根据仿真波形数据生成预设文件格式的波形文件,并将波形文件发送至波形查看模块15;波形查看模块15用于调用仿真工具显示波形文件对应的仿真波形。

可选地,参照图2和图3,数据回读装置1还可以包括缓存模块16,缓存模块16分别与物理通道连接装置2和写波形文件模块14相连,缓存模块16用于从物理通道连接装置2获取仿真波形数据,并将仿真波形数据发送至写波形文件模块14。其中,缓存模块16可以确保物理通道连接装置2中的仿真波形数据正确发送至写波形文件模块14。

可选地,波形文件的预设文件格式可以包括VCD文件格式或FSDB文件格式等。可选地,仿真工具可以包括EDA仿真工具等。可选地,物理通道连接装置2可以包括以太网口、PCIE接口、JTAG接口或USB接口等。

可选地,参照图2,在本发明的另一个实施例中,FPGA模块3可以为第一FPGA(以下称FPGA1),仿真波形数据捕获模块30可以为ICAP模块33,FPGA1还可以包括第一捕获序列生成模块32。其中,第一捕获序列生成模块32分别与物理通道连接装置2和ICAP模块33相连,第一捕获序列生成模块32用于从物理通道连接装置2获取波形回读命令,以及根据波形回读命令生成捕获命令序列,并将捕获命令序列发送至ICAP模块33;ICAP模块33与物理通道连接装置2相连,ICAP模块33用于根据捕获命令序列捕获待测试电路模块31生成的仿真波形数据,并将仿真波形数据发送至发送至物理通道连接装置2。

具体地,ICAP模块33可以包括ICAP硬核、SLR选取逻辑、有效仿真数据选取逻辑,有效仿真数据选取逻辑用于根据捕获命令序列中的far地址内部偏移量选取有效的仿真波形数据。需要说明的是,FPGA1可以包括多个SLR,每个SLR可以包括两个ICAP硬核。

可选地,参照图2,在本发明的另一个实施例中,FPGA模块3还可以包括第一内存模块34,第一内存模块34分别与ICAP模块33和物理通道连接装置2相连,第一内存模块34用于从ICAP模块33接收仿真波形数据,并将仿真波形数据发送至物理通道连接装置2。其中,第一内存模块34可以确保仿真波形数据可以正确发送至物理通道连接装置2。

可选地,FPGA模块3可以为内嵌ICAP硬核的FPGA模块。当FPGA模块3内部访问ICAP硬核时,只需要实例化ICAP原语即可。图4为ICAP硬核的输入输出结构示意图。其中CLK为ICAP硬核的输入时钟信号脚、CSIB为ICAP硬核的片选信号脚、I[31:0]为ICAP硬核的命令序列输入总线、RDWRB为ICAP硬核的读写控制信号脚、O[31:0]为ICAP硬核的寄存器或者配置存储器读取数据输出总线。其中,I[31:0]可以与第一捕获序列生成模块32相连,O[31:0]可以与配置存储器等相连。

可选地,参照图3,在本发明的再一个实施例中,FPGA模块3可以包括第二FPGA(以下称FPGA2)和第三FPGA(以下称FPGA3),仿真波形数据捕获模块30可以为SelectMap接口模块36,FPGA2可以包括第二捕获序列生成模块35和SelectMap接口模块36,FPGA3可以包括待测试电路模块31,其中,第二捕获序列生成模块35分别与物理通道连接装置2和SelectMap接口模块36相连,第二捕获序列生成模块35用于从物理通道连接装置2获取波形回读命令,以及根据波形回读命令生成捕获命令序列,并将捕获命令序列发送至SelectMap接口模块36;SelectMap接口模块36与物理通道连接2和FPGA3相连,SelectMap接口模块36用于根据捕获命令序列通过FPGA2和FPGA3之间的互联通道捕获待测试电路模块31生成的仿真波形数据,并将仿真波形数据发送至物理通道连接装置2。

可选地,参照图3,在本发明的再一个实施例中,FPGA2还可以包括第二内存模块37,第二内存模块37分别与SelectMap接口模块36和物理通道连接装置2相连,第二内存模块37用于从SelectMap接口模块36接收仿真波形数据,并将仿真波形数据发送至物理通道连接装置2。其中,第二内存模块37可以确保仿真波形数据可以正确发送至物理通道连接装置2。

在本发明的一个实施例中,当需要回读仿真波形数据时,通过ll文件生成模块11调用综合布局布线工具生成ll文件。ll文件中各参数的格式如图5所示,各参数分别为存储单元对应的信号名、锁存器类型、信号所在存储单元、far地址、总偏移量、far地址内部偏移量,其中,存储单元对应的信号名为U_TRANSFER/U_SENDER/delay_cnt_reg[28],锁存器类型为AQ,信号所在存储单元为SLICE_X405Y157,far地址为0x00406e9f,总偏移量为90816420,far地址内部偏移量为452。进而ll文件解析模块12解析ll文件获得SLR参数、far地址和far地址内部偏移量。命令生成模块13根据SLR参数、far地址和far地址内部偏移量生成波形回读命令。当FPGA模块3为FPGA1时,物理通道连接装置2传输该波形回读命令至第一捕获序列生成模块32,第一捕获序列生成模块32根据波形回读命令生成捕获命令序列,并将捕获命令序列发送至ICAP硬核的I[31:0],ICAP硬核将FPGA1的配置存储器捕获的仿真波形数据发送至第一内存模块34,第一内存模块34将仿真波形数据发送至物理通道连接装置2;当FPGA模块3包括FPGA2和FPGA3时,物理通道连接装置2传输该波形回读命令至第二捕获序列生成模块35,第二捕获序列生成模块35根据波形回读命令生成捕获命令序列,并将捕获命令序列发送至SelectMap接口模块36,SelectMap接口模块36将将FPGA3的配置存储器捕获的仿真波形数据发送至第二内存模块37,第二内存模块37将仿真波形数据发送至物理通道连接装置2。物理通道连接装置2将仿真波形数据发送至缓存模块16,缓存模块16将仿真波形数据发送至写波形文件模块14,写波形文件模块14根据仿真波形数据生成预设文件格式的波形文件,波形查看模块15调用仿真工具显示波形文件对应的仿真波形,完成仿真波形数据的回读。

具体地,参照图6,当FPGA模块3为FPGA1时,将捕获命令序列发送至ICAP硬核的I[31:0]可以包括以下过程:

首先,第一捕获序列生成模块32根据SLR参数计算出待选取信号所在的SLR;第二步,捕获命令序列写FPGA1中待选取的SLR中的CTL0寄存器,目的是为了使FPGA1发送使能ICAP硬核的相关命令,以使能ICAP硬核;第二步,捕获命令序列写FPGA1中待选取的SLR中的CMD寄存器,目的是使FPGA1发送仿真波形数据抓取命令,FPGA1将仿真波形数据存入配置存储器;第三步,捕获命令序列再次写FPGA1中待选取的SLR中的CMD寄存器,FPGA1发送读配置存储器前导命令;第四步:捕获命令序列写FPGA1中待选取的SLR中中的FDRO寄存器,目的是使FPGA1发送读配置存储器命令,以使ICAP硬核的O[31:0]将配置存储器中抓取的仿真波形数据读取出来。

其中,ICAP硬核的O[31:0]将配置存储器中抓取的仿真波形数据读取出来的过程如下:首先ICAP硬核根据该存储单元对应的far地址从FPGA1相应SLR中的配置存储器中将far地址对应的仿真波形数据帧读出,然后根据far地址内部偏移量找到待选取信号所对应的仿真波形数据。

具体地,在本发明的一个实施例中,FPGA1为运用堆叠硅片互联技术的FPGA,FPGA1包括多个SLR。多个SLR为4个SLR时的分布如图7所示。参照图7,每个SLR由150个纵坐标构成,纵坐标在0到149之间为SLR0,纵坐标在150到299之间为SLR1,纵坐标在300到449之间为SLR2,纵坐标在450到599之间为SLR3,图5中待选取信号所在存储单元为SLICE_X405Y157,即SLR的纵坐标为Y=157,上述FPGA1中相应SLR位于SLR1。

本发明实施例的数据回读系统包括以下优点:

一、通过仿真波形数据捕获模块例如ICAP模块中的ICAP硬核或SelectMap接口模块中的SelectMap接口等从FPGA模块中读取仿真波形数据,而仿真波形数据捕获模块设置在FPGA模块内部,例如ICAP硬核为内嵌在FPGA模块内部的硬核,所以在获取仿真波形数据时不需要占用FPGA模块的逻辑资源,仅在获取仿真波形数据以及传递获取的仿真波形数据时占用少量的逻辑资源,而且逻辑资源的占用不会随着IC设计规模的增大而增大;

二、不需要设计获取仿真波形数据部分的逻辑,仅需要设计出FPGA模块所需的仿真波形数据捕获命令序列的生成逻辑以及仿真波形数据的传送逻辑即可,所以设计简单,静态时序分析简单;

三、当FPGA模块为内嵌ICAP硬核的FPGA模块时,FPGA模块访问ICAP硬核时只需实例化ICAP原语即可,FPGA模块通过ICAP硬核进行仿真波形数据回读时极为方便。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种数据回读系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1