CN116150075A - 一种PCIe交换控制器芯片、验证系统和验证方法 - Google Patents
一种PCIe交换控制器芯片、验证系统和验证方法 Download PDFInfo
- Publication number
- CN116150075A CN116150075A CN202211706096.4A CN202211706096A CN116150075A CN 116150075 A CN116150075 A CN 116150075A CN 202211706096 A CN202211706096 A CN 202211706096A CN 116150075 A CN116150075 A CN 116150075A
- Authority
- CN
- China
- Prior art keywords
- module
- controller chip
- port
- signals
- pcie
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/221—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2247—Verification or detection of system hardware configuration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明涉及集成电路验证技术领域,提供了一种PCIe交换控制器芯片、验证系统和验证方法。本发明通过顶层控制模块将全部Lane路划分成N个独立的分组,每个分组包含M个独立核心单元,通过控制寄存器向模式选择模块输出组选择信号和端口选择信号,模式选择模块将组选择信号和端口选择信号转换成组使能信号和端口使能信号,顶层控制模块根据组使能信号和端口使能信号选中对应的目标核心单元,以通过被选中的目标核心单元输出预定数量的接口信号,通过配置不同的组选择信号和端口选择信号,使得所述顶层控制模块选中不同的目标核心单元进行预定数量的接口信号输出,最终达到对整个PCIe交换控制器芯片中全部Lane路进行测试的目的。
Description
技术领域
本发明涉及集成电路验证技术领域,特别是涉及一种PCIe交换控制器芯片、验证系统和验证方法。
背景技术
随着智能AI、大数据计算和服务器市场的大力发展,国内对于高速接口的需求越发强烈,而PCIe(Peripheral Component Interconnect express,一种高速串行计算机扩展总线标准)作为一种高速串行计算机扩展总线标准,在行业内也备受关注。PCIe交换控制器芯片是一种高速PCIe交换设备,便于主机和服务器的PCIe接口扩展,达到可以接入更多PCIe子设备的效果。
在芯片流片之前,FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)原型验证会尽可能地还原芯片真实的应用场景,提升芯片开发效率,降低开发成本。目前行业内并没有一套完整的PCIe交换控制器芯片的FPGA原型验证方案,因此针对PCIe交换控制器芯片流片前的FPGA原型验证环节,需要设计一套具有可行性的FPGA原型验证方案。
在集成电路设计中,分为数字电路和模拟电路两部分。在FPGA原型验证中,PCIe交换控制器芯片属于数字部分,需要对接PHY模块(Physical Layer,物理层接口,主要功能是数字信号和模拟信号转换,模块中既有数字部分的设计,也有模拟部分)将并行数据转换成高速的串行数据,再通过PCIe延长线连接主机和PCIe子设备,打造出一条完整的PCIe数据传输链路。由于FPGA芯片是一种半定制电路,其里面的可编程阵列逻辑都是数字电路,无法验证模拟部分的设计。而PHY模块含有模拟部分的代码,不能映射到FPGA芯片的可编程阵列逻辑,因此不能将整个PHY模块放进FPGA芯片里面。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
发明内容
本发明要解决的技术问题是提供一种PCIe交换控制器芯片、验证系统和验证方法,解决FPGA器件自带PHY模块支持的Lane数量过少,而无法覆盖整个PCIe交换控制器芯片原型验证的问题。
本发明采用如下技术方案:
第一方面,本发明提供一种PCIe交换控制器芯片,包括:控制寄存器、模式选择模块和顶层控制模块,其中:
所述顶层控制模块被划分成N个独立的分组,每个分组包含M个独立核心单元;
所述控制寄存器与所述模式选择模块连接,用于向所述模式选择模块输出组选择信号和端口选择信号;
所述模式选择模块与所述顶层控制模块连接,用于将组选择信号转换成组使能信号,将端口选择信号转换成端口使能信号,并将组使能信号和端口使能信号发送给所述顶层控制模块;
所述顶层控制模块还用于根据所述组使能信号选择对应的目标分组,根据端口使能信号在所述目标分组中选择对应的目标核心单元,以通过被选中的目标核心单元输出预定数量的接口信号。
进一步地,所述PCIe交换控制器芯片还包括整合模块和顶层端口模块,其中:
所述整合模块与所述顶层控制模块连接,用于接收预设数量的接口信号,并对预设数量的接口信号进行整合,整合成Y路预定宽度的接口信号;
所述顶层端口模块和所述整合模块连接,且所述顶层端口模块中包含Y个端口模块,Y路预定宽度的接口信号输入到Y个所述端口模块中,以对外输出接口信号。
进一步地,所述PCIe交换控制器芯片还包括数量检测模块和RISC-V模块,其中:
所述RISC-V模块用于配置所述组选择信号和所述端口选择信号;
所述数量检测模块设置在所述顶层控制模块和所述整合模块之间,所述数量检测模块分别与所述顶层控制模块和所述整合模块连接,适用于判断接口信号的总数量是否为预定数量;
所述数量检测模块还与所述RISC-V模块连接,当接口信号的总数量不等于预定数量时,所述数量检测模块用于向所述RISC-V模块发送中断信号;
所述RISC-V模块接收到中断信号后,用于重新配置所述组选择信号和所述端口选择信号,使得接口信号的总数量等于预定数量;
当接口信号的总数量等于预定数量时,所述数量检测模块用于将接口信号输送至所述整合模块。
进一步地,所述PCIe交换控制器芯片还包括总线转换模块,其中:
所述RISC-V模块和所述总线转换模块连接,所述总线转换模块和所述控制寄存器连接;
所述RISC-V模块和所述总线转换模块之间通过AXI总线通信,所述总线转换模块和所述控制寄存器之间通过APB总线通信,所述总线转换模块用于将AXI信号转换为APB信号,进而使得所述RISC-V模块通过所述总线转换模块对所述控制寄存器进行读写;
通过多次配置所述组选择信号和所述端口选择信号,使得所述PCIe交换控制器芯片中的每个核心单元都至少被选中过一次,以实现对所述PCIe交换控制器芯片中全部核心单元的测试。
进一步地,N的取值为六,M的取值为五,M个独立核心单元具体为2个X1核心单元、1个X2核心单元、1个X4核心单元和1个X8核心单元;预定数量的接口信号为48路接口信号。
第二方面,本发明实施例还提供一种PCIe交换控制器芯片的验证系统,所述验证系统用于对如第一方面所述的PCIe交换控制器芯片进行验证,所述验证系统包括RC设备、EP设备和FPGA模块,其中:
所述FPGA模块包括多个FMC接口、多个PHY模块、多个EP测试子板、多个RC测试子板和待验证的PCIe交换控制器芯片;所述PHY模块与所述PCIe交换控制器芯片连接,所述PHY模块与所述FMC接口连接,其中一部分FMC接口通过所述RC测试子板与所述RC设备连接,另一部分FMC接口通过所述EP测试子板与所述EP设备连接;
所述RC设备与RC测试子板连接,并在所述FPGA模块和RC设备之间传递RC数据流;所述EP设备与EP测试子板连接,并在所述FPGA模块和EP设备之间传递EP数据流;
所述FMC接口适用于在所述PHY模块和所述RC设备间传递RC数据流,或在所述PHY模块和所述EP设备间传递EP数据流;
所述PHY模块用于在高速串行数据和并行数据之间进行转换,以实现PHY模块和所述RC设备RC数据流传输,以及PHY模块和所述EP设备之间的EP数据流传输;
所述RC设备和所述EP设备通过所述PCIe交换控制器芯片进行数据流通信,以实现对PCIe交换控制器芯片的各个核心单元进行验证。
进一步地,所述FPGA模块还包括转换模块,所述PHY模块与所述转换模块连接,所述转换模块与所述PCIe交换控制器芯片连接,适用于对并行数据进行时钟域同步转换和数据位宽转换,以实现所述PHY模块和所述PCIe交换控制器芯片之间的EP数据流和RC数据流传输;
所述RC设备和所述EP设备通过所述PCIe交换控制器芯片进行数据流通信,以实现对PCIe交换控制器芯片的FPGA原型验证。
第三方面,本发明实施例还提供一种PCIe交换控制器芯片的验证方法,所述验证方法应用在如第二方面所述的FPGA原型验证系统上,包括:
通过RC测试子板在RC设备和FPGA模块之间传递RC数据流,通过EP测试子板在EP设备和FPGA模块之间传递EP数据流;
通过所述FMC接口,在所述PHY模块和所述RC设备间传递RC数据流,在所述PHY模块和所述EP设备间传递EP数据流;
通过所述PHY模块对高速串行数据和并行数据进行相互转换,以实现PHY模块和所述RC设备之间的RC数据流传输,以及PHY模块和所述EP设备之间的EP数据流传输;
通过所述转换模块对并行数据进行时钟域同步转换和数据位宽转换,以实现所述PHY模块和所述PCIe交换控制器芯片之间的EP数据流和RC数据流传输;
所述RC设备和所述EP设备通过所述PCIe交换控制器芯片进行数据流通信,以实现对所述PCIe交换控制器芯片的FPGA原型验证。
进一步地,所述RC设备和所述EP设备通过所述PCIe交换控制器芯片进行数据流通信,以实现对交换芯片的FPGA原型验证包括:
通过RISC-V模块读写控制寄存器,配置所述组选择信号和所述端口选择信号;
控制寄存器将所述组选择信号和所述端口选择信号发送给模式选择模块;
模式选择模块将组选择信号和端口选择信号转换成组使能信号和端口使能信号,并发送给顶层控制模块;
顶层控制模块根据组使能信号和端口使能信号,选择PCIe交换控制器芯片中对应分组中的核心单元,以通过被选中的目标核心单元输出预定数量的接口信号;
通过多次配置所述组选择信号和所述端口选择信号,使得所述PCIe交换控制器芯片中的每个核心单元都至少被选中过一次,以实现对所述PCIe交换控制器芯片中全部核心单元的测试。
进一步地,所述验证方法还包括:
通过切换接入所述FPGA模块的RC设备数量和类型以及接入所述FPGA模块的EP设备数量和类型,以测试所述PCIe交换控制器芯片在不同数量和类型的RC设备和EP设备工作时的性能。
本发明通过所述顶层控制模块将全部Lane路划分成N个独立的分组,每个分组包含M个独立核心单元,通过控制寄存器向模式选择模块输出组选择信号和端口选择信号,模式选择模块将组选择信号和端口选择信号转换成对应的组使能信号和端口使能信号,所述顶层控制模块根据所述组使能信号和端口使能信号选中对应的目标核心单元,以通过被选中的目标核心单元输出预定数量的接口信号,通过配置不同的组选择信号和端口选择信号,使得所述顶层控制模块选中不同的目标核心单元进行预定数量的接口信号输出,最终达到对整个PCIe交换控制器芯片中全部Lane路进行测试的目的,以及达到对PCIe交换控制器芯片的可靠性和兼容性进行测试的目的。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种PCIe交换控制器芯片的结构示意图;
图2a是本发明实施例提供的一种PCIe交换控制器芯片的另一种结构示意图;
图2b是本发明实施例提供的一种PCIe交换控制器芯片的另一种结构示意图;
图3是本发明实施例提供的一种PCIe交换控制器芯片的一种具体结构示意图;
图4是本发明实施例提供的一种PCIe交换控制器芯片的验证系统的结构示意图;
图5是本发明实施例提供的一种PCIe交换控制器芯片的验证系统的一种具体结构示意图;
图6是本发明实施例提供的一种PCIe交换控制器芯片的传统验证系统的结构示意图;
图7是本发明实施例提供的一种PCIe交换控制器芯片的验证方法的流程示意图;
图8是本发明实施例提供的一种PCIe交换控制器芯片的验证方法的步骤105的具体流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
现有技术中,将PHY模块生产成ASIC(Application Specific IntegratedCircuit,专用集成电路)芯片,从设计投片至回片的整个周期至少需要3至6个月,再设计并生产集成PHY芯片的PCB(Printed Circuit Board,印制电路板)测试子板,测试子板含有FMC(FPGA Mezzanine Card,FPGA中间层板卡)接口和PCIe接口,其中FMC接口连接FPGA平台,PCIe接口通过PCIe延长线连接主机,完成整个测试系统的搭建。PCB测试子板的设计和生产过程需要2至3个月,PHY芯片回片和PCB测试子板回板之后需要进行各项功能的测试,在测试中覆盖所有功能并且功能都无误之后才能投入使用。不难看出,这种方法的验证周期过长可能会耽误产品的流片时间节点,同时需要专门制作PHY芯片和PCB测试子板使投资成本也较高,可行性较低。
市面上PCIe的产品大多支持Gen1-Gen4(Generation,某一代),而每个版本的PCIe基本都支持X1、X2、X4、X8和X16的Lane宽度。如果把PHY芯片的PCB测试子板外接在FPGA平台上,而并非FPGA芯片内部,那么FPGA芯片的IO(Input/Output)信号就是PIPE(PhysicalInterface for PCI Express Specification,物理层接口规范)接口信号,PIPE接口信号是多组多位宽的并行数据,以Gen1X1且数据位宽为32bit的PIPE接口信号为例,PIPE接口信号包含数据信号、有效信号、标志位信号和特定功能信号等,其中有100根左右的普通IO信号需要与FPGA芯片外的PHY模块对接,一个FMC接口的普通IO数量是有限的,一般的数量范围是80至160个。实现Gen1X1的功能时,一个FMC的普通IO数量可以兼容PIPE接口信号的数量,当Lane的数量为X2时,PIPE接口信号的IO数量翻倍,需要200根左右的普通IO信号接口。由此可见,使用该方案只能支持一条Lane的功能原型验证,无法覆盖到X2及更高的Lane数量。
同时对FPGA来说,尽管只使用一条Lane的通道,也需要处理大量的PIPE接口信号,由于PHY模块在FPGA芯片外部,对FPGA芯片内部来说无法获取外部芯片的时序信息,为了保证PCIe切换芯片和PHY模块数据能够正常传输,在进行STA(Static Timing Analysis,静态时序分析)时需要留相对较大的时序余量给到PIPE接口信号,容易导致FPGA芯片内部的时序相对紧张。PIPE接口有部分信号是属于同一组的并行信号,这些并行信号在高速率且长时间的工作情况下难以保证每一位数据都是同时到达的,只要有一个的数据错位或者数据丢失都会对信号的采样造成不可逆的影响,导致功能异常。
因此可以考虑不使用外部的PHY芯片测试子板,而将PHY模块放进FPGA芯片里面。Xilinx(赛灵思)厂商有部分FPGA器件中带有PCIe PHY的硬核资源,该PHY模块的PCIe支持Gen1-Gen3,每个PCIe版本的Lane都支持X1、X2、X4和X8宽度。但使用FPGA器件自带PHY模块时,存在较大的局限性,因为PCIe交换控制器芯片作为一个大型的集成电路设计,其模块和代码数量都较为庞大,最大可支持96条Lane和30个端口,而FPGA器件自带PHY模块一般不能支持96条Lane,如Xilinx PHY模块的硬核资源最多只支持6个端口,每个端口只支持8条Lane,因此无法覆盖整个PCIe交换控制器芯片设计验证。
为解决上述问题,本发明实施例提供了一种PCIe交换控制器芯片,结合图1,包括:控制寄存器、模式选择模块和顶层控制模块,其中:所述顶层控制模块被划分成N个独立的分组,每个分组包含M个独立核心单元。本质上是PCIe交换控制器芯片中的Lane路被所述顶层控制模块划分成N个分组,每个分组包含M个独立核心,每个独立核心单元包含一定数量的Lane,以便于不同分组中的不同独立核心进行组合,最终预定数量的Lane路输出接口信号,以实现对所述PCIe交换控制器芯片中全部的Lane路的测试。
对所述PCIe交换控制器芯片进行测试时,需要将所述PCIe交换控制器芯片移植到FPGA模块上,再对所述PCIe交换控制器芯片进行测试,例如所述PCIe交换控制器芯片最大支持96Lane,即需要对96条Lane进行测试,但FPGA模块自带的PHY模块最大支持48Lane,即PHY模块的最大Lane数小于所述PCIe交换控制器芯片最大支持Lane数,所以在本实施例中,将96条Lane划分到M个独立核心单元中,每个核心单元都包含的一定的数量的Lane,可将核心单元划分成X1核心单元(包含1条Lane)、X2核心单元(包含2条Lane)、X4核心单元(包含4条Lane)和X8核心单元(包含8条Lane)等,每次都从M个独立核心单元中选择48条Lane进行测试,直到96条Lane全部都被测试过,同时通过对不同核心单元进行组合使用,以测试PCIe交换控制器芯片的可靠性和兼容性。
所述控制寄存器与所述模式选择模块连接,用于向所述模式选择模块输出组选择信号和端口选择信号。所述模式选择模块与所述顶层控制模块连接,用于将组选择信号转换成组使能信号,将端口选择信号转换成端口使能信号,并将组使能信号和端口使能信号发送给所述顶层控制模块。
其中,所述组选择信号的大小为Nbit,所述组选择模块信号从右到左分别对应第一分组到第N分组,所述组选择信号被发送到所述模式选择模块后,所述模式选择模块根据所述组选择信号生产N个组使能信号,并向所述顶层控制模块输出N个组使能信号,每个组使能信号的大小为1bit,每个组使能信号按照排列顺序对应一个独立的分组,且所述组使能信号为高电平或低电平。所述端口选择信号被发送到所述模式选择模块后,当有X个组使能信号为高电平时,所述模式选择模块根据所述端口选择信号生产N个端口使能信号,每个端口使能信号的大小为Mbit,按照排列顺序对应每个独立的分组中的M个核心单元,具体为M bit的端口使能信号中每bit从右到左对应第一个核心单元到第M个核心单元,另外每个端口使能信号按照排列顺序从右到左对应X个组使能信号,无效的(N-X)个低电平组使能信号和对应的端口使能信号不需要进行处理。
所述顶层控制模块还用于根据所述组使能信号选择对应的目标分组,根据端口使能信号在所述目标分组中选择对应的目标核心单元,以通过被选中的目标核心单元输出预定数量的接口信号。
其中,所述组使能信号的优先级高于所述端口使能信号,当一个分组对应的组使能信号无效,即为低电平时,无需判断其对应的端口使能信号是否有效,即其对应的端口使能信号默认为无效,只有当组使能信号有效时,才需要进一步根据对应的端口使能信号选择对应的分组中的核心单元。当组使能信号为高电平时,所述顶层控制模块选中对应的目标分组,并且根据相应组使能信号对应的端口使能信号,去选择对应的目标分组中的目标核心单元,例如,每个分组具有5个核心单元,对应的端口使能信号为5bit大小的信号“10110”时,端口使能信号中的某一位为高电平时,按照其排列顺序选中对应的目标核心单元,此时需要选中第2、第3和第5个核心单元。同时,只有被选中的核心单元输出的PIPE接口信号才会被输出,其它没被选中的核心单元输出的信号被判断为无效的PIPE接口信号,会被截取。
在本实施例中,通过所述顶层控制模块将全部Lane路划分成N个独立的分组,每个分组包含M个独立核心单元,通过控制寄存器向模式选择模块输出组选择信号和端口选择信号,模式选择模块将组选择信号和端口选择信号转换成对应的组使能信号和端口使能信号,所述顶层控制模块根据所述组使能信号和端口使能信号选中对应的目标核心单元,以通过被选中的目标核心单元输出预定数量的接口信号,通过配置不同的组选择信号和端口选择信号,使得所述顶层控制模块选中不同的目标核心单元进行预定数量的接口信号输出,最终达到对整个PCIe交换控制器芯片中全部Lane路进行测试的目的,以及达到对PCIe交换控制器芯片的可靠性和兼容性进行测试的目的。
为了使所述PCIe交换控制器芯片和外部接口信号连接更加便捷,结合图2a,所述PCIe交换控制器芯片还包括整合模块和顶层端口模块。其中,所述整合模块与所述顶层控制模块连接,用于接收预设数量的接口信号,并对预设数量的接口信号进行整合,整合成Y路预定宽度的接口信号。所述顶层端口模块和所述整合模块连接,且所述顶层端口模块中包含Y个端口模块,Y路预定宽度的接口信号输入到Y个所述端口模块中,以对外输出接口信号。
由于核心单元的规格不同,因此不是每一个分组中选择出的核心单元都包含预定宽度的接口信号,因此需要所述整合单元对预设数量的接口信号进行整合,以得到Y路预定宽度的接口信号。另外由于PIPE信号数量众多,并不是每个PIPE接口信号都有单独的Lane信号,有时候多个Lane信号会共用一个PIPE信号,因此不能直接复用简单的信号拼接模块,需要在所述整合单元中对大量的特殊信号进行处理。如PIPE接口信号中一条Lane的数据信号是32bit,8条Lane的数据则为32x8=256bit,而像PIPE接口信号中的比率信号是3bit,无论多少条Lane都采用固定的3bit比率信号,因此不能对比率信号进行拼接,而是8条Lane共用这3bit比率信号。
当对所述PCIe交换控制器芯片进行测试时,所述PCIe交换控制器芯片需要与所述FPGA模块上的多个PHY模块连接,PHY模块一共具有Y个端口,且每个端口支持预定宽度的接口信号,因此需要将预定数量的PIPE接口信号整合成Y路预定宽度的接口信号,并通过所述顶层端口模块中的Y个端口和PHY模块的Y个端口进行接口信号传输。
例如,所述PHY模块最多支持6个端口,每个端口支持8Lane,此时,所述整合模块接受的接口信号为48Lane,需要将48Lane的接口信号整合成6路8Lane的接口信号,所述顶层端口模块包含6个端口模块,分别和所述PHY模块的6个端口对应,再通过6个端口模块分别将6路8Lane的接口信号输入到PHY模块的6个端口中。
为了配置所述顶层控制模块向外部传输的接口信号的数量,结合图2b,所述PCIe交换控制器芯片还包括数量检测模块和RISC-V(RISC-V instruction set architecture,RISC-V指令集)模块,其中:所述RISC-V模块用于配置所述组选择信号和所述端口选择信号。所述数量检测模块设置在所述顶层控制模块和所述整合模块之间,所述数量检测模块分别与所述顶层控制模块和所述整合模块连接,适用于判断接口信号的总数量是否为预定数量。
其中,所述RISC-V模块为开源的CPU处理器,通过所述RISC-V模块向所述控制寄存器发送读写指令,以配置所述组选择信号和所述端口选择信号,进而控制接口信号的数量。
所述数量检测模块还与所述RISC-V模块连接,当接口信号的总数量不等于预定数量时,所述数量检测模块用于向所述RISC-V模块发送中断信号。所述RISC-V模块接收到中断信号后,用于重新配置所述组选择信号和所述端口选择信号,使得接口信号的总数量等于预定数量。当接口信号的总数量等于预定数量时,所述数量检测模块用于将接口信号输送至所述整合模块。
其中,当所述数量检测模块检测到接口信号的总数量不等于预定数量时,会切断上游端口的PIPE接口信号,并将所有的PIPE接口信号输出为0,同时向所述RISC-V模块发送高电平信号的中断信号,当所述RISC-V模块检测到中断信号的电平拉高时,会开始运行纠正错误的中断处理函数,所述中断处理函数会让所述RISC-V模块向所述控制寄存器发送指令,进而将所述组选择信号和所述端口选择信号初始化,使PIPE接口信号的总数量等于预定数量,进而使得PIPE接口信号能够正常由所述顶层控制模块向所述整合模块传输。以预定的PIPE接口信号的Lane数为48为例进行说明,当触发中断信号后,所述RISC-V模块配置所述组选择信号和所述端口选择信号为初始化状态,以选中6个分组中的X8核心单元,使得所述之后的PIPE接口信号再进入所述数量检测模块时,总的Lane数等于48,PIPE接口信号便能够正常由所述顶层控制模块向所述整合模块传输。
在本实施中,为了通过RISC-V模块向所述控制寄存器发送指令,结合图2b,所述PCIe交换控制器芯片还包括总线转换模块,其中:所述RISC-V模块和所述总线转换模块连接,所述总线转换模块和所述控制寄存器连接;所述RISC-V模块和所述总线转换模块之间通过AXI总线通信,所述总线转换模块和所述控制寄存器之间通过APB总线通信,所述总线转换模块用于将AXI信号转换为APB信号,进而使得所述RISC-V模块通过所述总线转换模块对所述控制寄存器进行读写。
具体的,在本实施中,所述RISC-V模块的对外接口是32bit的AXI接口,而所述控制寄存器的对外接口是32bit的APB接口,因此无法直接通过所述RISC-V模块对所述控制寄存器进行读写,所述总线转换模块可以将AXI协议的信号转换成APB协议的信号,在接入所述总线转换模块后,所述RISC-V模块就可以读写所述控制寄存器,进而所述RISC-V模块就可以对所述控制寄存器中的组选择信号和所述端口选择信号进行配置。
通过多次配置所述组选择信号和所述端口选择信号,使得所述PCIe交换控制器芯片中的每个核心单元都至少被选中过一次,以实现对所述PCIe交换控制器芯片中全部核心单元的测试。具体的,以所述PCIe交换控制器芯片包含96Lane为例,将96条Lane划分到M个独立核心单元中,每次都从M个独立核心单元中选择48条Lane进行测试,直到每个核心单元都至少被选中过一次,即96条Lane全部都被测试过。
在本实施中,结合图2b和图3,N的取值为六,M的取值为五,M个独立核心单元具体为2个X1核心单元、1个X2核心单元、1个X4核心单元和1个X8核心单元;预定数量的接口信号为48路接口信号。
本实施例中,通过编写用户配置的软件驱动,固化到所述RISC-V模块的ROM空间里,RISC-V模块在上电后就会自动读取ROM指令,通过配置所述控制寄存器,输出特定的组选择信号和所述端口选择信号,以选中对应的单元核心,以输出预定数量的接口信号,满足预定数量的接口信号有多种实现方式,在图3所示情况下,预定数量的接口信号为48Lane,分组为6组,每个分组具有5个单元核心,每个分组的单元核心排序从左到右为:X1核心单元、X1核心单元、X2核心单元、X4核心单元和X8核心单元,此时以几个实例对组选择信号和所述端口选择信号的配置进行说明。
结合图2b和图3,为了输出预定数量的接口信号,即48Lane的接口信号,第一种方式是,使用一些分组的全部核心单元,而另一些分组的核心单元全部都不使用。例如,将组选择信号配置为Group_mux=6’h7,在组选择信号中第一位“6”表示组选择信号转换出的组使能信号一共6bit,组选择信号的第二位为分隔符,第三位为进制标识符,将所述组选择信号部分转换成二进制,得到Group_mux=“6’b000111”,可以看出在此组选择信号下,第一分组(Group1)、第二分组(Group2)和第三分组(Group3)被选中,第四分组(Group4)、第五分组(Group5)和第六分组(Group6)没有被选中。将端口选择信号配置为Port_mux=30’h7FFF,端口选择信号中的前两位“30”表示端口选择信号转换出的端口使能信号一共30bit,第三位为分隔符,第四位为进制标识符,将所述端口选择信号部分转换成二进制,得到Port_mux=“30’b 11111 11111 11111”,可以看出其中第一分组对应的端口使能信号为“11111”,表示选中第一分组中全部5个核心单元,一共16Lane;第二分组对应的端口使能信号为“11111”,表示选中第二分组中全部5个核心单元,一共16Lane;第三分组对应的端口使能信号为“11111”,表示选中第三分组中全部5个核心单元,一共16Lane;全部被选中的核心单元一共48Lane,在输出48Lane的接口信号的同时,对着被选中的48Lane进行验证。
第二种方式是,所有分组都使用,每个分组输出的Lane数量一致。例如,将组选择信号配置为Group_mux=6’h3F,得到Group_mux=“6’b111111”,即选中全部分组,同时将端口选择信号配置为Port_mux=30’h1EF7BDEF,得到Port_mux=“30’b 1111 01111 0111101111 01111 01111”,此时,在端口使能信号中不足5位的,会在左侧补0直到位数达到5位,可以看出第一分组到第六分组对应的端口使能信号都为“01111”,表示选中每个分组中的两个X1核心单元、一个X2核心单元、一个X4核心单元,每个分组被选中的Lane数为8,所述Lane总数为48。或者,将所述组选择信号配置为Group_mux=6’h3F,即选中全部分组,同时将端口选择信号配置为Port_mux=30’h21084210,得到Port_mux=“30’10000 1000010000 10000 10000 10000”,即第一分组到第六分组对应的端口使能信号都为“10000”,表示选中每个分组中的X8核心单元,每个分组被选中的Lane数为8,所述Lane总数也可以达到48。
第三种方式是,所有分组都使用,但每个分组输出的Lane数量不一致。例如,将组选择信号配置为Group_mux=6’h3F,得到Group_mux=“6’b111111”,即选中全部分组,同时将端口选择信号配置为Port_mux=30’h22D9DD0C,可以得到Port_mux=“30’b 1000101101 10011 10111 01000 01100”,即第一分组对应的端口使能信号为“01100”,表示选中第一分组的X2核心单元和X4核心单元,一共6Lane;第二分组对应的端口使能信号为“01000”,表示选中第二分组的X4核心单元,一共4Lane;第三分组对应的端口使能信号为“10111”,表示选中第三分组的两个X1核心单元、X2核心单元和X8核心单元,一共12Lane;第四分组对应的端口使能信号为“10011”,表示选中第四分组的两个X1核心单元和X8核心单元,一共10Lane;第五分组对应的端口使能信号为“01101”,表示选中第五分组的一个X1核心单元、X2核心单元和X4核心单元,一共7Lane;第六分组对应的端口使能信号为“10001”,表示选中第六分组的一个X1核心单元和X8核心单元,一共9Lane;总Lane数也刚好为48Lane。
第四种方式是,使用一部分分组,且每个分组输出的Lane数量不一致。例如将组选择信号配置为Group_mux=6’hF,得到Group_mux=“6’b1111”,即选中第一分组、第二分组、第三分组和第四分组,同时将端口选择信号配置为Port_mux=30’h377FC,可以得到Port_mux=“30’b 110 11101 11111 11100”,即第一分组对应的端口使能信号为“11100”,表示选中第一分组的X2核心单元、X4核心单元和X8核心单元,一共14Lane;第二分组对应的端口使能信号为“11111”,表示选中第二分组的全部核心单元,一共16Lane;第三分组对应的端口使能信号为“11101”,表示选中第三分组的一个X1核心单元、X2核心单元、X4核心单元和X8核心单元,一共15Lane;第四分组对应的端口使能信号为“000110”,表示选中第四分组的一个X1核心单元以及X2核心单元,一共3Lane;总Lane数也刚好为48Lane。
另外,在本实施例中,触发所述中断信号时,所述RISC-V模块配置所述组选择信号和所述端口选择信号为初始化状态,和上述的第二种方式一样,此时组选择信号Group_mux=6’h3F,端口选择信号Port_mux=30’h21084210,以选中6个分组中的X8核心单元,使得总的Lane数等于48。事实上,所述组选择信号和所述端口选择信号的初始化状态可以是任何使总Lane数为48的配置。
在本实施例中,通过对所述组选择信号和所述端口选择信号的配置,实现对PCIe交换控制器芯片的原型验证,以充分验证PCIe交换控制器芯片所支持的功能点,提高芯片的兼容性和可靠性。
本发明实施例还提供一种PCIe交换控制器芯片的验证系统,所述验证系统用于对如前述实施例所述的PCIe交换控制器芯片进行验证,结合图4,所述验证系统包括RC设备、EP设备和FPGA模块,其中:
所述FPGA模块包括多个FMC接口、多个PHY模块、多个EP测试子板、多个RC测试子板和待验证的PCIe交换控制器芯片;所述PHY模块与所述PCIe交换控制器芯片连接,所述PHY模块与所述FMC接口连接,其中一部分FMC接口通过所述RC测试子板与所述RC设备连接,另一部分FMC接口通过所述EP测试子板与所述EP设备连接。
其中,所述RC测试子板和所述EP测试子板上都设置有FMC接口,所述FPGA模块上的部分FMC接口和所述RC测试子板上的FMC接口连接,所述FPGA模块上的另一部分FMC接口和所述EP测试子板上的FMC接口连接。另外,所述RC设备包括电脑和服务器等设备,所述EP设备包括显卡、固态硬盘、声卡以及网卡等设备。所述PCIe交换控制器芯片的内部架构已在前述实施例具体阐述,故在此不在赘述。
所述RC设备与RC测试子板连接,并在所述FPGA模块和RC设备之间传递RC数据流;所述EP设备与EP测试子板连接,并在所述FPGA模块和EP设备之间传递EP数据流。
其中,结合图4和图5,所述RC测试子板上还设置有PCIe金手指接口,所述RC设备通过所述PCIe金手指接口与RC测试子板连接,所述EP测试子板上还设置有PCIe插槽接口,所述EP设备通过所述PCIe插槽接口与EP测试子板连接。另外,所述PHY模块分为一部分与RC设备连接,另一部分与EP设备连接,所述PHY模块采用赛灵思PHY模块。
所述FMC接口适用于在所述PHY模块和所述RC设备间传递RC数据流,或在所述PHY模块和所述EP设备间传递EP数据流;所述PHY模块用于在高速串行数据和并行数据之间进行转换,以实现PHY模块和所述RC设备RC数据流传输,以及PHY模块和所述EP设备之间的EP数据流传输;所述RC设备和所述EP设备通过所述PCIe交换控制器芯片进行数据流通信,以实现对PCIe交换控制器芯片的各个核心单元进行验证。
在传统技术方案中,如图6所示,所述FPGA模块包含外接的PHY测试子板,RC设备需要通过外接的PHY测试子板和所述FPGA模块之间进行数据传输,而PHY测试子板的生产周期长,对PCIe交换控制器芯片的验证周期过长可能会耽误产品的流片时间节点,同时需要专门制作PHY芯片和PCB测试子板使投资成本增加。
在本实施例中,如图4和图5所示,不需要外接的PHY测试子板,直接利用FPGA模块上的PHY模块,所述RC数据流由所述RC设备发出,经过所述PHY模块后,达到所述PCIe交换控制器芯片,所述PCIe交换控制器芯片再将所述RC数据流经过其他的PHY模块,发送到所述EP设备中,同理,EP设备也会将EP数据流通过PHY模块发送到所述PCIe交换控制器芯片中,所述PCIe交换控制器芯片再将所述EP数据流经过其他的PHY模块发送到所述RC设备中,已完成RC设备和EP设备之间的数据流传输,进而完成对PCIe交换控制器芯片的原型验证测试。
为了使数据流能在PHY模块和PCIe交换控制器芯片之间传输,所述FPGA模块还包括转换模块,所述PHY模块与所述转换模块连接,所述转换模块与所述PCIe交换控制器芯片连接,适用于对并行数据进行时钟域同步转换和数据位宽转换,以实现所述PHY模块和所述PCIe交换控制器芯片之间的EP数据流和RC数据流传输;所述RC设备和所述EP设备通过所述PCIe交换控制器芯片进行数据流通信,以实现对PCIe交换控制器芯片的FPGA原型验证。
其中,由于PHY模块与PCIe交换控制器芯片的PIPE接口信号的时钟和数据位宽不一致,因此需要接入一个转换模块对PIPE接口信号的时钟和数据位宽进行处理,该转换模块具有两组PIPE接口和时钟,分别连接PHY模块和所述PCIe交换控制器芯片,以实现对PIPE接口信号的处理。以PCIe版本为Gen1为例进行说明,结合图5,此时,所述PCIe交换控制器芯片的PIPE数据位宽为32bit,工作时钟为62.5MHz,而赛灵思PHY模块的PIPE数据位宽是16bit,工作时钟是125MHz,PHY模块和PCIe交换控制器芯片之间的PIPE接口无法直接相连,所述转换模块可以在保证带宽一致的前提下,进行时钟域同步转换和数据位宽转换,以便于所述PIPE接口信号能够在所述PHY模块和所述PCIe芯片之间传输。
基于前述实施例的验证系统,本发明实施例还提供一种PCIe交换控制器芯片的验证方法,所述验证方法应用在所述的FPGA原型验证系统上,结合图7,所述验证方法的具体流程包括:
步骤101:通过RC测试子板在RC设备和FPGA模块之间传递RC数据流,通过EP测试子板在EP设备和FPGA模块之间传递EP数据流。
其中,所述RC设备通过PCIe延长线连接到RC测试子板上,RC设备向FPGA模块发射高速串行数据,同时所述EP设备通过PCIe延长线连接到EP测试子板卡。
步骤102:通过所述FMC接口,在所述PHY模块和所述RC设备间传递RC数据流,在所述PHY模块和所述EP设备间传递EP数据流。
其中,通过所述RC测试子板卡上,所述高速串行数据在所述PCIe金手指接口和所述FMC接口之间传输,通过所述EP测试子板卡上,所述高速串行数据在所述PCIe卡槽接口和所述FMC接口之间传输,同时高速串行数据会在所述FMC接口和所述PHY模块之间传输。
步骤103:通过所述PHY模块对高速串行数据和并行数据进行相互转换,以实现PHY模块和所述RC设备、所述EP设备之间的EP数据流和RC数据流传输。
步骤104:通过所述转换模块对并行数据进行时钟域同步转换和数据位宽转换,以实现所述PHY模块和所述PCIe交换控制器芯片之间的EP数据流和RC数据流传输。
其中,由于PHY模块与PCIe交换控制器芯片的PIPE接口信号的时钟和数据位宽不一致,因此需要接入一个转换模块对PIPE接口信号的时钟和数据位宽进行处理,所述转换模块可以在保证带宽一致的前提下,进行时钟域同步转换和数据位宽转换,以便于所述PIPE接口信号能够在所述PHY模块和所述PCIe芯片之间传输。
步骤105:所述RC设备和所述EP设备通过所述PCIe交换控制器芯片进行数据流通信,以实现对所述PCIe交换控制器芯片的FPGA原型验证。
其中,整个数据流主要从RC设备到所述PCIe交换控制器芯片再去访问EP设备,同时EP设备也可以经过PCIe交换控制器芯片再去访问RC设备,最终达到RC和EP相互通信的板级测试目标。
结合图8,步骤105具体包括:
步骤1051:通过RISC-V模块读写控制寄存器,配置所述组选择信号和所述端口选择信号。
其中,所述RISC-V模块为开源的CPU处理器,通过所述RISC-V模块向所述控制寄存器发送读写指令,以配置所述组选择信号和所述端口选择信号,进而控制接口信号的数量。
步骤1052:控制寄存器将所述组选择信号和所述端口选择信号发送给模式选择模块。
步骤1053:模式选择模块将组选择信号和端口选择信号转换成组使能信号和端口使能信号,并发送给顶层控制模块。
步骤1054:顶层控制模块根据组使能信号和端口使能信号,选择PCIe交换控制器芯片中对应分组中的核心单元,以通过被选中的目标核心单元输出预定数量的接口信号。
步骤1055:通过多次配置所述组选择信号和所述端口选择信号,使得所述PCIe交换控制器芯片中的每个核心单元都至少被选中过一次,以实现对所述PCIe交换控制器芯片中全部核心单元的测试。
其中,所述顶层控制模块根据所述组使能信号和端口使能信号选中对应的目标核心单元,以通过被选中的目标核心单元输出预定数量的接口信号,通过配置不同的组选择信号和端口选择信号,使得所述顶层控制模块选中不同的目标核心单元进行预定数量的接口信号输出,达到对整个PCIe交换控制器芯片中全部Lane路进行测试的目的,同时通过选择不同的核心单元输出接口信号,可以完成对所述PCIe交换控制器芯片的兼容性和稳定性测试,最终完成所述PCIe交换控制器芯片的FPGA原型测试。
为了提高所述PCIe交换控制器芯片对不同EP设备和RC设备的兼容性,所述验证方法还包括:通过切换接入所述FPGA模块的RC设备数量和类型以及接入所述FPGA模块的EP设备数量和类型,以测试所述PCIe交换控制器芯片在不同数量和类型的RC设备和EP设备工作时的性能。
例如,在所述PCIe交换控制器芯片的基础工作情境下,同时接入3个RC和3个EP设备,RC设备可以同时访问多个EP设备进行工作,结合图5,在测试过程中RC设备通过PCIe延长线连接RC测试子板的PCIe金手指接口,EP设备通过PCIe延长线连接EP测试子板的插槽接口,EP设备选用一个独立显卡、一个网卡和一个固态硬盘。当RC中的电脑开机时,所述PCIe交换控制器芯片的上下游端口同时进入链路训练阶段,链路训练完成后会对下游设备进行枚举,并成功枚举到上述三个EP设备。
同时,在网卡上接入网线并保证能查询到网址IP(Intellectual Property,网际互连协议),独立显卡通过HDMI(High Definition Multimedia Interface,高清多媒体接口)线接到带有HDMI接口的显示器上,在电脑上对固态硬盘进行分区,方便后续数据的读写存储。
为了同时交叉验证所述PCIe交换控制器芯片在网络、显示和内存领域的三大功能,在电脑上使用网卡接入的网络信号登录多个视频网站在线播放大容量视频,同时下载该视频并分别存储在固态硬盘中。为了保证所述PCIe交换控制器芯片的稳定性,会对这种场景进行大量的压力测试。所述PCIe交换控制器芯片在使用6个X8Lane端口的情况下,相较于X1宽度端口的方案而言,大大提高了数据带宽和数据吞吐率,在播放大容量的视频流量时,X1的方案会使视频播放有一定的卡顿现象,而X8宽度端口的方案会十分流畅。
所述PCIe交换控制器芯片的内部架构已在前述实施例具体阐述,所述PCIe交换控制器芯片的验证系统已在前述实施例具体阐述,故在此不在赘述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种PCIe交换控制器芯片,其特征在于,包括:控制寄存器、模式选择模块和顶层控制模块,其中:
所述顶层控制模块被划分成N个独立的分组,每个分组包含M个独立核心单元;
所述控制寄存器与所述模式选择模块连接,用于向所述模式选择模块输出组选择信号和端口选择信号;
所述模式选择模块与所述顶层控制模块连接,用于将组选择信号转换成组使能信号,将端口选择信号转换成端口使能信号,并将组使能信号和端口使能信号发送给所述顶层控制模块;
所述顶层控制模块还用于根据所述组使能信号选择对应的目标分组,根据端口使能信号在所述目标分组中选择对应的目标核心单元,以通过被选中的目标核心单元输出预定数量的接口信号。
2.根据权利要求1所述的PCIe交换控制器芯片,其特征在于,所述PCIe交换控制器芯片还包括整合模块和顶层端口模块,其中:
所述整合模块与所述顶层控制模块连接,用于接收预设数量的接口信号,并对预设数量的接口信号进行整合,整合成Y路预定宽度的接口信号;
所述顶层端口模块和所述整合模块连接,且所述顶层端口模块中包含Y个端口模块,Y路预定宽度的接口信号输入到Y个所述端口模块中,以对外输出接口信号。
3.根据权利要求2所述的PCIe交换控制器芯片,其特征在于,所述PCIe交换控制器芯片还包括数量检测模块和RISC-V模块,其中:
所述RISC-V模块用于配置所述组选择信号和所述端口选择信号;
所述数量检测模块设置在所述顶层控制模块和所述整合模块之间,所述数量检测模块分别与所述顶层控制模块和所述整合模块连接,用于判断接口信号的总数量是否为预定数量;
所述数量检测模块还与所述RISC-V模块连接,当接口信号的总数量不等于预定数量时,所述数量检测模块用于向所述RISC-V模块发送中断信号;
所述RISC-V模块接收到中断信号后,用于重新配置所述组选择信号和所述端口选择信号,使得接口信号的总数量等于预定数量;
当接口信号的总数量等于预定数量时,所述数量检测模块用于将接口信号输送至所述整合模块。
4.根据权利要求3所述的PCIe交换控制器芯片,其特征在于,所述PCIe交换控制器芯片还包括总线转换模块,其中:
所述RISC-V模块和所述总线转换模块连接,所述总线转换模块和所述控制寄存器连接;
所述RISC-V模块和所述总线转换模块之间通过AXI总线通信,所述总线转换模块和所述控制寄存器之间通过APB总线通信,所述总线转换模块用于将AXI信号转换为APB信号,进而使得所述RISC-V模块通过所述总线转换模块对所述控制寄存器进行读写;
通过多次配置所述组选择信号和所述端口选择信号,使得所述PCIe交换控制器芯片中的每个核心单元都至少被选中过一次,以实现对所述PCIe交换控制器芯片中全部核心单元的测试。
5.根据权利要求1所述的PCIe交换控制器芯片,其特征在于,N的取值为六,M的取值为五,M个独立核心单元为2个X1核心单元、1个X2核心单元、1个X4核心单元和1个X8核心单元;预定数量的接口信号为48路接口信号。
6.一种PCIe交换控制器芯片的验证系统,其特征在于,所述验证系统用于对如权利要求1至5中任一项所述的PCIe交换控制器芯片进行验证,所述验证系统包括RC设备、EP设备和FPGA模块,其中:
所述FPGA模块包括多个FMC接口、多个PHY模块、多个EP测试子板、多个RC测试子板和待验证的PCIe交换控制器芯片;所述PHY模块与所述PCIe交换控制器芯片连接,所述PHY模块与所述FMC接口连接,其中一部分FMC接口通过所述RC测试子板与所述RC设备连接,另一部分FMC接口通过所述EP测试子板与所述EP设备连接;
所述RC设备与RC测试子板FMC接口连接,并在所述FPGA模块和RC设备之间传递RC数据流;所述EP设备与EP测试子板连接,并在所述FPGA模块和EP设备之间传递EP数据流;
所述FMC接口适用于在所述PHY模块和所述RC设备间传递RC数据流,或在所述PHY模块和所述EP设备间传递EP数据流;
所述PHY模块用于在高速串行数据和并行数据之间进行转换,以实现PHY模块和所述RC设备之间的RC数据流传输,以及PHY模块和所述EP设备之间的EP数据流传输;
所述RC设备和所述EP设备通过所述PCIe交换控制器芯片进行数据流通信,以实现对PCIe交换控制器芯片的各个核心单元进行验证。
7.根据权利要求6所述的PCIe交换控制器芯片的验证系统,其特征在于,所述FPGA模块还包括转换模块,所述PHY模块与所述转换模块连接,所述转换模块与所述PCIe交换控制器芯片连接,用于对并行数据进行时钟域同步转换和数据位宽转换,以实现所述PHY模块和所述PCIe交换控制器芯片之间的EP数据流和RC数据流传输;
所述RC设备和所述EP设备通过所述PCIe交换控制器芯片进行数据流通信,以实现对PCIe交换控制器芯片的FPGA原型验证。
8.一种PCIe交换控制器芯片的验证方法,其特征在于,所述验证方法应用在如权利要求6至7中任一项所述的PCIe交换控制器芯片的验证系统上,包括:
通过RC测试子板在RC设备和FPGA模块之间传递RC数据流,通过EP测试子板在EP设备和FPGA模块之间传递EP数据流;
通过所述FMC接口,在所述PHY模块和所述RC设备间传递RC数据流,在所述PHY模块和所述EP设备间传递EP数据流;
通过所述PHY模块对高速串行数据和并行数据进行相互转换,以实现PHY模块和所述RC设备之间的RC数据流传输,以及PHY模块和所述EP设备之间的EP数据流传输;
通过转换模块对并行数据进行时钟域同步转换和数据位宽转换,以实现所述PHY模块和所述PCIe交换控制器芯片之间的EP数据流和RC数据流传输;
所述RC设备和所述EP设备通过所述PCIe交换控制器芯片进行数据流通信,以实现对所述PCIe交换控制器芯片的FPGA原型验证。
9.根据权利要求8所述的PCIe交换控制器芯片的验证方法,其特征在于,所述RC设备和所述EP设备通过所述PCIe交换控制器芯片进行数据流通信,以实现对所述PCIe交换控制器芯片的FPGA原型验证包括:
通过RISC-V模块读写控制寄存器,配置所述组选择信号和所述端口选择信号;
控制寄存器将所述组选择信号和所述端口选择信号发送给模式选择模块;
模式选择模块将组选择信号和端口选择信号转换成组使能信号和端口使能信号,并发送给顶层控制模块;
顶层控制模块根据组使能信号和端口使能信号,选择PCIe交换控制器芯片中对应分组中的核心单元,以通过被选中的目标核心单元输出预定数量的接口信号;
通过多次配置所述组选择信号和所述端口选择信号,使得所述PCIe交换控制器芯片中的每个核心单元都至少被选中过一次,以实现对所述PCIe交换控制器芯片中全部核心单元的测试。
10.根据权利要求8所述的PCIe交换控制器芯片的验证方法,其特征在于,所述验证方法还包括:
通过切换接入所述FPGA模块的RC设备数量和类型以及接入所述FPGA模块的EP设备数量和类型,以测试所述PCIe交换控制器芯片在不同数量和类型的RC设备和EP设备工作时的性能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211706096.4A CN116150075B (zh) | 2022-12-29 | 2022-12-29 | 一种PCIe交换控制器芯片、验证系统和验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211706096.4A CN116150075B (zh) | 2022-12-29 | 2022-12-29 | 一种PCIe交换控制器芯片、验证系统和验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116150075A true CN116150075A (zh) | 2023-05-23 |
CN116150075B CN116150075B (zh) | 2023-10-20 |
Family
ID=86340037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211706096.4A Active CN116150075B (zh) | 2022-12-29 | 2022-12-29 | 一种PCIe交换控制器芯片、验证系统和验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116150075B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116400199A (zh) * | 2023-06-05 | 2023-07-07 | 中国汽车技术研究中心有限公司 | 芯片时钟毛刺故障注入交叉验证测试方法和装置 |
CN116955026A (zh) * | 2023-06-13 | 2023-10-27 | 芯启源(上海)半导体科技有限公司 | PCIe switch在PIPE接口基础上的新型测试方法、系统及FPGA装置 |
CN118069571A (zh) * | 2024-04-24 | 2024-05-24 | 北京数渡信息科技有限公司 | 具有集合通信在网计算功能的PCIe交换芯片及PCIe交换机 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710314A (zh) * | 2009-11-17 | 2010-05-19 | 中兴通讯股份有限公司 | 高速外围部件互连交换控制器及其实现方法 |
CN102855338A (zh) * | 2011-06-28 | 2013-01-02 | 重庆重邮信科通信技术有限公司 | 现场可编程门阵列原型验证装置及验证方法 |
US20130054867A1 (en) * | 2011-08-23 | 2013-02-28 | Fujitsu Limited | Communication apparatus and id setting method |
CN110837486A (zh) * | 2019-11-13 | 2020-02-25 | 天津津航计算技术研究所 | 一种基于FPGA的FlexRay-CPCIe通信模块 |
CN115202253A (zh) * | 2022-07-04 | 2022-10-18 | 珠海格力电器股份有限公司 | 基于fpga的芯片核心验证装置和方法 |
-
2022
- 2022-12-29 CN CN202211706096.4A patent/CN116150075B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710314A (zh) * | 2009-11-17 | 2010-05-19 | 中兴通讯股份有限公司 | 高速外围部件互连交换控制器及其实现方法 |
CN102855338A (zh) * | 2011-06-28 | 2013-01-02 | 重庆重邮信科通信技术有限公司 | 现场可编程门阵列原型验证装置及验证方法 |
US20130054867A1 (en) * | 2011-08-23 | 2013-02-28 | Fujitsu Limited | Communication apparatus and id setting method |
CN110837486A (zh) * | 2019-11-13 | 2020-02-25 | 天津津航计算技术研究所 | 一种基于FPGA的FlexRay-CPCIe通信模块 |
CN115202253A (zh) * | 2022-07-04 | 2022-10-18 | 珠海格力电器股份有限公司 | 基于fpga的芯片核心验证装置和方法 |
Non-Patent Citations (4)
Title |
---|
PCI-SIG: "《PCI Express® Base Specification Revision 3.0》", Retrieved from the Internet <URL:www.pcisig.com> * |
林凡淼,刘鑫,陆晓峰: "一种PCIe交换电路设计与实现", 电子与封装, vol. 21, no. 3 * |
赵姣;杨珂;: "一种PCIE交换芯片交换管控方法", 中国集成电路, no. 4 * |
闫福鑫;许志宏;刘佑宝;: "PCI总线从接口的设计与验证", 计算机技术与发展, no. 08 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116400199A (zh) * | 2023-06-05 | 2023-07-07 | 中国汽车技术研究中心有限公司 | 芯片时钟毛刺故障注入交叉验证测试方法和装置 |
CN116400199B (zh) * | 2023-06-05 | 2023-09-15 | 中国汽车技术研究中心有限公司 | 芯片时钟毛刺故障注入交叉验证测试方法和装置 |
CN116955026A (zh) * | 2023-06-13 | 2023-10-27 | 芯启源(上海)半导体科技有限公司 | PCIe switch在PIPE接口基础上的新型测试方法、系统及FPGA装置 |
CN118069571A (zh) * | 2024-04-24 | 2024-05-24 | 北京数渡信息科技有限公司 | 具有集合通信在网计算功能的PCIe交换芯片及PCIe交换机 |
Also Published As
Publication number | Publication date |
---|---|
CN116150075B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116150075B (zh) | 一种PCIe交换控制器芯片、验证系统和验证方法 | |
US8234483B2 (en) | Memory units with packet processor for decapsulating read write access from and encapsulating response to external devices via serial packet switched protocol interface | |
US7953074B2 (en) | Apparatus and method for port polarity initialization in a shared I/O device | |
US7698483B2 (en) | Switching apparatus and method for link initialization in a shared I/O environment | |
US7917658B2 (en) | Switching apparatus and method for link initialization in a shared I/O environment | |
US11907140B2 (en) | Serial interface for semiconductor package | |
CN102984123A (zh) | 使用多个消息组的计算机系统中的代理之间的通信消息请求事务类型 | |
TW200527211A (en) | Method and apparatus for shared I/O in a load/store fabric | |
US10996950B2 (en) | Apparatuses and methods involving selective disablement of side effects caused by accessing register sets | |
TW200530837A (en) | Method and apparatus for shared I/O in a load/store fabric | |
CN103490852A (zh) | 为分组报头提供前缀 | |
JP2010524089A (ja) | バッファ装置と集積回路メモリ装置を含むメモリシステムトポロジ | |
WO2008054696A1 (en) | Memory controller including a dual- mode memory interconnect | |
KR101679333B1 (ko) | 트랜잭션 계층 패킷의 싱글 엔드형 통신을 위한 방법, 장치 및 시스템 | |
CN116841932B (zh) | 一种可灵活连接的便携式高速数据存取设备及其工作方法 | |
CN105512084A (zh) | 一种Zynq平台数据交互装置 | |
CN103346982B (zh) | 星形结构RapidIO互连系统及其交换机配置方法 | |
US7596650B1 (en) | Increasing availability of input/output (I/O) interconnections in a system | |
CN107645457A (zh) | 一种PCIe交换机系统和方法 | |
Wu et al. | A flexible FPGA-to-FPGA communication system | |
IE970147A1 (en) | Programmable read/write access signal and method therefor | |
US8612663B1 (en) | Integrated circuit devices, systems and methods having automatic configurable mapping of input and/or output data connections | |
US8000322B2 (en) | Crossbar switch debugging | |
JP2000090046A (ja) | インタ―フェ―ス・モジュ―ル | |
JPH07154451A (ja) | システム相互接続用の走査プログラマブルチェックマトリクス |
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 |