CN104504187A - 一种基于串行通信接口的fpga在线验证结构和方法 - Google Patents
一种基于串行通信接口的fpga在线验证结构和方法 Download PDFInfo
- Publication number
- CN104504187A CN104504187A CN201410764848.1A CN201410764848A CN104504187A CN 104504187 A CN104504187 A CN 104504187A CN 201410764848 A CN201410764848 A CN 201410764848A CN 104504187 A CN104504187 A CN 104504187A
- Authority
- CN
- China
- Prior art keywords
- module
- signal
- test vector
- debug command
- environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012795 verification Methods 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004891 communication Methods 0.000 title claims abstract description 15
- 238000012360 testing method Methods 0.000 claims abstract description 128
- 239000013598 vector Substances 0.000 claims abstract description 92
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000012544 monitoring process Methods 0.000 claims description 54
- 238000005086 pumping Methods 0.000 claims description 22
- 230000004936 stimulating effect Effects 0.000 claims description 22
- 238000004088 simulation Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 12
- 230000005284 excitation Effects 0.000 claims description 11
- 238000005070 sampling Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 13
- 230000003139 buffering effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 102000004357 Transferases Human genes 0.000 description 1
- 108090000992 Transferases Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了基于串行通信接口的FPGA在线验证结构和方法,该结构包括:软件仿真环境、硬件测试环境和物理通道,所述软件仿真环境被配置成通过所述物理通道与所述硬件测试环境进行信号的交互,其中,所述软件仿真环境产生总线周期的测试向量和调试命令,且接收反馈信号以波形方式显示;所述硬件测试环境接收所述测试向量和调试命令,并发送所述反馈信号。该验证结构和方法既能有效地提供FPGA在线验证平台,模拟集成电路模块或芯片的工作过程,又具有平台可重用的特点,不针对特定的模块而设计,而且验证人员可以直观地监测和配置被测模块的端口状态。
Description
技术领域
本发明涉及FPGA仿真调试技术,具体地,涉及一种基于串行通信接口的FPGA在线验证结构和方法。
背景技术
随着集成电路设计方法的不断的创新和芯片制造技术的不断提高,使得其功能越来越强大,设计难度和复杂程度也随之提高。集成电路从ASIC阶段进入到SoC阶段,SoC是指在单一芯片上集成了MCU、DSP、模拟和数字电路、存储器、I/O接口、信号采集和转换等功能的片上系统,它可以在单一的芯片上完成信号的采集、转换、处理、存储和输入输出等功能,因此极大地缩小了系统的空间占用,减少了多个芯片之间的通信延时,提高了整个系统的性能。SoC设计的基础是IP核设计及其复用技术,由于SoC的结构相当复杂,设计人员从零开始实现数百万门的系统级芯片,会花费大量的时间和资源,最终影响芯片的生产销售,降低产品的竞争力。解决方案是在SoC设计过程中使用已有的集成电路模块,这些可以被多次调用的模块称之为IP核。IP核复用有效地缩短了系统设计周期、提高了设计效率、降低了设计复杂度。另一方面,FPGA的出现使得硬件具备可重构、可编程、可升级、可裁减、可扩充等优点,让硬件设计工作变得更加灵活。
采用FPGA能够实现IP核RTL硬件模型来模拟真实芯片,FPGA验证不仅具有较高的验证精度,并且运行速度不会随着设计复杂度的增加而降低,但是FPGA验证需要完整的验证平台的支持,从而产生验证所需的激励信号并对端进行实时监测,现有的验证平台一方面不具备友好的人机交互界面,对于验证人员来说,不能方便快捷地对其进行配置;另一方面,验证平台不具备良好的激励监测机制,不能有效地监测被测系统或多层次被测模块的内部信号和寄存器的值;最后,验证平台需要针对不同的被测系统或模块不断地更改结构,反而增加了验证的周期。验证平台的可配置性、激励监测机制和验证平台重用性的问题,已经成为提高IP验证效率的瓶颈。在现有的技术相关文献中,专利“现场可编程门阵列原型验证装置及验证方法”(专利申请号201110177368.1,公开号CN102855338A)公开了一种现场可编程门阵列原型验证装置及验证方法,最终提高FPGA验证的可操作性和效率。该专利的不足之处在于:未给出有效的FPGA原型监测信号传输方法;此外,验证人员无法通过其方法快捷方便地对被监测信号进行配置和分析。专利“一种FPGA仿真装置及其方法”(专利申请号200710129706.8,公开号CN101093521B)公开了一种FPGA仿真装置及其方法,取得了基于特征字的FPGA设计仿真对于效率上的进步,可按各个测试用例直接仿真求得结果。该专利的不足之处在于:重点倾向于FPGA验证软件端仿真器的处理方法,而FPGA硬件端被测模块的激励信号输入和监测信号的采集方式未提及;在仿真器的验证结果输出模块的设计中,验证结果的输出并不直观,验证人员不可方便地对结果进行分析。
发明内容
本发明的目的是克服验证平台的可配置性差、激励监测机制效率低和验证平台重用性的问题,提供一种基于串行通信接口的FPGA在线验证结构和方法,该验证结构和方法既能有效地提供FPGA在线验证平台,模拟集成电路模块或芯片的工作过程,又具有平台可重用的特点,不针对特定的模块而设计,而且验证人员可以直观地监测和配置被测模块的端口状态。
为了实现上述目的,本发明提供了一种基于串行通信接口的FPGA在线验证结构,该结构包括:软件仿真环境、硬件测试环境和物理通道,所述软件仿真环境被配置成通过所述物理通道与所述硬件测试环境进行信号的交互,其中,所述软件仿真环境产生总线周期的测试向量和调试命令,且接收反馈信号以波形方式显示;所述硬件测试环境接收所述测试向量和调试命令,并发送所述反馈信号。
优选地,所述的软件仿真环境包括:序列产生模块,所述的序列产生模块被配置成产生所述测试向量和调试命令,并设定激励端口和监测端口;
序列发送模块,所述的序列发送模块被配置成连接于所述序列产生模块,将所述测试向量按时序发送到所述物理通道;
信号接收模块,所述的信号接收模块被配置成连接于所述物理通道,以接收所述反馈信号,并将所述反馈信号存储到软件仿真环境内部;
波形显示模块,所述的波形显示模块被配置成连接于所述信号接收模块,以接收所述反馈信号并将所述反馈信号以波形方式显示输出。
优选地,所述硬件测试环境包括:输入缓冲模块,所述的输入缓冲模块被配置成缓存串行传输后的所述测试向量和调试命令;激励模块,所述的激励模块被配置成连接于所述输入缓冲模块,以配置测试向量,并将激励信号解析成测模块加载格式,且产生与所述被测模块相应的时钟和复位信号;被测模块,所述的被测模块被配置成连接于所述激励模块以接收激励信号;监测模块,所述的监测模块被配置成连接于所述被测模块,并根据所述调试指令中的预设监测时间间隔捕获所述被测模块的响应信号;输出缓冲模块,所述的输出缓冲模块被配置成连接于所述监测模块,以缓存串行传输后的所述反馈信号。
优选地,所述被测模块为单个的原子模块或多个层次的复杂模块。
优选地,所述输入缓冲器包括:输入缓冲控制器、与所述输入缓冲控制器耦接的延迟缓冲器和向量值缓冲器,所述输入缓冲控制器被配置成接收测试向量或调试命令并读出或写入所述延迟缓冲器和向量值缓冲器中。
优选地,所述激励模块包括:时钟信号产生模块、延迟时间处理模块和测试向量加载模块,所述时钟信号产生模块被配置成连接于所述被测模块,以产生时钟信号提供给所述被测模块;延迟时间处理模块被配置成处理输入的延迟时间,并判断延迟给出缓冲器读信号和仿真使能信号的延迟时间;测试向量加载模块,在仿真使能信号等于1时,所述测试向量加载模块将所述测试向量提供给所述被测模块DUT110。
优选地,所述监测模块包括仿真时间停止模块、定时采样模块和反馈信号存储模块。
优选地,所述的物理通道包括接收模块、波特率发生模块和发送模块。
本发明提供一种基于串行通信接口的FPGA在线验证方法,该方法包括:使用上述的FPGA在线验证结构,
S101,将软件仿真环境中设置有测试向量和调试命令;
S102,加载所述测试向量和调试命令,并将所述测试向量和调试命令生成一个数据结构;
S103,将加载后的所述测试向量和调试命令通过预先设置的所述激励端口和监测端口发送给物理通道;
S104,所述物理通道将所述测试向量和调试命令发送给硬件测试环境;
S105,所述硬件测试环境处理所述测试向量和调试命令,并通过所述物理通道将反馈信号发送给所述软件仿真环境;
S106,所述软件仿真环境根据所述测试向量、调试命令以及反馈信号绘制波形。
优选地,在步骤S105中,所述硬件测试环境处理所述测试向量和调试命令的方法包括:
S201,激励模块根据接收到的所述测试向量和调试命令配置需要监测的被测模块,包括被测模块的输入信号、需要监测的输出信号、多层次被测模块的内部信号和寄存器的值,并发送激励信号给所述被测模块;
S202,检测模块加载所述激励信号,并将监测所述被测模块的反馈信号通过所述物理通道将反馈信号发送给所述软件仿真环境;
S203,判断所述监测命令指定的时钟周期采样频率是否结束,当没有结束的时,则返回步骤S202继续加载下一序列的激励信号。
通过上述实施方式,本发明的基于串行通信接口的FPGA在线验证结构和方法的信号数据通过事件和命令在软件仿真环境和硬件测试环境中进行信息的交互和控制,软件仿真环境控制硬件测试的过程,一方面用于产生总线周期的测试序列,且序列被转换成规范的待发送信号后用于驱动对应的硬件执行,另一方面用于接收反馈信号并以波形方式显示,硬件测试环境一方面从软件仿真环境中获取激励信号和调试命令,加载激励信号至被测模块上,另一方面用于采样总线周期的反馈信号,并返回给软件仿真环境,通过这样的方式验证人员可以直观地监测和配置被测模块的端口状态。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是说明本发明的一种优选实施方式的在线验证结构的结构框图;
图2是说明本发明的一种具体实施方式的软件端软件仿真环境的处理流程图;
图3是说明本发明的一种优选实施方式的FPGA硬件端测试环境的处理流程图;
图4(a)为本发明的优选实施方式的一种测试向量的编码格式图;
图4(b)为本发明的优选实施方式的一种调试命令的编码格式图;
图5为本发明的优选实施方式的一种FPGA硬件端测试环境的详细结构图;
图6为本发明的优选实施方式的一种输入缓冲模块的结构图;
图7为本发明的优选实施方式的一种激励模块的结构图;
图8为本发明的优选实施方式的一种监测模块的结构图;
图9为本发明的优选实施方式的一种输出缓冲模块的结构图;
图10为本发明的优选实施方式的一种串行端口UART模块的结构图;
图11为本发明的优选实施方式的一种串口接收状态转换图;
图12为本发明的优选实施方式的一种串口接收状态转换图。
附图标记说明
100软件仿真环境 200硬件测试环境
300物理通道 104序列产生模块
105序列发送模块 106信号接收模块
107波形显示模块 108输入缓冲模块
109激励模块 110被测模块
111监测模块 113时钟管理单元
112输出缓冲模块 401延迟缓冲器
402向量值缓冲器 403输入缓冲控制器
501时钟信号产生模块 502延迟时间处理模块
503测试向量加载模块 601仿真时间停止模块
602定时采样模块 603反馈信号存储模块
801接收模块 802波特率发生模块
803发送模块 21空闲
22起始 23转移
24校验 25停止
11空闲 12起始位
13转移 14校验
15无效。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
本发明中用到的专业术语和一些重要缩写如下所示:FPGA:FieldProgrammable Gate Array,现场可编程门阵列,一种可编程芯片。ASIC:Application Specific Integrated Circuit,专用集成电路,一种为专门目的而设计的集成电路。SoC:System on a Chip,片上系统,一种技术或者一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。MCU:Micro Control Unit,微控制单元,一种芯片级的微型计算机,应用于不同的工业控制场合。DSP:Digital Signal Processing,数字信号处理器,一种用于数字信号处理运算的微处理器。IP:Intellectual Property,知识产权。DUT:Design Under Test,待测设计。CMU:Clock Management Unit,时钟管理单元。UART:Universal Asynchronous Receiver/Transmitter,通用异步收发传输器;结合缩写将更加方便对本发明进行进一步的说明。
本发明提供一种基于串行通信接口的FPGA在线验证结构,该结构包括:软件仿真环境100、硬件测试环境200和物理通道300,所述软件仿真环境100被配置成通过所述物理通道300与所述硬件测试环境200进行信号的交互,其中,所述软件仿真环境100产生总线周期的测试向量和调试命令,且接收反馈信号以波形方式显示;所述硬件测试环境200接收所述测试向量和调试命令,并发送所述反馈信号。
本发明在线验证的结构的信号数据通过事件和命令在软件仿真环境100和硬件测试环境200中进行信息的交互和控制,软件仿真环境100控制硬件测试的过程,一方面用于产生总线周期的测试序列,且序列被转换成规范的待发送信号后用于驱动对应的硬件执行,另一方面用于接收反馈信号并以波形方式显示,硬件测试环境200一方面从软件仿真环境100中获取激励信号和调试命令,加载激励信号至被测模块110上,另一方面用于采样总线周期的反馈信号,并返回给软件仿真环境100,通过上述实施方式,本发明的FPGA在线验证结构能有效地提供FPGA在线验证平台,模拟集成电路模块或芯片的工作过程,又具有平台可重用的特点,不针对特定的模块而设计,而且验证人员可以直观地监测和配置被测模块110的端口状态。
在本发明的一种具体实施方式中,所述软件仿真环境100运行在PC端,包括以下四个模块:序列产生模块104,所述的序列产生模块104被配置成产生所述测试向量和调试命令,并设定激励端口和监测端口;序列发送模块105,所述的序列发送模块105被配置成连接于所述序列产生模块104,将所述测试向量按时序发送到所述物理通道300,在此过程中不仅要保证测试向量不丢失,而且要保证测试向量按正常的时序进行传输;信号接收模块106,所述的信号接收模块106被配置成连接于所述物理通道300,以接收所述反馈信号,并将所述反馈信号从物理通道300上传输且存储到所述软件仿真环境100中的内部;波形显示模块107,所述的波形显示模块107被配置成连接于所述信号接收模块106,以接收所述反馈信号并将所述反馈信号以波形方式显示输出,测试人员可以方便、直观地进行验证结果的观察。
在本发明的一种具体实施方式中,图5为本发明硬件端测试环境的详细结构图,所述硬件测试环境200运行在FPGA端,包括:输入缓冲器108,所述的输入缓冲器108被配置成缓存串行传输后的所述测试向量和调试命令;激励模块109,所述的激励模块109被配置成连接于所述输入缓冲模块108,以配置测试向量,并将激励信号解析成测模块加载格式,且产生与所述被测模块110相应的时钟和复位信号;被测模块110,所述的被测模块110被配置成连接于所述激励模块109以接收激励信号;监测模块111,所述的监测模块111被配置成连接于所述被测模块110,并根据所述调试指令中的预设监测时间间隔捕获所述被测模块110的响应信号;输出缓冲模块112,所述的输出缓冲模块112被配置成连接于所述监测模块111,以缓存串行传输后的所述反馈信号。
其中,如图5中所示的时钟管理单元113主要生成时钟信号CLK和复位信号RST_n,提供给各个需要的内部模块,物理通道300发出的接收数据信号Rxd_data和接收数据准备信号Rxd_data_rdy作为输入缓冲模块108的输入信号,同时发送数据忙信号Txd_busy作为输出缓冲模块112的输入信号,输出缓冲模块112的输出信号为发送数据信号Txd_data和发送使能信号Txd_en,激励模块109和监测模块111的缓冲器读信号Buffer_read分别作为输入缓冲模块108和输出缓冲模块112的输入信号,用来控制缓冲器是否可以进行读操作。接收的数据经过输入缓冲器进行分析控制之后,将其中的时间精度信号Timeprecision、停止信号Stop、时间单元信号TimeUnit和延迟信号Delay提供给监测模块111处理,将时钟周期信号ClockCycle、时间单元信号TimeUnit、延迟信号Delay和向量值信号VectorValue提供给激励模块109进行处理。被测模块110接收来自激励模块109的激励信号DUT_simulus和时钟信号DUT_clock,并将工作过程中需要监测的信号DUT_monitor发送给监测模块111。监测模块111处理来自各个模块的信号后,将响应值ResponseValue发送给输出缓冲模块112处理。在该种优选实施方式中,所述被测模块110为单个的原子模块或多个层次的复杂模块。
在该种实施方式中,图6为输入缓冲模块108的结构图,所述输入缓冲模块108包括:输入缓冲控制器403、与所述输入缓冲控制器耦接的延迟缓冲器401和向量值缓冲器402,所述输入缓冲控制器403被配置成接收测试向量或调试命令并读出或写入所述延迟缓冲器401和向量值缓冲器中402,输入缓冲模块工作状态分为写缓冲和读缓冲。当为写缓冲时,若复位信号RST=1,则初始化延迟缓冲器401和向量值缓冲器402。若复位信号RST=0,则开始接收测试向量或调试命令。一旦接收到1个字节的数据Rxd_data,且最高位Rxd_data[7]=0时,则接收并存储测试向量至延迟缓冲器401和向量值缓冲器402的尾部Tail。最高位Rxd_data[7]=1时,则接收调试命令并发送给激励模块109。当为读缓冲时缓冲读信号Buffer_Read=1,测试向量从延迟缓冲器401和向量值缓冲器402的头部Head开始读取,并且发送至激励模块109。
在一种优选实施方式中,图9为输出缓冲模块112的结构图,包括反馈信号缓冲器701和输出缓冲控制器702。当为写缓冲时,接收并存储反馈信号ResponseValue至输出反馈信号缓冲器701的尾部Tail。当为读缓冲时,读取反馈信号缓冲器701头部Head的反馈信号,并通过物理通道300发送至软件仿真环境100。
在该种实施方式中,图7为输入激励模块109的结构图,所述激励模块109包括:时钟信号产生模块501、延迟时间处理模块502和测试向量加载模块503,所述时钟信号产生模块501被配置成连接于所述被测模块110,以产生时钟信号提供给所述被测模块110;延迟时间处理模块502被配置成处理输入的延迟时间,并判断延迟给出缓冲器读信号和仿真使能信号的延迟时间;测试向量加载模块503,在仿真使能信号等于1时,所述测试向量加载模块将所述测试向量提供给所述被测模块110。
在该种实施方式中,图8为监测模块111的结构图,所述监测模块111包括仿真时间停止模块601、定时采样模块602和反馈信号存储模块603,仿真时间停止模块601作为仿真时间定时器,为了限制输出缓冲器存储的大小和保证缓冲器不溢出,当输入的停止信号Stop=0,则使时间使能信号Timing_en=1,否则当停止信号Stop=1,则开始定时计数。一旦时间计数完成,则时间使能信号Timing_en=0。定时采样模块602也作为定时器,其工作时钟周期为采样周期TimePrecision,初始化时缓冲器写信号Buffer_Write=0,监测使能信号Monitor_en=0。当缓冲器写信号Buffer_Write=1时,存储响应信号的值给输出缓冲器112,然后再将缓冲器写信号置零,即Buffer_Write=0,且定时器开始工作。一旦定时时间完成,则使监测使能信号置位,即Monitor_en=1。此处理流程会不断地重复直到输出缓冲模块112满队列或者监测完成。反馈信号存储模块603用来采用监测端口DUT_monitor的信号,并且在监测使能信号Monitor_en有效的情况下产生相应的反馈信号ResponseValue。
在本发明的一种具体实施方式中,所述的物理通道300包括接收模块801、波特率发生模块802和发送模块803,需要说明的是,软件仿真环境100和硬件测试环境200之间需要进行数据的传递,它们之间的数据通路要能够快速有序地传递数据,线验证平台采用串口进行双端通信,因此使用UART来发送和接收数据。如图10所示,UART主要由三部分组成,即接收模块801、发送模块803和波特率发生器802。波特率发生器802产生UART通信时所需的时钟CLK_16x(16倍波特率),用于驱动接收模块801和发送模块803。接收模块801将串行接收到的数据RXD和使能信号RXD_en以并行方式输出,包括输出数据信号RXD_data、输出数据使能信号RXD_data_rdy和输出数据错误信号RXD_err。发送模块803将待发送的并行信号发送数据TXD_data和发送数据使能TXD_en以串行方式输出,包括发送数据信号TXD和发送忙信号TXD_busy。
另外,通过上述实施方式,接收模块801的工作过程分为空闲11、起始位12、转移13、校验14和无效15五个状态,如图11所示。接收模块使能信号RXD_en置位,状态机处于空闲状态11时,不断监测串行输入信号RXD。如果RXD的电平出现由高到低的变化,则表明开始接收第一个起始位,转入起始位状态12。同时开始对起始位进行检测,以CLK_16x的频率对RXD连续采样8次,若出现高电平则为错误,则返回空闲状态11,且RXD_err信号端口置位,若都为低电平,则起始位确定,转入移位状态13。随后位计数器开始工作,控制数据接收的位数,最后一位数据位接收完成后转入校验状态14。校验状态14对奇偶校验位和停止位进行校验,若校验错误则本次接收的数据无效,转入无效状态15,若检验无错则数据接收完成,RXD_data_rdy信号被置位一个周期。在无效状态15中,RXD只有接收到高电平时才进入空闲状态11,等待下一次的数据接收。
同样的,与接收模块801相似,发送模块803的工作过程分为空闲21、起始22、转移23、校验24和停止25五个状态,如图11所示。发送模块803使能信号TXD_en为‘0’时,处于空闲状元21,TXD_en为‘1’时,转入起始状态22,发送起始位。随后转入转移状态22,发送数据位,最后一位数据发送完后转入校验状态24,发送校验位。最后在停止状态25发送停止位,并返回空闲状态21。至此一帧数据发送完毕,等待下一帧数据的发送。
本发明提供一种基于串行通信接口的FPGA在线验证方法,该方法包括:使用上述的FPGA在线验证结构,如图2和图3所示,
在软件仿真环境100中设置激励和监测端口,还包括选择串口、波特率、时钟触发放方式(高电平、低电平、上升沿、下降沿)、时钟周期、仿真时间单元、仿真时间精度、仿真时间、测试向量;
S101,将软件仿真环境100中设置有测试向量和调试命令;
S102,加载所述测试向量和调试命令,并将所述测试向量和调试命令生成一个数据结构;
S103,将加载后的所述测试向量和调试命令通过预先设置的所述激励端口和监测端口发送给物理通道300;
S104,所述物理通道300将所述测试向量和调试命令发送给硬件测试环境200;
S105,所述硬件测试环境200处理所述测试向量和调试命令,并通过所述物理通道300将反馈信号发送给所述软件仿真环境;
S106,所述软件仿真环境根据所述测试向量、调试命令以及反馈信号绘制波形。
通过上述方法,软件仿真环境100的序列产生模块需要产生大批的测试序列以提供给硬件测试环境200进行测试。其中测试序列分为测试向量和调试命令,测试向量的编码格式如图4(a)所示,调试命令的编码格式如图4(b)所示。由于采用串口UART所谓数据传输的方式,因此发送或接收的每一帧数据的长度为1个字节,即8位,编码格式使用每一帧数据的最高位来区分测试向量和调试命令,若最高位为“0”,则除最高位以外的数据作为测试向量,若最高位为“1”,则除最高位以外的数据作为调试命令,此外在图中显示的“x”定义为未知信号,可能为数据“1”,也可能为数据“0”。测试向量包括延迟时间和数据信号,延迟时间使用2帧的数据来表示,而数据信号使用的数据帧数根据需要发送的激励数据的不同而变化。调试命令包括停止命令、时间精度、时间单元和时钟周期,其中时间精度、时间单元和时钟周期内用2位数据来需要设置单元,单元有四种类别:“00”表示单元为秒s;“01”表示单元为毫秒ms;“10”表示单元为微秒us;“11”表示单元为纳秒ns。停止命令使用“11100000”来表示,指明数据发送何时停止。时间精度使用2帧,表示为“100xxxxx 1xxxxxxx”,其中第1帧的第3位和第4位表示单元,其他除最高位以外表示数据。时间精度使用2帧,表示为“101xxxxx 1xxxxxxx”,其中第1帧的第3位和第4位表示单元,其他除最高位以外表示数据。时钟周期使用2帧,表示为“110xxxxx 1xxxxxxx”,其中第1帧的第3位和第4位表示单元,其他除最高位以外表示数据。
在该种实施方式中,在步骤S105中,如图3所示,所述硬件测试环境200处理所述测试向量和调试命令的方法包括:
S301,激励模块根据接收到的所述测试向量和调试命令配置需要监测的被测模块110,包括被测模块110的输入信号、需要监测的输出信号、多层次被测模块110的内部信号和寄存器的值,并发送激励信号给所述被测模块110;
S302,检测模块加载所述激励信号,并将监测所述被测模块110的反馈信号通过所述物理通道300将反馈信号发送给所述软件仿真环境;
S303,判断所述监测命令指定的时钟周期采样频率是否结束,当没有结束的时,则返回步骤S303继续加载下一序列的激励信号。
本发明所述的一种基于串行通信接口的FPGA在线验证方法,包括软件仿真处理流程和硬件测试处理流程,如图2所示,软件仿真的处理流程还可以包括以下步骤,
S201,在软件仿真环境100中设置激励和监测端口,还包括选择串口、波特率、时钟触发放方式(高电平、低电平、上升沿、下降沿)、时钟周期、仿真时间单元、仿真时间精度、仿真时间、测试向量;
S202,加载设置好的测试向量和调试命令,分析并生成一个数据结构来表征这些测试向量和调试命令的参数;
S203,将加载好的测试向量和调试命令发送至物理通道300,再由物理通道300进行传输,最终发送给FPGA硬件测试环境200;
S3204,判断测试向量和调试命令是否完全发送完成,若未完成则返回步骤203继续发送,若已完成则继续步骤S205;
S205,当FPGA硬件测试环境200有反馈信号时,接收反馈信号并存储。
S206,根据接收回的反馈信号、发送的测试向量和调试命令绘制波形,波形以图形化界面的方式显示;
S207,判断反馈信号的监测是否结束,若未结束则返回步骤205,否则流程结束。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (10)
1.一种基于串行通信接口的FPGA在线验证结构,其特征在于,该结构包括:软件仿真环境(100)、硬件测试环境(200)和物理通道(300),所述软件仿真环境(100)被配置成通过所述物理通道(300)与所述硬件测试环境(200)进行信号的交互,其中,所述软件仿真环境(100)产生总线周期的测试向量和调试命令,且接收反馈信号以波形方式显示;所述硬件测试环境(200)接收所述测试向量和调试命令,并发送所述反馈信号。
2.根据权利要求1所述的FPGA在线验证结构,其特征在于,所述软件仿真环境(100)包括:序列产生模块(104),所述的序列产生模块(104)被配置成产生所述测试向量和调试命令,并设定激励端口和监测端口;
序列发送模块(105),所述的序列发送模块(105)被配置成连接于所述序列产生模块(104),将所述测试向量按时序发送到所述物理通道(300);
信号接收模块(106),所述的信号接收模块(106)被配置成连接于所述物理通道(300),以接收所述反馈信号,并将所述反馈信号存储到软件仿真环境(100)内部;
波形显示模块(107),所述的波形显示模块(107)被配置成连接于所述信号接收模块(106),以接收所述反馈信号并将所述反馈信号以波形方式显示输出。
3.根据权利要求1所述的FPGA在线验证结构,其特征在于,所述硬件测试环境(200)包括:输入缓冲模块(108),所述的输入缓冲模块(108)被配置成缓存串行传输后的所述测试向量和调试命令;
激励模块(109),所述的激励模块(109)被配置成连接于所述输入缓冲模块(108),以配置测试向量,并将激励信号解析成测模块加载格式,且产生与所述被测模块(110)相应的时钟和复位信号;
被测模块(110),所述的被测模块(110)被配置成连接于所述激励模块(109)以接收激励信号;
监测模块(111),所述的监测模块(111)被配置成连接于所述被测模块(110),并根据所述调试指令中的预设监测时间间隔捕获所述被测模块(110)的响应信号;
输出缓冲模块(112),所述的输出缓冲模块(112)被配置成连接于所述监测模块(111),以缓存串行传输后的所述反馈信号。
4.根据权利要求3所述的FPGA在线验证结构,其特征在于,所述被测模块(110)为单个的原子模块或多个层次的复杂模块。
5.根据权利要求3所述的FPGA在线验证结构,其特征在于,所述输入缓冲模块包括:输入缓冲控制器(403)、与所述输入缓冲控制器(403)耦接的延迟缓冲器(401)和向量值缓冲器(402),所述输入缓冲控制器(403)被配置成接收测试向量或调试命令并读出或写入所述延迟缓冲器(401)和向量值缓冲器(402)中。
6.根据权利要求3所述的FPGA在线验证结构,其特征在于,所述激励模块(109)包括:时钟信号产生模块(501)、延迟时间处理模块(502)和测试向量加载模块(503),所述时钟信号产生模块(501)被配置成连接于所述被测模块(110),以产生时钟信号提供给所述被测模块(110);延迟时间处理模块(502)被配置成处理输入的延迟时间,并判断延迟给出缓冲器读信号和仿真使能信号的延迟时间;测试向量加载模块(503),在仿真使能信号等于1时,所述测试向量加载模块(503)将所述测试向量提供给所述被测模块(110)DUT110。
7.根据权利要求3所述的FPGA在线验证结构,其特征在于,所述监测模块(111)包括仿真时间停止模块(601)、定时采样模块(602)和反馈信号存储模块(603)。
8.根据权利要求1所述的FPGA在线验证结构,其特征在于,所述的物理通道(300)包括接收模块(801)、波特率发生模块(802)和发送模块(803)。
9.一种基于串行通信接口的FPGA在线验证方法,其特征在于,该方法包括:使用权利要求1-8中任意一项所述的FPGA在线验证结构,
S101,将软件仿真环境(100)中设置有测试向量和调试命令;
S102,加载所述测试向量和调试命令,并将所述测试向量和调试命令生成一个数据结构;
S103,将加载后的所述测试向量和调试命令通过预先设置的所述激励端口和监测端口发送给物理通道(300);
S104,所述物理通道(300)将所述测试向量和调试命令发送给硬件测试环境(200);
S105,所述硬件测试环境(200)处理所述测试向量和调试命令,并通过所述物理通道(300)将反馈信号发送给所述软件仿真环境(100);
S106,所述软件仿真环境(100)根据所述测试向量、调试命令以及反馈信号绘制波形。
10.根据权利要求9所述的FPGA在线验证方法,其特征在于,在步骤S105中,所述硬件测试环境(200)处理所述测试向量和调试命令的方法包括:
S201,激励模块(109)根据接收到的所述测试向量和调试命令配置需要监测的被测模块(110),包括被测模块(110)的输入信号、需要监测的输出信号、多层次被测模块(110)的内部信号和寄存器的值,并发送激励信号给所述被测模块(110);
S202,检测模块加载所述激励信号,并将监测所述被测模块(110)的反馈信号通过所述物理通道(300)将反馈信号发送给所述软件仿真环境(100);
S203,判断所述监测命令指定的时钟周期采样频率是否结束,当没有结束的时,则返回步骤S202继续加载下一序列的激励信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410764848.1A CN104504187B (zh) | 2014-12-11 | 2014-12-11 | 一种基于串行通信接口的fpga在线验证结构和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410764848.1A CN104504187B (zh) | 2014-12-11 | 2014-12-11 | 一种基于串行通信接口的fpga在线验证结构和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104504187A true CN104504187A (zh) | 2015-04-08 |
CN104504187B CN104504187B (zh) | 2018-06-19 |
Family
ID=52945584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410764848.1A Active CN104504187B (zh) | 2014-12-11 | 2014-12-11 | 一种基于串行通信接口的fpga在线验证结构和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104504187B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106168996A (zh) * | 2016-07-01 | 2016-11-30 | 合肥海本蓝科技有限公司 | 一种数据回读系统 |
CN107528571A (zh) * | 2017-09-07 | 2017-12-29 | 成都航天通信设备有限责任公司 | 一种fpga仿真器切换装置及方法 |
CN108712165A (zh) * | 2018-05-31 | 2018-10-26 | 西安微电子技术研究所 | 一种用于异步交互接口监测的管脚复用电路 |
CN109541437A (zh) * | 2018-11-21 | 2019-03-29 | 武汉虹识技术有限公司 | 集成电路及系统 |
CN109710536A (zh) * | 2018-12-29 | 2019-05-03 | 湖北航天技术研究院总体设计所 | 一种自动提取fpga软件验证结果仿真波形的系统及方法 |
CN110688821A (zh) * | 2019-09-27 | 2020-01-14 | 北京中电华大电子设计有限责任公司 | 一种复杂算法的测试激励生成器及其控制方法 |
CN110888000A (zh) * | 2018-09-10 | 2020-03-17 | 北京松果电子有限公司 | Rbdp接口可用性检测方法、平台、显示终端及系统 |
CN111339731A (zh) * | 2020-01-21 | 2020-06-26 | 中国人民解放军军事科学院国防科技创新研究院 | 一种面向SoC的FPGA验证平台和验证方法 |
CN111428691A (zh) * | 2020-04-21 | 2020-07-17 | 硅谷数模(苏州)半导体有限公司 | 芯片的调试方法、芯片的调试装置、存储介质和处理器 |
CN112541311A (zh) * | 2020-12-02 | 2021-03-23 | 深圳市金泰克半导体有限公司 | 仿真测试方法、装置、计算机设备和存储介质 |
CN113640656A (zh) * | 2021-07-30 | 2021-11-12 | 四川芯测电子技术有限公司 | 基于延时的数字测试码型生成方法 |
CN113806279A (zh) * | 2021-10-19 | 2021-12-17 | 天津津航计算技术研究所 | 一种基于SystemC实现iMX6Q的SoC片上串口的建模方法 |
CN113821429A (zh) * | 2020-06-19 | 2021-12-21 | 比亚迪股份有限公司 | 车载软件开发仿真系统、方法 |
CN114330178A (zh) * | 2021-12-28 | 2022-04-12 | 杭州朗迅科技有限公司 | 一种嵌入式硬件电路调试验证的驱动系统 |
CN114697237A (zh) * | 2022-04-15 | 2022-07-01 | 北京广利核系统工程有限公司 | 总线通信周期的测试系统、方法 |
CN116880963A (zh) * | 2023-08-14 | 2023-10-13 | 芯华章智能科技(上海)有限公司 | 用于检测多个硬件仿真工具之间的连接错误的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7353484B1 (en) * | 2004-02-09 | 2008-04-01 | Altera Corporation | Methods and apparatus for variable latency support |
CN101262380A (zh) * | 2008-04-17 | 2008-09-10 | 中兴通讯股份有限公司 | 一种用于fpga仿真的装置及方法 |
CN101996262A (zh) * | 2009-08-12 | 2011-03-30 | 上海华虹集成电路有限责任公司 | 非接触式智能卡通用数字验证平台 |
CN104090740A (zh) * | 2014-05-27 | 2014-10-08 | 安徽师范大学 | 微控制器指令集的执行方法 |
-
2014
- 2014-12-11 CN CN201410764848.1A patent/CN104504187B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7353484B1 (en) * | 2004-02-09 | 2008-04-01 | Altera Corporation | Methods and apparatus for variable latency support |
CN101262380A (zh) * | 2008-04-17 | 2008-09-10 | 中兴通讯股份有限公司 | 一种用于fpga仿真的装置及方法 |
CN101996262A (zh) * | 2009-08-12 | 2011-03-30 | 上海华虹集成电路有限责任公司 | 非接触式智能卡通用数字验证平台 |
CN104090740A (zh) * | 2014-05-27 | 2014-10-08 | 安徽师范大学 | 微控制器指令集的执行方法 |
Non-Patent Citations (4)
Title |
---|
FULONG CHEN等: "FPGA-Based In-Circuit Verification of Digital Systems", 《ADVANCED MATERIALS RESEARCH》 * |
唐明: "基于FPGA与PC机串行通信UART模块设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
徐云云: "基于AMBA总线的UART IP设计与实现", 《中国优秀硕士学位论文 信息科技辑》 * |
朱勤等: "嵌入式UART的设计及FPGA验证", 《通信技术》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106168996A (zh) * | 2016-07-01 | 2016-11-30 | 合肥海本蓝科技有限公司 | 一种数据回读系统 |
CN107528571A (zh) * | 2017-09-07 | 2017-12-29 | 成都航天通信设备有限责任公司 | 一种fpga仿真器切换装置及方法 |
CN108712165B (zh) * | 2018-05-31 | 2021-08-31 | 西安微电子技术研究所 | 一种用于异步交互接口监测的管脚复用电路 |
CN108712165A (zh) * | 2018-05-31 | 2018-10-26 | 西安微电子技术研究所 | 一种用于异步交互接口监测的管脚复用电路 |
CN110888000B (zh) * | 2018-09-10 | 2022-02-08 | 北京小米松果电子有限公司 | Rbdp接口可用性检测方法、平台、显示终端及系统 |
CN110888000A (zh) * | 2018-09-10 | 2020-03-17 | 北京松果电子有限公司 | Rbdp接口可用性检测方法、平台、显示终端及系统 |
CN109541437A (zh) * | 2018-11-21 | 2019-03-29 | 武汉虹识技术有限公司 | 集成电路及系统 |
CN109710536A (zh) * | 2018-12-29 | 2019-05-03 | 湖北航天技术研究院总体设计所 | 一种自动提取fpga软件验证结果仿真波形的系统及方法 |
CN109710536B (zh) * | 2018-12-29 | 2022-03-18 | 湖北航天技术研究院总体设计所 | 一种自动提取fpga软件验证结果仿真波形的系统及方法 |
CN110688821A (zh) * | 2019-09-27 | 2020-01-14 | 北京中电华大电子设计有限责任公司 | 一种复杂算法的测试激励生成器及其控制方法 |
CN110688821B (zh) * | 2019-09-27 | 2023-10-13 | 北京中电华大电子设计有限责任公司 | 一种复杂算法的测试激励生成器及其控制方法 |
CN111339731A (zh) * | 2020-01-21 | 2020-06-26 | 中国人民解放军军事科学院国防科技创新研究院 | 一种面向SoC的FPGA验证平台和验证方法 |
CN111428691A (zh) * | 2020-04-21 | 2020-07-17 | 硅谷数模(苏州)半导体有限公司 | 芯片的调试方法、芯片的调试装置、存储介质和处理器 |
CN113821429A (zh) * | 2020-06-19 | 2021-12-21 | 比亚迪股份有限公司 | 车载软件开发仿真系统、方法 |
CN112541311A (zh) * | 2020-12-02 | 2021-03-23 | 深圳市金泰克半导体有限公司 | 仿真测试方法、装置、计算机设备和存储介质 |
CN112541311B (zh) * | 2020-12-02 | 2024-08-30 | 深圳市金泰克半导体有限公司 | 仿真测试方法、装置、计算机设备和存储介质 |
CN113640656A (zh) * | 2021-07-30 | 2021-11-12 | 四川芯测电子技术有限公司 | 基于延时的数字测试码型生成方法 |
CN113640656B (zh) * | 2021-07-30 | 2024-04-09 | 深圳速跃芯仪科技有限公司 | 基于延时的数字测试码型生成方法 |
CN113806279A (zh) * | 2021-10-19 | 2021-12-17 | 天津津航计算技术研究所 | 一种基于SystemC实现iMX6Q的SoC片上串口的建模方法 |
CN113806279B (zh) * | 2021-10-19 | 2024-04-30 | 天津津航计算技术研究所 | 一种基于SystemC实现iMX6Q的SoC片上串口的建模方法 |
CN114330178B (zh) * | 2021-12-28 | 2023-03-14 | 杭州朗迅科技有限公司 | 一种嵌入式硬件电路调试验证的驱动系统 |
CN114330178A (zh) * | 2021-12-28 | 2022-04-12 | 杭州朗迅科技有限公司 | 一种嵌入式硬件电路调试验证的驱动系统 |
CN114697237B (zh) * | 2022-04-15 | 2023-12-26 | 北京广利核系统工程有限公司 | 总线通信周期的测试系统、方法 |
CN114697237A (zh) * | 2022-04-15 | 2022-07-01 | 北京广利核系统工程有限公司 | 总线通信周期的测试系统、方法 |
CN116880963A (zh) * | 2023-08-14 | 2023-10-13 | 芯华章智能科技(上海)有限公司 | 用于检测多个硬件仿真工具之间的连接错误的方法 |
CN116880963B (zh) * | 2023-08-14 | 2024-03-15 | 芯华章智能科技(上海)有限公司 | 用于检测多个硬件仿真工具之间的连接错误的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104504187B (zh) | 2018-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104504187A (zh) | 一种基于串行通信接口的fpga在线验证结构和方法 | |
CN110046387B (zh) | 一种基于uvm的sm2模块验证平台及验证方法 | |
US10503848B2 (en) | Target capture and replay in emulation | |
CN102360329B (zh) | 总线监控与调试控制装置及进行总线监控与总线调试的方法 | |
CN102508753B (zh) | Ip核验证系统 | |
CN102004219B (zh) | 一种红外焦平面阵列探测器模拟装置及模拟方法 | |
CN109937418B (zh) | 用于仿真的基于波形的重构 | |
US20130064321A1 (en) | Methods for asynchronous serial data transmission using a synchronous serial interface | |
US20180113976A1 (en) | Flow Control In Networking System-On-Chip Verification | |
CN203260029U (zh) | 基于fpga的系统芯片原型验证调试装置 | |
CN103376340B (zh) | 一种转接板、多平台串行测试系统及方法 | |
CN204789908U (zh) | 基于LabVIEW的电路板自动测试系统 | |
CN115686655A (zh) | 用于gpu ip验证的联合仿真系统 | |
CN115688676A (zh) | 基于tlm的gpu联合仿真系统 | |
CN104200846A (zh) | 一种嵌入式prom测试系统及实现方法 | |
US8639853B2 (en) | Programmable waveform technology for interfacing to disparate devices | |
CN202267954U (zh) | 总线监控与调试控制装置 | |
CN107463759B (zh) | 一种计时器的仿真验证装置及仿真验证方法 | |
US20230035673A1 (en) | Information processing system, information processing apparatus, use method of information processing apparatus, user terminal, and program therefor | |
US9581643B1 (en) | Methods and circuits for testing partial circuit designs | |
CN105183954B (zh) | 一种基于pxi的串行总线健康监测平台 | |
CN115618800A (zh) | 基于dpi的gpu联合仿真系统 | |
Wiecha et al. | Architecture and design of a Bluetooth low energy controller | |
CN113204929B (zh) | 基于sv和uvm实现ahb vip的方法、电子装置及存储介质 | |
CN114868130A (zh) | 用于仿真中的通信链路错误恢复的回滚 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220207 Address after: 210000 nanshanhu Community Industrial Park, Jiangning street, Jiangning District, Nanjing, Jiangsu Province Patentee after: Nanjing Yunhai Zhichuang Computer Software Co.,Ltd. Address before: 241002 Science and Technology Service Department, No. 189 Jiuhua South Road, Yijiang District, Wuhu City, Anhui Province Patentee before: ANHUI NORMAL University |