实现数模混合型集成电路验证的方法及装置
技术领域
本发明涉及电子技术领域,尤其涉及一种实现数模混合型集成电路验证的方法及装置。
背景技术
随着微电子工艺制造技术和电子设计自动化技术的飞速发展,数模混合型集成电路已经得到了广泛地应用,所述的数模混合型集成电路将数字电路、模拟电路等集成在同一电路中,实现相应的功能,如ASIC(特定用途集成电路)等。为此,对所述数模混合型集成电路的验证成为集成电路设计过程中的关键。
目前,针对ASIC设计中RTL(电阻晶体管逻辑电路)代码可以采用FPGA(现场可编程门列阵)验证的方式进行验证,如图1所示,具体的验证的方法包括:将ASIC设计的RTL代码综合、布局布线后的网表下载到FPGA(或flash,闪存)中,主机侧通过主机接口将测试数据下载到SRAM(静态存储器)中,启动FPGA运行,运行结果存储在其他SRAM中,主机侧将结果读回,通过分析所述的结果,则可以获得针对ASIC设计中RTL代码的验证结果。
仍如图1所示,具体的ASIC验证处理过程如图2所示,包括:
步骤21:在进行ASIC设计时,首先进行系统设计;
步骤22:进行RTL代码设计与仿真;
步骤23:根据RTL代码设计及仿真结果进行FPGA综合与布局布线;
步骤24:进行FPGA验证及debug(调试)处理,如果在验证中发现问题,则通过TESTMODE(测试模式)来观测信号,进行局部分析,或通过重新引出中间观测信号进行分析后确定相应的问题所在;
步骤25:根据确定的问题进行调整,并重新进行综合、布线,来进一步debug(调试),确认bug(故障点)的位置。这样经过一系列的反复调整观测最终获得问题解决。
由上述现有技术的描述可以看出,上述ASIC的验证方法,debug的效率很低,一个80万门的ASIC设计,在查找一个bug时,需要反复多次进行调整与布线,而每一次综合布线如果采用奔腾2.0G CPU的计算机估计,则需要花费3-5小时的时间,即当前的ASIC验证架构不便于设计的调整与修改,当然也就不便于进行集成电路的验证。
而且,在上述ASIC验证方法中,在查找新的问题时,还要重新进行分析,修改,综合,布线,测试的处理过程,而没有充分的利用每次测试的数据,极大的降低了debug效率,进而延误了产品上市时间。
另外,在上述方法中,还通过增加中间引出信号来观测解决问题,或通过设计本身的TESTMODE来实现。反复抓取新的观测信号必将增加综合的时间,导致ASIC验证时间过长;而通过TESTMODE获取的信号往往又不足以说明问题,导致ASIC验证的准确性降低。
发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种实现数模混合型集成电路验证的方法及装置,以解决现有技术中所存在的ASIC验证过程复杂且消耗时间较长的问题。
本发明的目的是通过以下技术方案实现的:
本发明提供了一种实现数模混合型集成电路验证的方法,包括:
A、进行数模混合型集成电路的可编程逻辑门列阵FPGA验证过程,并保存该验证过程中的输入数据;
B、将所述的输入数据作为数模混合型集成电路前仿真的处理过程中的激励数据进行前仿真处理;
C、根据前仿真处理结果确定数模混合型集成电路的问题点。
所述的实现数模混合型集成电路验证的方法中,执行所述的步骤A之前还包括:
通过系统设计、寄存器传输级RTL代码设计与仿真,以及FPGA综合与布线确定待测试的数模混合型集成电路的FPGA。
所述的步骤A包括:
采用至少两个测例进行数模混合型集成电路的FPGA验证过程,并分别保存验证过程的输入数据;
所述的步骤B包括:
分别将所述的输入数据作为数模混合型集成电路前仿真的处理过程中的激励数据,并分别进行前仿真处理。
所述的实现数模混合型集成电路验证的方法还包括:
根据确定的问题点修改RTL代码设计,并重新进行FPGA综合与布线,并执行步骤A。
本发明还提供了一种实现数模混合型集成电路验证的装置,包括:
FPGA验证模块;用于对数模混合型集成电路的RTL代码进行验证处理;
FPGA验证输入数据获取模块:与FPGA验证模块相连,用于获取FPGA验证模块进行验证过程中的输入数据;
前仿真处理模块:根据所述的FPGA验证输入数据获取模块获取的输入数据进行对数模混合型集成电路进行前仿真处理。
所述的实现数模混合型集成电路验证的装置还包括:
存储模块:与所述的FPGA验证输入数据获取模块相连,用于保存获取的输入数据;
FPGA验证输入数据输出模块:用于读取存储模块中的FPGA验证输入数据,并输出给前仿真处理模块。
所述的存储模块为动态随机存储器DRAM,且所述的FPGA验证输入数据获取、输出模块为采用可编程逻辑器件CPLD实现。
所述的FPGA验证输入数据输出模块通过USB2.0接口将存储模块保存的输入数据输出。
由上述本发明提供的技术方案可以看出,由于本发明采用了充分利用每次测试数据的方式进行数模混合型集成电路的验证。因此,本发明提供了一种可以快速实现ASIC验证的方法及电路,从而有效地克服了现有技术所存在的验证过程耗时较长的问题,同时,极大降低了ASIC验证过程的复杂程度。
附图说明
图1为现有技术中利用FPGA验证ASIC的电路原理图;
图2为现有技术中进行ASIC设计及验证的流程图;
图3为本发明中进行ASIC设计及验证的流程图;
图4为本发明中利用FPGA验证ASIC的电路原理图。
具体实施方式
本发明的核心是利用硬件测试过程中的输入数据作为软测试处理过程(即前仿真过程)的输入数据进行测试,从而快速定位ASIC设计的各个故障点,提高了ASIC验证的速度及准确性。
本发明所述的方法的具体实现方式如图3所示,具体为:
(1)与现有技术相同,首先需要进行系统设计,RTL设计与仿真,以及FPGA综合与布线;
(2)完成FPGA综合与布线后,便可以进行基于不同的测例进行FPGA测试,为提高测试的准确性需要同时基于多个测例进行测试;
(3)在进行FPGA测试过程中保存各测例的输入数据;
(4)利用所述的各测例的输入数据作为ASIC的前仿真的激励,运行相应的应用软件进行软件测试,如果在FPGA测试过程中采用了多个测例进行的测试,则此时,需要将保存的输入数据分别作为应用软件的激励数据,并分别运行相应的应用软件;
所述的前仿真是指利用仿真软件进行功能仿真,并根据功能仿真验证逻辑功能是否正确;
采用了FPGA测试数据作为ASIC前仿真的激励数据可以在前仿真环境下对相应的问题进行重现,从而使得对问题的分析及解决提供了较大的方便,加快了解决问题的速度;
(5)根据前仿真测试结果确定ASIC的问题点,如果是FPGA测试过程中采用了多个测例,则该过程中可以同时确定出多组问题点,如图3中所示的,直接找出问题点1对应一组问题点,直接找出问题点2对应一组问题点,依次类推;
当然,如果在该过程中未找到问题点,则测试验证过程结束。
(6)根据确定的所有ASIC的问题点进行RTL的修改设计,并重新进行ASIC验证过程,重新执行步骤过程(1)。
本发明还提供了一种实现数模混合型集成电路验证的装置,具体包括:
FPGA验证模块;用于对数模混合型集成电路的RTL代码进行验证处理,该模块即为现有技术中的FPGA验证电路装置;
FPGA验证输入数据获取模块:与FPGA验证模块相连,用于获取FPGA验证模块进行验证过程中的输入数据,并发送给存储模块;
FPGA验证输入数据输出模块:用于读取存储模块中的FPGA验证输入数据,并输出给前仿真处理模块;
存储模块:与所述的FPGA验证输入数据获取模块相连,用于保存获取的输入数据,以备前仿真处理模块进行前仿真处理时调用;
前仿真处理模块:根据所述的FPGA验证输入数据获取模块获取的输入数据进行对数模混合型集成电路进行前仿真处理,具体为FPGA验证输入数据输出模块读取所述存储模块中的输入数据,并通过输出接口将所述的输入数据输出,用于ASIC前仿真的激励数据。
如图4所示,本发明中,采用EPM7256的CPLD实现FPGA测试输入数据获取模块和FPGA测试输入数据输出模块,以增加测试用代码调整的灵活性,使系统本身非常容易调整;采用DRAM(动态随机存储器)作为存储模块,可以充分存储海量信息;另外,还采用USB2.0接口作为FPGA测试输入数据输出模块的输出接口,从而提高数据传输数度与系统操作的便利性。
从上述结构可以看出,在现有的FPGA验证电路中增加CPLD与DRAM,以及USB2.0接口,可以极大的提高数据获取操作的灵活性,并为信号(即相应的数据)存储准备了物理空间。而且,每一次CPLD的综合与布线可以认为是零时间,即在3-50S可以完成,从而使得局部调整无需要对系统设计的RTL进行修改,也就是说,可以根据测试需要灵活地调整需要获取的FPGA测试过程中的输入参数,从而调整前仿真的激励数据。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。