CN111026590B - 接口电路的数据验证方法及平台 - Google Patents

接口电路的数据验证方法及平台 Download PDF

Info

Publication number
CN111026590B
CN111026590B CN201911089638.6A CN201911089638A CN111026590B CN 111026590 B CN111026590 B CN 111026590B CN 201911089638 A CN201911089638 A CN 201911089638A CN 111026590 B CN111026590 B CN 111026590B
Authority
CN
China
Prior art keywords
data
interface circuit
input
input data
verification
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.)
Active
Application number
CN201911089638.6A
Other languages
English (en)
Other versions
CN111026590A (zh
Inventor
王仙芳
胡涛
林晓志
周垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gowin Semiconductor Corp
Original Assignee
Gowin Semiconductor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Gowin Semiconductor Corp filed Critical Gowin Semiconductor Corp
Priority to CN201911089638.6A priority Critical patent/CN111026590B/zh
Publication of CN111026590A publication Critical patent/CN111026590A/zh
Application granted granted Critical
Publication of CN111026590B publication Critical patent/CN111026590B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

本发明公开了一种接口电路的数据验证方法及平台,在接收输入数据之后,模拟接口电路发送端的数据处理过程,得到中间数据;接收所述中间数据,并模拟接口电路接收端的数据处理过程,得到输出数据;监测并获取所述输入数据和所述输出数据,验证所述输入数据和所述输出数据是否一致。通过对接口电路发送端和接收端的数据处理过程的模拟,可以快捷、高效地对该接口电路数据传输的准确性进行验证。

Description

接口电路的数据验证方法及平台
技术领域
本发明涉及通信技术领域,尤其涉及一种接口电路的数据验证方法及平台。
背景技术
随着大数据的兴起以及信息技术的快速发展,数据传输对总线带宽的要求越来越高,并行传输技术的发展受到了很大限制,串行传输技术以其引脚数量少、扩展能力强、采用点对点的连接方式,而且能提供比并行传输更高带宽的优点被广泛用于高速传输领域。Serdes就是这种高速传输接口中的一种,Serdes(Serializer-Deserializer)是串行器(Serializer)和解串器(Deserializer)的简称。对于大批量数据传输来说,传输信道有各种干扰因素和不确定因素的存在,难以确保接收端接收的数据跟发送端发送的数据的一致性。
传统办法是采用verilog硬件描述语言搭建验证平台,通过查看仿真波形来判断收发数据是否一致。由于数据量比较庞大,通过查看波形的方法虽然可以比较直观地判断接收到的数据是否正确,但工作量太大不太现实。也有通过将输入输出数据打印到文本的方式,然后编写perl脚本来处理文本也是可以的,但是verilog硬件描述语言在做大量数据随机上特别是做带约束的随机不是很灵活,也不易维护。
发明内容
本发明实施例提供一种接口电路的数据验证方法及平台,以解决数据验证的效率和精度不高的问题。
一种接口电路的数据验证方法,包括:
接收输入数据,并模拟接口电路发送端的数据处理过程,得到中间数据;
接收所述中间数据,并模拟接口电路接收端的数据处理过程,得到输出数据;
监测并获取所述输入数据和所述输出数据,验证所述输入数据和所述输出数据是否一致。
一种接口电路的数据验证平台,用于实现上述数据验证方法,包括:
发送端模拟模块,用于接收输入数据,并模拟接口电路发送端的数据处理过程,得到中间数据;
接收端模拟模块,用于接收所述中间数据,并模拟接口电路接收端的数据处理过程,得到输出数据;
输入数据监测模块,用于监测所述发送端模拟模块接收到的输入数据;
输出数据监测模块,用于监测所述接收端模拟模块的输出数据;
数据验证模块,分别连接至输入数据监测模块和输出数据监测模块,用于获取所述输入数据和所述输出数据,并验证所述输入数据和所述输出数据是否一致。
上述接口电路的数据验证方法及平台中,在接收输入数据之后,模拟接口电路发送端的数据处理过程,得到中间数据;接收所述中间数据,并模拟接口电路接收端的数据处理过程,得到输出数据;监测并获取所述输入数据和所述输出数据,验证所述输入数据和所述输出数据是否一致。通过对接口电路发送端和接收端的数据处理过程的模拟,可以快捷、高效地对该接口电路数据传输的准确性进行验证。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中接口电路的数据验证方法的一流程图;
图2是本发明一实施例中接口电路的数据验证方法的另一流程图;
图3是本发明一实施例中接口电路的数据验证方法的另一流程图;
图4是本发明一实施例中接口电路的数据验证方法的另一流程图;
图5是本发明一实施例中接口电路的数据验证方法的另一流程图;
图6是本发明一实施例中接口电路的数据验证方法的另一流程图;
图7是本发明一实施例中接口电路的数据验证方法的另一流程图;
图8是本发明一实施例中接口电路的数据验证方法的另一流程图;
图9是本发明一实施例中接口电路的数据验证平台的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明一个具体实施例中,涉及一种接口电路的数据验证方法,如图1所示,该接口电路的数据验证方法包括:
S101:接收输入数据,并模拟接口电路发送端的数据处理过程,得到中间数据。
该输入数据可以为通过接口电路进行数据传输的通用数据,或者通过特定处理的测试数据。该输入数据可以通过Sequence组件产生,Sequence组件用于产生数据流,该数据流由多个transaction组成。Transaction通常是具有某种功能的一组信息封装起来的一个类,是在验证组件中流动的数据包,比如某种协议的数据包,该数据包中定义了原地址,目的地址,数据长度等信息并对数据长度做了约束。
该接口电路可以为用于主流的时分多路复用(TDM)、点对点(P2P)的串行通信技术中的数据传输。可选地,该接口电路可以为Serdes接口电路。其中,Serdes接口电路是串行器(Serializer)和解串器(Deserializer)的简称。Serdes接口电路在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,提升信号的传输速度,从而大大降低通信成本。具体地,Serdes接口电路包括Serdes发送端和Serdes接收端。
因此,在该步骤中,可以对输入数据模拟具体接口电路的发送端的数据处理过程,得到中间数据。可选地,可以通过UVM实现对接口电路的发送端的数据处理过程的模拟。UVM是一个以SystemVerilog类库为主体的验证平台开发框架,验证工程师利用其可重用组件可以构建具有标准化层次结构和接口的功能验证环境。UVM验证方法学有效结合了测试激励随机生成、自测试平台和随机化约束等方法,它采用最佳框架以实现覆盖率驱动的验证,使验证工程师通过采用高级验证技术来降低风险,满足缩短产品上市时间的迫切需求。
S102:接收所述中间数据,并模拟接口电路接收端的数据处理过程,得到输出数据。
在该步骤中,在对中间数据模拟接口电路发送端的数据处理过程,得到中间数据之后,再接收所述中间数据,并对所述中间数据模拟接口电路接收端的数据处理过程,得到输出数据。可选地,通过一个接收端模拟模块来接收该中间数据,并对所述中间数据模拟接口电路接收端的数据处理过程,得到输出数据。
同理地,该对所述中间数据模拟接口电路接收端的数据处理过程也可以通过UVM实现。
S103:监测并获取所述输入数据和所述输出数据,验证所述输入数据和所述输出数据是否一致。
对输入数据和输出数据进行监测,若监测到这两个数据的产生,即获取所述输入数据和所述输出数据,并且验证所述输入数据和所述输出数据是否一致,从而确定对应的接口电路的数据传输的准确性。
在本实施例中,在接收输入数据之后,模拟接口电路发送端的数据处理过程,得到中间数据;对所述中间数据模拟接口电路接收端的数据处理过程,得到输出数据;监测并获取所述输入数据和所述输出数据,验证所述输入数据和所述输出数据是否一致。通过对接口电路发送端和接收端的数据处理过程的模拟,可以快捷、高效地对该接口电路数据传输的准确性进行验证。
在一个实施例中,所述输入数据包括插入码。
插入码为在输入数据中插入的特定数据,用于时钟补偿。可选地,插入码可以采用8b/10b编解码技术中的K码。
在本实施例中,如图2所示,所述监测并获取所述输入数据和所述输出数据,验证所述输入数据和所述输出数据是否一致,包括:
S201:获取所述输入数据和所述输出数据,并将所述输入数据和所述输出数据中的插入码删除。
由于在接口电路中(例如:Serdes接口电路),输入数据在传输过程中可能插入或者删除了若干插入码,因此,在数据验证过程中,先将所述有效输入数据和所述有效输出数据中的插入码删除,以更好地进行实际有效的数据的比对。
S202:将删除所述插入码之后的所述输入数据和删除所述插入码之后的输出数据进行数据验证,得到数据验证结果。
在删除了插入码之后,可以将删除所述插入码之后的所述输入数据和删除所述插入码之后的输出数据进行数据验证,得到数据验证结果。可选地,可以将删除所述插入码之后的所述输入数据和删除所述插入码之后的输出数据输入至UVM平台中的记分板中进行数据验证,得到数据验证结果。数据验证结果可以包括数据验证一致和数据验证不一致。进一步地,若数据验证结果为数据验证不一致,还包括具体的比对信息,例如:出现不一致的具体位置。
在本实施例中,在获取所述输入数据和所述输出数据之后,将所述输入数据和所述输出数据中的插入码删除;再将删除所述插入码之后的所述输入数据和删除所述插入码之后的输出数据进行数据验证,得到数据验证结果。通过上述方法实现对接口电路的数据传输逻辑(输入数据和输出数据)进行数据验证,实现了对接口电路的数据传输的准确性的验证。进一步地,也提高了数据验证的效率,也提高了数据验证的精度。
在一个实施例中,所述输入数据还包括对齐码。
对齐码用于对有效数据进行定位和对齐。可选地,对齐码可以采用8b/10b编解码技术中的K码。
在本实施例中,如图3所示,所述将删除所述插入码之后的所述输入数据和删除所述插入码之后的输出数据进行数据验证,得到数据验证结果,包括:
S301:根据所述对齐码对删除所述插入码之后的输入数据进行数据提取,得到有效输入数据。
根据对齐码在删除所述插入码之后的输入数据中进行查找,在查找到对齐码之后,将删除所述插入码之后的输入数据中对齐码之后的数据确定为有效输入数据,并对该有效输入数据进行提取。具体地,先根据对齐码的数量来确定查找策略。可选地,输入数据中对齐码的数量为至少两个。两个对齐码之间的时间间隔应该大于一定的时钟周期。该时钟周期的个数可以根据具体电路结构而设定。可选地,两个对齐码之间的时间间隔应该大于16个时钟周期。若对齐码的数量为2个,则在查找到2个对齐码之后,即确定这2个对齐码之后的数据为删除所述插入码之后的输入数据的有效数据。
S302:根据所述对齐码对删除所述插入码之后的输出数据进行数据提取,得到有效输出数据。
在得到删除所述插入码之后的输出数据之后,根据对齐码在删除所述插入码之后的输出数据中进行查找,在查找到对齐码之后,将删除所述插入码之后的输出数据中对齐码之后的数据确定为有效输出数据,并对该有效输出数据进行提取。有效输出数据的确定方式和步骤S201类似,在此不再赘述。
S303:将所述有效输入数据和有效输出数据进行数据验证,得到数据验证结果。
将有效输入数据和有效输出数据进行数据验证,得到数据验证结果。可以将所述有效输入数据和有效输出数据输入至UVM平台中的记分板中进行数据验证,得到数据验证结果。数据验证结果可以包括数据验证一致和数据验证不一致。进一步地,若数据验证结果为数据验证不一致,还包括具体的比对信息,例如:出现不一致的具体位置。
在本实施例中,先根据所述对齐码对删除所述插入码之后的输入数据进行数据提取,得到有效输入数据;再根据所述对齐码对删除所述插入码之后的输出数据进行数据提取,得到有效输出数据;最后将所述有效输入数据和有效输出数据进行数据验证,得到数据验证结果。通过对齐码对有效数据进行提取,提高了后续数据验证的效率,也提高了数据验证的精度。
在一个实施例中,如图4所示,所述将所述有效输入数据和有效输出数据进行数据验证,得到数据验证结果,包括:
S401:将所述有效输入数据输入到记分板的一端,将所述有效输出数据输入到记分板的另一端。
其中,记分板(scoreboard)为UVM平台中集成了对顺序数据验证的比较器uvm_in_order_class_comparator的模块,通过将有效输入数据输入到记分板的一端,将所述有效输出数据输入到记分板的另一端,以使记分板后续完成两组数据的比对。
S402:将所述记分板两端中的有效输入数据和有效输出数据进行数据验证,得到数据验证结果。
记分板中具有数据自动比对功能,将输入到记分板两端的有效输入数据和有效输出数据进行数据验证,得到数据验证结果。数据验证结果可以包括数据验证一致和数据验证不一致。进一步地,若数据验证结果为数据验证不一致,还包括具体的比对信息,例如:出现不一致的具体位置。
在这个实施例中,通过将所述有效输入数据输入到记分板的一端,将所述有效输出数据输入到记分板的另一端;将所述记分板两端中的有效输入数据和有效输出数据进行数据验证,得到数据验证结果。实现对输入到接口电路的数据进行自动比对,提高了数据验证的效率,也提高了数据验证的准确性。
在一个实施例中,所述接口电路的数据验证方法还包括:
将所述输入数据按照不同时序发送到至少两个数据通道中。
在接口电路中,每个quad共有多个数据通道。示例性地,在Serdes接口电路中,每个quad共有4个通道。可通过将输入数据按照不同时序分配到所述至少两个数据通道中,更好地保证数据的准确传输。具体地,可以通过接口电路中的seqr来控制每条数据通道的数据流发送时间,这样错开一定时间分别发送数据,如此后续有效数据边界锁定的时间也不同。
在一个实施例中,如图5所示,在所述验证所述输入数据和所述输出数据是否一致之后,所述接口电路的数据验证方法还包括:
S501:对每一数据通道的输出数据进行提取,得到每一数据通道的有效通道数据。
每一数据通道的输入数据都通过了上述模拟接口电路的数据传输方法的处理,得到了每一数据通道的输出数据。在该步骤中,进一步地对每一数据通道的输出数据进行提取,得到每一数据通道的有效通道数据。具体地,根据对齐码确定每一通道的输出数据,将对齐码之后的数据确定为该通道的有效通道数据。
S502:将每一有效通道数据分别发送至存储队列中。
在得到每个数据通道的有效通道数据之后,将每一个数据通道的有效通道数据发送到存储队列中。示例性地,若存在4个数据通道的有效通道数据,则将4个有效通道数据分别发送到4个存储队列中。
S503:对所述存储队列中的有效通道数据进行两两比对,得到通道数据验证结果。
将存储队列中的有效通道数据进行两两比对,得到通道数据验证结果。通道数据验证结果包括通道数据一致和通道数据不一致。其中,若所有两两比对的数据都一致,则通道数据验证结果为通道数据一致。否则,通道数据验证结果为通道数据不一致。进一步地,若通道数据验证结果为通道数据不一致,还包括具体地不一致的信息,例如,哪些通道的数据不一致,以及具体数据不一致的位置等。
在本实施例中,在将相同的输入数据到按照不同时序发送到至少两个数据通道中之后,对每一数据通道的输出数据进行提取,得到每一数据通道的有效通道数据;将每一有效通道数据分别发送至存储队列中;对所述存储队列中的有效通道数据进行两两比对,得到通道数据验证结果。可以高效地经过不同数据通道的传输数据进行验证,也保证了验证的效率和精度。
在一个实施例中,如图6所示,所述接收输入数据,并模拟接口电路发送端的数据处理过程,得到中间数据,包括:
S601:对所述输入数据进行编码,得到编码数据,其中,所述输入数据包括插入码和边界码。
在该实施例中,以模拟Serdes接口电路的数据处理过程为例。在接收到输入数据之后,对所述输入数据进行编码处理。具体地,可以通过8b/10b编码器对输入数据进行编码,得到编码数据,避免数据流中出现过长的连1或连0。可选地,输入数据通过fifo在输入到8b/10b编码器进行编码。可选地,边界码可以采用8b/10b编解码技术中的K码。边界码可以采用K码中的任一值。进一步地,输入数据中的边界码为至少两个,示例性地,将边界码的数量设置为2个。插入码为在输入数据中插入的特定数据,用于时钟补偿。可选地,插入码也可以采用8b/10b编解码技术中的K码。可以理解地,在同一个输入数据中,插入码和边界码是不同的。
S602:根据所述边界码确定所述编码数据的数据边界,将数据边界之后的编码数据进行解码,得到中间数据。
根据边界码在编码数据中确定数据边界。具体地,Serdes接收端采用边界码在编码数据中进行查找,在找到指定个数的边界码之后,即确定了数据边界。其中,指定个数为在输入数据中所包含的边界码的个数。示例性地,以将k28.5作为边界码为例,Serdes接收端查找到预设的K码(k28.5对应的正极性编码为10’b1010000011,对应的负极性编码为10’b0101111100),在查找到指定个数的K码后把link信号拉高,认为找到了有意义数据的边界,进而锁定边界,再将边界位置往后的数据送到解码器进行解码,即得到中间数据。可选地,通过8b/10b解码器对数据边界之后的编码数据进行解码,得到中间数据。
所述接收所述中间数据,并模拟接口电路接收端的数据处理过程,得到输出数据,包括:
S603:采用时钟容差模块通过在所述中间数据中增加或者减少插入码的方式进行调频调相,得到输出数据。
对Serdes接口电路而言,Serdes接收端没有时钟产生电路,其时钟来源于接收到的数据中恢复出来的时钟。然而恢复出来的时钟在相位和频率上可能有偏差,因此通过在中间数据中增加或删减插入码的方式来达到调频调相的目的。可选地,可以通过fifo存储器来实现该调频调相过程,当fifo存储器中的aempty标志拉高即fifo快空的时候在所述中间数据中多增加一个或两个插入码(比如K28.4),当fifo存储器中的afull标志拉高即fifo快满的时候删除一个或两个插入码来保证能够正确地读写。
在本实施例中,获取输入数据,对所述输入数据进行编码,得到编码数据,其中,所述输入数据包括插入码和边界码;接收所述编码数据,根据所述边界码确定所述编码数据的数据边界,将数据边界之后的编码数据进行解码,得到中间数据;采用时钟容差模块通过在所述中间数据中增加或者减少插入码的方式进行调频调相,得到输出数据,保证了数据的高效、准确地传输,以保证后续数据验证的高效和准确。
在一个实施例中,如图7所示,所述采用时钟容差模块通过在所述中间数据中增加或者减少插入码的方式进行调频调相,包括:
S701:将所述中间数据输入fifo模块,实时监测所述fifo模块中的aempty标志和afull标志。
S702:若所述aempty标志拉高,则在所述中间数据中增加第一预设数量的插入码。
S703:若所述afull标志拉高,则在所述中间数据中删除第二预设数量的插入码。
通过一个fifo模块来对实现调频调相的目的。具体地,先将中间数据输入到fifo模块中,并实时监测fifo模块中的aempty标志和afull标志。若所述aempty标志拉高,则在所述中间数据中增加第一预设数量的插入码。若所述afull标志拉高,则在所述中间数据中删除第二预设数量的插入码。其中,第一预设数量和第二预设数量均为预先设定的数值,可以根据实际需要进行调整。可以理解,aempty标志拉高或者afull标志拉高是指对应的信号置1。
在本实施例中,通过监测fifo模块中的aempty标志和afull标志来对中间数据进行插入或者删除操作,保证了数据正确地读写,并且也实现了调频调相的目的。
在一个实施例中,如图8所示,在所述采用时钟容差模块通过在所述中间数据中增加或者减少插入码的方式进行调频调相,得到输出数据之后,所述接口电路的数据验证方法还包括:
S801:在调频调相后的不同通道的所述中间数据中,根据所述对齐码确定每一数据通道中的所述中间数据的有效数据。
输入数据中包括了对齐码,通过在调频调相后的不同通道的所述中间数据中,对每一中间数据进行对齐码的查找,确定每一通道中的所述中间数据的有效数据。具体地,先根据对齐码的数量来确定查找策略。可选地,输入数据中对齐码的数量为至少两个。两个对齐码之间的时间间隔应该大于一定的时钟周期。该时钟周期的个数可以根据具体电路结构而设定。可选地,两个对齐码之间的时间间隔应该大于16个时钟周期。若对齐码的数量为2个,则在查找到2个对齐码之后,即确定这2个对齐码之后的数据为该通道的中间数据的有效数据。
S802:根据预设的主通道对各个数据通道中的有效数据进行数据对齐。
预设的主通道为预先将Serdes接口电路中的一个数据通道确定为主通道。根据这个预设的主通道对各个数据通道中的有效数据进行数据对齐。
在本实施例中,先在调频调相后的不同通道的所述中间数据中,根据所述对齐码确定每一通道中的所述中间数据的有效数据;并根据预设的主通道对各个通道中的有效数据进行数据对齐。将不同通道中的有效数据进行数据对齐,更好地保证了后续对数据传输的准确性的判断。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本发明一个实施例中,涉及一种接口电路的数据验证平台。在一个具体实施方式中,该接口电路的数据验证平台用于实现上述任意一项实施例所述的数据验证方法。如图9所示,该接口电路的数据验证平台包括:
发送端模拟模块901,用于接收输入数据,并模拟接口电路发送端的数据处理过程,得到中间数据。
可选地,可以通过Sequence组件产生数据流,该数据流由多个transaction组成。Transaction通常是具有某种功能的一组信息封装起来的一个类,是在验证组件中流动的数据包,比如某种协议的数据包,该数据包中定义了原地址,目的地址,数据长度等信息并对数据长度做了约束。在一个具体实施方式中,可以通过Sequence组件产生输入数据。此时,输入数据接收装置直接从该Sequence组件中过获取输入数据。
Sequencer组件用于控制sequence组件的启动。在不同的测试例中,将不同的sequence设置成Sequencer组件的default_sequence,当Sequencer组件执行到main_phase阶段时,启动这个sequence,将transaction传递给Dirver组件。
Dirver组件为信号驱动组件,用于将transaction抽象级别的数据信息转换成Dut输入组件可识别的端口信号并驱动到Dut输入组件上去。
该发送端模拟模块可以通过Dut输入组件实现。
接收端模拟模块902,用于接收所述中间数据,并模拟接口电路接收端的数据处理过程,得到输出数据。
可选地,该接收端模拟模块可以通过Dut输出组件实现。
输入数据监测模块903,用于监测所述发送端模拟模块接收到的输入数据。可选地,该输入数据监测模块可以通过Imonitor组件实现。
输出数据监测模块904,用于监测所述接收端模拟模块的输出数据。可选地,该输出数据监测模块可以通过Omonitor组件实现。
数据验证模块905,分别连接至输入数据监测模块和输出数据监测模块,用于获取所述输入数据和所述输出数据,并验证所述输入数据和所述输出数据是否一致。
进一步地,数据验证模块集成了UVM平台中对顺序数据验证的比较器uvm_in_order_class_comparator的模块。该数据验证装置中的比较器两个端口分别和Imonitor组件以及Omonitor组件相连接,以接收Imonitor组件发送的有效输入数据以及Omonitor组件发送的有效输出数据。进而,通过对接收到的输入数据以及输出数据进行比对,完成了数据验证的过程。
该接口电路的数据验证平台可以保证快速准确地完成数据的比对,并且,该接口电路的数据验证平台可以采用面向对象的uvm验证方法学,封装了很多方法和任务,提供了搭建验证平台的基本框架。一旦启动验证平台,就按照相应的phase自动执行,大大节省了验证人员的调试时间。
优选地,所述输入数据包括插入码;
所述数据验证模块还包括插入码删除单元和数据验证单元。
所述插入码删除单元用于接收所述输入数据和所述输出数据,并将所述输入数据和所述输出数据中的插入码删除。
所述数据验证单元用于将删除所述插入码之后的所述输入数据和删除所述插入码之后的输出数据进行数据验证,得到数据验证结果。
优选地,所述输入数据还包括对齐码。
所述数据验证单元包括有效输入数据获取子单元、有效输出数据获取子单元和数据验证子单元。
所述有效输入数据获取子单元用于根据所述对齐码对删除所述插入码之后的输入数据进行数据提取,得到有效输入数据。
所述有效输出数据获取子单元用于根据所述对齐码对删除所述插入码之后的输出数据进行数据提取,得到有效输出数据。
所述数据验证子单元用于将所述有效输入数据和有效输出数据进行数据验证,得到数据验证结果。
优选地,所述数据验证子单元还用于将所述有效输入数据输入到记分板的一端,将所述有效输出数据输入到记分板的另一端;将所述记分板两端中的有效输入数据和有效输出数据进行数据验证,得到数据验证结果。
优选地,发送端模拟模块还用于将所述输入数据按照不同时序发送到至少两个数据通道中。
优选地,数据验证模块还用于对每一数据通道的输出数据进行提取,得到每一数据通道的有效通道数据;将每一有效通道数据分别发送至存储队列中;对所述存储队列中的有效通道数据进行两两比对,得到通道数据验证结果。
优选地,所述发送端模拟模块还用于对所述输入数据进行编码,得到编码数据,其中,所述输入数据包括插入码和边界码;根据所述边界码确定所述编码数据的数据边界,将数据边界之后的编码数据进行解码,得到中间数据。
所述接收端模拟模块还用于采用时钟容差模块通过在所述中间数据中增加或者减少插入码的方式进行调频调相,得到输出数据。
优选地,所述采用时钟容差模块通过在所述中间数据中增加或者减少插入码的方式进行调频调相,包括:
将所述中间数据输入fifo模块,实时监测所述fifo模块中的aempty标志和afull标志。
若所述aempty标志拉高,则在所述中间数据中增加第一预设数量的插入码。
若所述afull标志拉高,则在所述中间数据中删除第二预设数量的插入码。
优选地,所述接收端模拟模块还用于在调频调相后的不同通道的所述中间数据中,根据所述对齐码确定每一通道中的所述中间数据的有效数据;根据预设的主通道对各个通道中的有效数据进行数据对齐。
关于接口电路的数据验证平台的具体限定可以参见上文中对于接口电路的数据验证方法的限定,在此不再赘述。上述接口电路的数据验证平台的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (9)

1.一种接口电路的数据验证方法,其特征在于,所述接口电路的数据验证方法包括:
接收输入数据,并模拟接口电路发送端的数据处理过程,得到中间数据;
接收所述中间数据,并模拟接口电路接收端的数据处理过程,得到输出数据;
监测并获取所述输入数据和所述输出数据,验证所述输入数据和所述输出数据是否一致;
所述输入数据包括插入码;所述监测并获取所述输入数据和所述输出数据,验证所述输入数据和所述输出数据是否一致,包括:
获取所述输入数据和所述输出数据,并将所述输入数据和所述输出数据中的插入码删除;
将删除所述插入码之后的所述输入数据和删除所述插入码之后的输出数据进行数据验证,得到数据验证结果。
2.如权利要求1所述的接口电路的数据验证方法,其特征在于,所述输入数据还包括对齐码;
所述将删除所述插入码之后的所述输入数据和删除所述插入码之后的输出数据进行数据验证,得到数据验证结果,包括:
根据所述对齐码对删除所述插入码之后的输入数据进行数据提取,得到有效输入数据;
根据所述对齐码对删除所述插入码之后的输出数据进行数据提取,得到有效输出数据;
将所述有效输入数据和有效输出数据进行数据验证,得到数据验证结果。
3.如权利要求2所述的接口电路的数据验证方法,其特征在于,所述将所述有效输入数据和有效输出数据进行数据验证,得到数据验证结果,包括:
将所述有效输入数据输入到记分板的一端,将所述有效输出数据输入到记分板的另一端;
将所述记分板两端中的有效输入数据和有效输出数据进行数据验证,得到数据验证结果。
4.如权利要求1所述的接口电路的数据验证方法,其特征在于,所述接口电路的数据验证方法还包括:
将所述输入数据按照不同时序发送到至少两个数据通道中。
5.如权利要求4所述的接口电路的数据验证方法,其特征在于,在所述验证所述输入数据和所述输出数据是否一致之后,所述接口电路的数据验证方法还包括:
对每一数据通道的输出数据进行提取,得到每一数据通道的有效通道数据;
将每一有效通道数据分别发送至存储队列中;
对所述存储队列中的有效通道数据进行两两比对,得到通道数据验证结果。
6.如权利要求2所述的接口电路的数据验证方法,其特征在于,所述接收输入数据,并模拟接口电路发送端的数据处理过程,得到中间数据,包括:
对所述输入数据进行编码,得到编码数据,其中,所述输入数据包括插入码和边界码;
根据所述边界码确定所述编码数据的数据边界,将数据边界之后的编码数据进行解码,得到中间数据;
所述接收所述中间数据,并模拟接口电路接收端的数据处理过程,得到输出数据,包括:
采用时钟容差模块通过在所述中间数据中增加或者减少插入码的方式进行调频调相,得到输出数据。
7.如权利要求6所述的接口电路的数据验证方法,其特征在于,所述采用时钟容差模块通过在所述中间数据中增加或者减少插入码的方式进行调频调相,包括:
将所述中间数据输入fifo模块,实时监测所述fifo模块中的aempty标志和afull标志;
若所述aempty标志拉高,则在所述中间数据中增加第一预设数量的插入码;
若所述afull标志拉高,则在所述中间数据中删除第二预设数量的插入码。
8.如权利要求7所述的接口电路的数据验证方法,其特征在于,在所述采用时钟容差模块通过在所述中间数据中增加或者减少插入码的方式进行调频调相,得到输出数据之后,所述接口电路的数据验证方法还包括:
在调频调相后的不同通道的所述中间数据中,根据所述对齐码确定每一数据通道中的所述中间数据的有效数据;
根据预设的主通道对各个数据通道中的有效数据进行数据对齐。
9.一种接口电路的数据验证平台,其特征在于,所述数据验证平台用于实现权利要求1-8任意一项所述的数据验证方法,所述数据验证平台包括:
发送端模拟模块,用于接收输入数据,并模拟接口电路发送端的数据处理过程,得到中间数据,所述输入数据包括插入码;
接收端模拟模块,用于接收所述中间数据,并模拟接口电路接收端的数据处理过程,得到输出数据;
输入数据监测模块,用于监测所述发送端模拟模块接收到的输入数据;
输出数据监测模块,用于监测所述接收端模拟模块的输出数据;
数据验证模块,分别连接至输入数据监测模块和输出数据监测模块,用于获取所述输入数据和所述输出数据,并将所述输入数据和所述输出数据中的插入码删除;将删除所述插入码之后的所述输入数据和删除所述插入码之后的输出数据进行数据验证,得到数据验证结果。
CN201911089638.6A 2019-11-08 2019-11-08 接口电路的数据验证方法及平台 Active CN111026590B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911089638.6A CN111026590B (zh) 2019-11-08 2019-11-08 接口电路的数据验证方法及平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911089638.6A CN111026590B (zh) 2019-11-08 2019-11-08 接口电路的数据验证方法及平台

Publications (2)

Publication Number Publication Date
CN111026590A CN111026590A (zh) 2020-04-17
CN111026590B true CN111026590B (zh) 2020-09-25

Family

ID=70205190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911089638.6A Active CN111026590B (zh) 2019-11-08 2019-11-08 接口电路的数据验证方法及平台

Country Status (1)

Country Link
CN (1) CN111026590B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153769A (zh) * 2021-11-11 2022-03-08 天津市英贝特航天科技有限公司 一种数据验证方法及其装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100650588B1 (ko) * 2005-12-06 2006-11-30 엘지노텔 주식회사 기지국의 보드간 고속 데이터 전송 패스 검증 장치 및 방법
CN101009488A (zh) * 2006-01-10 2007-08-01 恩益禧电子股份有限公司 时钟和数据恢复电路及serdes电路
CN106991027A (zh) * 2017-04-05 2017-07-28 中国科学院上海高等研究院 基于serdes协议验证的检查器、功能验证系统及方法
CN107423178A (zh) * 2017-07-17 2017-12-01 天津市英贝特航天科技有限公司 一种 Serdes接口测试方法及系统
US9928318B1 (en) * 2016-04-29 2018-03-27 Cadence Design Systems, Inc. System and method for simulating channels
CN109450610A (zh) * 2018-12-26 2019-03-08 成都九芯微科技有限公司 一种通道相位对齐电路及方法
CN109739699A (zh) * 2018-11-06 2019-05-10 电子科技大学 一种基于uvm验证方法学的spi验证方法
CN109815099A (zh) * 2018-12-28 2019-05-28 北京时代民芯科技有限公司 Jesd204b控制器的fpga验证方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8094705B2 (en) * 2009-03-12 2012-01-10 Oracle America, Inc. Fast SERDES I/O characterization
US9384108B2 (en) * 2012-12-04 2016-07-05 International Business Machines Corporation Functional built-in self test for a chip
CN104317664A (zh) * 2014-10-08 2015-01-28 四川和芯微电子股份有限公司 Usb芯片验证系统及方法
CN109726061B (zh) * 2019-01-07 2022-07-05 上海琪埔维半导体有限公司 一种SoC芯片的验证方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100650588B1 (ko) * 2005-12-06 2006-11-30 엘지노텔 주식회사 기지국의 보드간 고속 데이터 전송 패스 검증 장치 및 방법
CN101009488A (zh) * 2006-01-10 2007-08-01 恩益禧电子股份有限公司 时钟和数据恢复电路及serdes电路
US9928318B1 (en) * 2016-04-29 2018-03-27 Cadence Design Systems, Inc. System and method for simulating channels
CN106991027A (zh) * 2017-04-05 2017-07-28 中国科学院上海高等研究院 基于serdes协议验证的检查器、功能验证系统及方法
CN107423178A (zh) * 2017-07-17 2017-12-01 天津市英贝特航天科技有限公司 一种 Serdes接口测试方法及系统
CN109739699A (zh) * 2018-11-06 2019-05-10 电子科技大学 一种基于uvm验证方法学的spi验证方法
CN109450610A (zh) * 2018-12-26 2019-03-08 成都九芯微科技有限公司 一种通道相位对齐电路及方法
CN109815099A (zh) * 2018-12-28 2019-05-28 北京时代民芯科技有限公司 Jesd204b控制器的fpga验证方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Varun R, Design Engineering Manager, Cadence;Varun R, Design Engineering Manager, Cadence;《https://semiengineering.com/efficient-verification-of-mixed-signal-serdes-ip-using-uvm/》;20170927;第1-9页 *
基于UVM高速SERDES的数字系统验证;徐波;《电子科学技术》;20170930;第4卷(第5期);第1-5页 *

Also Published As

Publication number Publication date
CN111026590A (zh) 2020-04-17

Similar Documents

Publication Publication Date Title
CN104954096B (zh) 一种一主多从的高速同步串行通信数据传输方法
CN109815099B (zh) Jesd204b控制器的fpga验证方法
CN104022828B (zh) 一种基于异步通信模式的光纤数据传输方法
CN111090556B (zh) 一种片上系统及usb物理层测试方法
CN106598889A (zh) 一种基于fpga夹层板的sata主控器
CN112597097B (zh) 一种基于adc数据采集卡的通信系统及其应用方法、介质
US11762017B2 (en) Performing scan data transfer inside multi-die package with SERDES functionality
CN109032860A (zh) 一种arinc429总线通用仿真系统及仿真方法
CN111698271A (zh) 一种hdlc协议ip核
CN111026590B (zh) 接口电路的数据验证方法及平台
US11977464B2 (en) Error rate measuring apparatus and error rate measuring method
CN109815073B (zh) 一种基于pxi平台的高速串口srio的测试方法
CN104836636A (zh) 基于新型can帧进行通信的方法、装置及系统
CN110740085B (zh) 一种基于并机系统的通信方法、通信装置及终端
US20090271174A1 (en) Emulation system and driving method thereof
CN113422756B (zh) 验证数据传输方法、速率转换装置以及验证数据传输系统
JP4736135B2 (ja) カード間通信を行う内部バス解析システム、その方法及びそのプログラム
CN101577598A (zh) 多路信号复用、解复用的方法、装置和系统
CN105871655B (zh) 一种应用于串行总线分析仪器的波特率估计ip核系统
CN104009823A (zh) 一种SerDes技术中的错位检测与纠错电路
Pendyala et al. 100-Mb/s enhanced data rate MIL-STD-1553B controller in 65-nm CMOS technology
CN111770074A (zh) 数据通路测试报文生成装置与方法
CN109870640A (zh) 一种基于ate的usb接口类芯片测试方法
Zedan Operating system realization for real-time visualization of CAN-Bus data streams using Xilinx ZyncSoC
CN116775390B (zh) 接口协议转换验证系统及方法、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant