数字产品的仿真信号查看方法及系统

文档序号:1505336 发布日期:2020-02-07 浏览:21次 >En<

阅读说明:本技术 数字产品的仿真信号查看方法及系统 (Method and system for checking simulation signal of digital product ) 是由 林铠鹏 李艳荣 白耿 于 2019-12-06 设计创作,主要内容包括:本发明公开了一种数字产品的仿真信号查看方法及仿真系统,所述方法包括:对数字产品进行FPGA仿真时,实时读取数字产品的所有外部端口的状态数据并记录,同时,每间隔一段时间读取一次数字产品的全部内部状态数据并记录;仿真完成后,当需要回溯查看数字产品的某个时钟周期的数据时,在记录的仿真数据中,读取此时钟周期前的最后一个时间点存储的数字产品的内部状态数据和所述时间点的外部端口状态数据,将数字产品载入到软件仿真器中,并把所述时间点记录的外部端口状态数据和内部状态数据设置为数字产品的初始状态,启动软件仿真器并运行到需要查看的时钟周期。采用本发明的技术方案,可以快速的回溯查看任一个时钟周期的全部仿真数据。(The invention discloses a simulation signal viewing method and a simulation system of a digital product, wherein the method comprises the following steps: when the FPGA simulation is carried out on the digital product, the state data of all external ports of the digital product are read in real time and recorded, and simultaneously, all internal state data of the digital product are read and recorded once at intervals; after the simulation is completed, when data of a certain clock cycle of the digital product needs to be traced and checked, reading internal state data of the digital product and external port state data of the time point, which are stored at the last time point before the clock cycle, in the recorded simulation data, loading the digital product into a software simulator, setting the external port state data and the internal state data recorded at the time point as initial states of the digital product, starting the software simulator and running to the clock cycle needing to be checked. By adopting the technical scheme of the invention, all simulation data of any clock period can be quickly backtracked and checked.)

数字产品的仿真信号查看方法及系统

技术领域

本发明涉及数字逻辑产品仿真领域,尤其涉及一种数字产品的仿真信号查看方法及系统。

背景技术

在数字逻辑产品的设计过程中,需要采用仿真验证的方式来测试验证设计的正确性,一般来说,这个环节是采用软件仿真器(Simulator)来完成的。

软件仿真器的工作原理是:在仿真器中运行待测设计(RTL代码或者门级网表)和测试向量(HVL代码或者不可综合SystemVerilog程序),通过待测设计和测试向量的接口信号互动,完成测试向量中定义的验证流程。开发人员可以通过检查任意测试向量的值,查看待测设计任意端口或者内部信号的值,或者多个时钟周期组成的波形,来确认设计是否正确,以及Debug。

然而,受限于软件处理能力,软件仿真器的性能是很有限的。一般来说,验证一个SoC的完整设计,可能运行速度只有几十Hz。因此为了加快速度,设计师倾向于尽快的把设计移植到FPGA中进行验证,这种验证方法一般称为FPGA原型验证(FPGA PrototypingVerification),FPGA原型验证可以达到几十MHz甚至更高的运行速度,可以实现更快速的验证。但是,FPGA原型验证很难探测到待测设计的信号值,一般的方法只能靠把需要的信号通过布线引到端口上,再连接到逻辑分析仪来触发或显示,这种探测方法称为静态探针,静态探针只能看到非常有限的信号,每次要看新的信号,还需要重新进行FPGA布线,需要漫长的准备时间。并且,这个过程中,由于信号或者环境的变化,可能导致原来发生的错误或者事件,又难以复现了。所以FPGA的可调试性非常差。

考虑到软件仿真器和FPGA原型验证各自具有的明显优劣点,业界倾向于一种解决方案,让仿真验证过程具有软件仿真器的信号全可视性,又有FPGA原型验证的快速。这种方案业界称为硬件仿真器(Emulator)。硬件仿真器具有两个重要特性:

性能:相比软件仿真器,硬件仿真器具有明显的性能优势。一般来说,硬件仿真器具有MHz级别的运行速度。

信号可探测性:相比FPGA原型验证,硬件仿真器具有方便的信号可探测性,可以不需要重新运行或者重新配置,即可看到待测设计的所有内部和端口信号。专业术语称为信号全可视(Full Visibility)。

为了实现硬件仿真器,技术上有几种方案:采用分布式专用处理器阵列,相当于具有超大规模的处理器集群,以并行运行软件仿真器;采用定制FPGA组成阵列,通过附加的信号通道和附加的布线资源,把信号全部存储到外部存储器;采用通用FPGA组成阵列,通过克隆影子资源并存储和转存到外部存储器。或者用FPGA提供的扫描链读出写入能力,把信号读出存储到外部存储器。

专用处理器阵列的优势是信号可探测能力非常强大,但缺点是运行速度很慢,功耗非常大,并且需要投入专用处理器ASIC开发,升级成本非常大。定制FPGA阵列的优势是运行速度快,缺点是需要投入开发定制FPGA,升级成本不菲。通用FPGA阵列的优势是速度快,成本低,缺点是信号可探测能力较弱。

在通用FPGA阵列的方案中,实现信号全可视,一般有两种方法:

克隆影子资源:通过对待测信号的所有触发器信号,都输出到一个影子寄存器,再通过专用逻辑逐个转存到外部存储器中。组合信号通过软件后期,由触发器信号推算出来。这种方法基本不降低待测设计的运行速度,需要消耗大量的影子逻辑,导致待测逻辑可用的FPGA资源非常低(低至<30%)。同时,在运行后需要显示信号时,由于需要重新推算组合逻辑,因此显示信号的准备时间非常漫长。

FPGA扫描链读出/写入资源:FPGA厂家都有提供内部资源的读出/写入通道,可以在普通的逻辑资源网络之外的额外通道对寄存器(DFF),逻辑资源(LUT),内置SRAM(BRAM)等逻辑进行直接的读出或者写入,(可以理解为一个上帝视角的信号通道)例如,XILINX称这个功能为Configuration Readback Capture。这个通道一般是用于FPGA的配置用的,但硬件仿真器也可以利用这个通道来实现读取到任意内部信号。这种方法称为动态探针探测方法,动态探针探测方法不消耗FPGA资源,但是,由于读取通道采用扫描链串行读取方式,速度极慢,如采用此通道读取,运行速度低至Hz级别。 所以,常见的硬件仿真器只是用动态探针来取单次的信号值,当用来连续取信号的时候,运行速度会降低到极低水平。

发明内容

本发明的目的是针对上述现有技术中通用FPGA实现信号全可视速度慢耗时长的技术问题,提供一种可以快速的回溯查看任一个时钟周期的全部仿真数据的数字产品的仿真信号查看方法及系统。

本发明实施例中,提供了一种数字产品的仿真信号查看方法,其包括:

对数字产品进行FPGA仿真时,实时读取数字产品的所有外部端口的状态数据并记录,同时,每间隔一段时间读取一次数字产品的全部内部状态数据并记录;

仿真完成后,当需要回溯查看数字产品的某个时钟周期的数据时,在记录的仿真数据中,读取此时钟周期前的最后一个时间点存储的数字产品的内部状态数据和所述时间点的外部端口状态数据;

将数字产品载入到软件仿真器中,并把所述时间点记录的外部端口状态数据和内部状态数据设置为数字产品的初始状态,启动软件仿真器并运行到需要查看的时钟周期。

本发明实施例中,对数字产品的外部端口状态数据和内部状态数据进行记录时,将数字产品的外部端口数据和内部状态数据以时钟周期序号作为时间戳保存为有序的结构化数据。

本发明实施例中,采用静态探针探测方法读取数字产品的所有的外部端口状态数据。

本发明实施例中,采用动态探针探测方法读取数字产品的全部内部状态数据。

本发明实施例中,每间隔一段时间读取一次数字产品的全部内部状态数据时,每次的间隔时间相同。

本发明实施例中,每次的间隔时间为1百万个时钟周期。

本发明实施例中,每间隔一段时间读取一次数字产品的全部内部状态数据时,每次的间隔时间不同。

本发明实施例中,还提供了一种数字产品的仿真系统,其包括FPGA、软件仿真器、控制器、软件仿真器和存储设备,

所述FPGA,用于装载数字产品并进行仿真验证;

所述软件仿真器,用于通过软件模拟的方式对数字产品进行仿真验证;

所述控制器,用于在所述数字产品进行FPGA仿真时,实时读取数字产品的所有外部端口的状态数据,并且每间隔一段时间读取一次数字产品的全部内部状态数据;

所述存储设备,用于存储控制器读取的仿真数据;

在仿真完成后,当需要回溯查看数字产品的某个时钟周期的数据时,所述控制器在所述存储设备记录的仿真数据中,读取此时钟周期前的最后一个时间点记录的数字产品的内部状态数据和所述时间点的外部端口状态数据,然后将数字产品载入到软件仿真器中,并把所述时间点记录的外部端口状态数据和内部状态数据设置为数字产品的初始状态,启动软件仿真器并运行到需要查看的时钟周期。

本发明实施例中,所述控制器读取数字产品的外部端口状态数据和内部状态数据后,将数字产品的外部端口数据和内部状态数据以时钟周期序号作为时间戳处理为有序的结构化数据并保存在所述存储设备中。

本发明实施例中,所述控制器采用静态探针探测方法读取数字产品的所有的外部端口状态数据,采用动态探针探测方法读取数字产品的全部内部状态数据。

与现有技术相比较,在本发明的数字产品的仿真信号查看方法和系统中,对数字产品进行FPGA仿真时,实时读取数字产品的所有外部端口的状态数据并记录,同时,每间隔一段时间读取一次数字产品的全部内部状态数据并记录;仿真完成后,当需要回溯查看数字产品的某个时钟周期的数据时,在记录的仿真数据中,读取此时钟周期前的最后一个时间点存储的数字产品的内部状态数据和所述时间点的外部端口状态数据,然后将数字产品载入到软件仿真器中,并把所述时间点记录的外部端口状态数据和内部状态数据设置为数字产品的初始状态,启动软件仿真器并运行到需要查看的时钟周期,通过软件仿真器可以实时查看和记录需要查看的时钟周期的数据,节省了在所述时间点前的软件仿真器的运行时间,从而可以节省查看数据的时间。

附图说明

图1是本发明实施例的数字产品的仿真系统的结构示意图。

图2是本发明实施例的数字产品的仿真信号查看方法的流程图。

具体实施方式

如图1所示,本发明实施例中,提供了一种数字产品的仿真系统,其包括FPGA、软件仿真器、控制器和存储设备。所述FPGA用于装载数字产品并进行仿真验证。所述软件仿真器用于通过软件模拟的方式对数字产品进行仿真验证。所述控制器用于读取所述FPGA的仿真数据,所述存储设备用于存储FPGA的仿真数据。

如图2所示,对数字产品进行FPGA仿真时,所述控制器采用静态探针探测方法实时读取数字产品的所有外部端口的状态数据,同时,所述控制器采用动态探针探测方法每间隔一段时间读取一次数字产品的全部内部状态数据。同时,所述控制器将将数字产品的外部端口数据和内部状态数据以时钟周期序号作为时间戳处理为有序的结构化数据并保存在所述存储设备中。由于保存的数据中包括以时钟周期序号作为时间戳,以便于后续进行数据查询时,可查询到对应时钟周期的数据。

需要说明的是,对数字产品进行FPGA仿真时,将数字产品加载到FPGA中,然后设置初始运行参数即可。读取数字产品的所有外部端口的状态数据时,由于采用静态探针探测方法,外部端口已通过引线引出,因此可以直接实时读取,无任何延时。读取数字产品的全部内部状态数据时,由于采用动态探针探测方法,读取通道采用扫描链串行读取方式,速度极慢,每读取一次数字产品的全部内部状态数据需要耗费大量的时间,因此,不能实时读取数字产品的全部内部状态数据,没每间隔一段时间读取一次即可。

每间隔一段时间读取一次数字产品的全部内部状态数据时,每次的间隔时间相同,例如,可以设定为每次的间隔时间为1百万个时钟周期。每间隔一段时间读取一次数字产品的全部内部状态数据时,每次的间隔时间也可以不同,比如,在仿真初期,可以将间隔的时间设定的大一点,比如1千万个时钟周期,在仿真后期,可以将间隔的时间设定的小一点,比如1百万个时钟周期。

仿真完成后,当用户需要回溯查看数字产品的某个时钟周期的数据时,所述控制器在记录的仿真数据中,读取此时钟周期前的最后一个时间点存储的数字产品的内部状态数据和所述时间点的外部端口状态数据。

然后将数字产品载入到软件仿真器中,并把所述时间点记录的外部端口状态数据和内部状态数据设置为数字产品的初始状态,启动软件仿真器并运行到需要查看的时钟周期,通过软件仿真器可以实时查看和记录需要查看的时钟周期附近的数据,节省了在所述时间点前的软件仿真器的运行时间,从而可以节省查看数据的时间。

综上所述,在本发明的数字产品的仿真信号查看方法和系统中,对数字产品进行FPGA仿真时,实时读取数字产品的所有外部端口的状态数据并记录,同时,每间隔一段时间读取一次数字产品的全部内部状态数据并记录;仿真完成后,当需要回溯查看数字产品的某个时钟周期的数据时,在记录的仿真数据中,读取此时钟周期前的最后一个时间点存储的数字产品的内部状态数据和所述时间点的外部端口状态数据,然后将数字产品载入到软件仿真器中,并把所述时间点记录的外部端口状态数据和内部状态数据设置为数字产品的初始状态,启动软件仿真器并运行到需要查看的时钟周期,通过软件仿真器可以实时查看和记录需要查看的时钟周期的数据,节省了在所述时间点前的软件仿真器的运行时间,从而可以节省查看数据的时间。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于FPGA的扩展卡尔曼滤波器电路结构设计方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类