基于pci总线的ip核仿真验证平台及其验证方法

文档序号:6410570阅读:321来源:国知局
专利名称:基于pci总线的ip核仿真验证平台及其验证方法
技术领域
本发明涉及集成电路设计技术领域,具体是指一种基于PCI(PeripheralComponent Interconnection外设部件互连)总线的IP核仿真验证平台及其验证方法。
背景技术
一般软IP核的验证方法,是指在软件环境下进行软件仿真以验证IP(Intellectual Property)核功能的正确性,然后写入FPGA(Field ProgamableGate Array)器件中进行硬件电路的验证,测试正确则IP核验证完毕,测试存在问题则返回重新修改IP核。这种方法可有效检验IP的逻辑功能及其在实际电路中的正确性,但也存在一定缺点在FPGA中进行硬件验证时,难以产生并控制大量用于测试IP的测试信号,不但难以采集测试结果,而且也不利于实时监测测试过程。

发明内容
本发明的目的就是为了解决上述现有技术中存在的不足之处,提供一种基于PCI总线的IP核仿真验证平台及其验证方法。该方法既能有效模拟IP在SoC(System on Chip)中的环境,又能方便利用FPGA和普通的个人计算机对设计的IP进行硬件级别验证,而且测试人员可以很好地监测被测IP的情况,实时产生测试数据和获取测试结果。
本发明通过下述技术方案实现所述基于PCI总线的IP核仿真验证平台包括晶体振荡器、直流稳压源、FPGA、编程接口、SDRAM(SynchronousDynamic Random Access Memory同步动态存储器)和PCI接口组成,其相互连接关系为,直流稳压源分别与晶体振荡器、FPGA、编程接口、SDRAM插槽相连接,FPGA通过PCI总线与PCI接口相连接,并通过SDRAM总线与SDRAM插槽相连接,晶体振荡器分别与FPGA和SDRAM插槽相连接,编程接口与FPGA相连接。
为了更好地实现本发明,所述FPGA包括PCI总线控制模块、存储控制模块、IP模块(即所需验证的IP核)组成,其相互连接关系为,所述PCI总线控制模块通过内部IO总线与IP模块相连,通过存储总线与存储控制模块相连接,同时外接计算机的PCI插槽,所述存储控制模块还通过内存总线与IP模块相连,并外接SDRAM(同步动态存储器)。所述PCI总线控制模块包括PCI接口模块、译码模块、目标状态机模块、配置空间模块、MEM接口模块、IO接口模块组成,其相互连接关系为,所述PCI接口模块通过数据线分别与PCI总线、目标状态机模块、配置空间模块和IO接口模块相连接,所述译码模块通过数据线分别与配置空间模块和目标状态机模块相连接,所述MEM接口模块通过数据线分别与MEM总线、目标状态机模块和配置空间模块相连接,所述IO接口模块还通过数据线分别与IO总线和目标状态机模块相连接。所述存储控制模块包括存储器参数预处理模块、存储器命令仲裁模块、自动刷新模块、区译码模块、存储器写准备模块、存储器读模块和RAM控制模块组成,其相互连接关系为,所述存储器命令仲裁模块通过数据线分别与存储器参数预处理模块、自动刷新模块、区译码模块和RAM控制模块相连接,所述存储器参数预处理模块还通过数据线分别与自动刷新模块、区译码模块和RAM控制模块相连接,所述存储器写准备模块通过数据线与RAM控制模块相连接,所述存储器读模块和RAM控制模块通过数据线分别外接SDRAM。所述RAM控制模块包括多区控制器模块、地址转换模块、系统命令转换模块和存储器命令产生模块组成,其相互连接关系为,所述多区控制器模块包括多区命令仲裁模块,并通过数据线分别与地址转换模块、系统命令转换模块和存储器命令产生模块相连接,系统命令转换模块还通过数据线与存储器命令产生模块相连接。
所述基于PCI总线的IP核仿真验证方法包括如下步骤第一步 调用驱动程序对所述基于PCI总线的IP核仿真验证平台硬件进行初始化,读取全部的配置寄存器信息,将所述基于PCI总线的IP核仿真验证平台的Memory全部清零;第二步 打开数据文件,将测试数据经由PCI总线写入保存在所述基于PCI总线的IP核仿真验证平台的Memory(即SDRAM或FPGA)中,作为待测试IP核的数据源;第三步 操作配置寄存器,将控制命令通过PCI总线写入插在FPGA中的IP核,启动IP核对测试数据进行处理;
第四步 将处理后的数据写回SDRAM中,对比数据源,得出测试结论。
为了更好地实现本发明,所述第四步处理后的数据可以通过PCI总线控制模块直接输入PC机中;也可以保存在IP核中的状态寄存器里,用于实时观察了解IP核的运行情况,并可在IP核运行的过程中实时读取。
本发明与现有技术相比,具有如下优点和有益效果1、本发明的验证平台硬件结构简单,设计合理,使用方便。
2、本发明的验证方法既能有效模拟IP在SoC的环境,又能方便利用FPGA和普通的个人计算机对设计的IP进行硬件验证;测试人员可以实时从计算机产生测试数据给IP核以作测试,也可以实时访问IP核内部的寄存器和存储器来获取其处理完毕的数据,优于现今IP在测试时难以产生大批测试数据和难以获得数据处理结果的方法。


图1是现有一般IP核验证流程图;图2是本发明基于PCI总线的IP核仿真验证平台的工作原理图;图3是本发明基于PCI总线的IP核仿真验证平台的电路方框图;图4是本发明基于PCI总线的IP核仿真验证平台的直流稳压源电路原理图;图5是本发明基于PCI总线的IP核仿真验证平台的时钟电路原理图;图6是本发明基于PCI总线的IP核仿真验证平台中FPGA与PCI接口、SDRAM插槽的电路原理图;图7是本发明基于PCI总线的IP核仿真验证平台中PCI总线控制模块的结构方框图;图8是本发明基于PCI总线的IP核仿真验证平台中存储控制模块的结构方框图;图9是本发明基于PCI总线的IP核仿真验证平台中存储控制模块的RAM控制模块的结构方框图;图10是本发明基于PCI总线的IP核仿真验证方法中驱动程序结构图;图11是本发明基于PCI总线的IP核仿真验证方法中应用程序和驱动程序间的数据传输模型图;图12是本发明基于PCI总线的IP核仿真验证方法流程图。
具体实施例方式
下面结合附图和实施例,对本发明做进一步地详细说明。
如图1所示,一般软IP核的验证方法,是指在软件环境下进行软件仿真以验证IP核功能的正确性,正确后写入FPGA器件中,进行硬件方面的测试,测试正确则IP核验证完毕,测试存在问题则返回重新修改IP核。该方法的缺点是在FPGA中进行硬件验证时,难以产生并控制大量用于测试IP的测试信号,不但难以采集测试结果,而且也不利于实时监测测试过程。
如图2所示,PCI总线控制模块为PCI总线的桥接模块,它一边与计算机的PCI插槽连接,一边经由内部IO总线与IP模块连接;存储控制模块为内存控制器模块,此模块一边与168引脚的SDRAM连接,一边通过内存总线与'核连接。这些模块都是由硬件描述语言Verilog HDL编写。其中,IPCORE模块就是所要验证的IP核,将所需验证的IP核嵌入到该平台中,与PCI总线控制模块、存储控制模块模块一起组成一个测试系统,并通过编写的测试软件在PC机上控制平台测试IP核。完成IP核的代码设计后,将IP核的源代码嵌入到验证平台系统的源代码中,形成一个具备了所测IP核的验证平台系统。
如图3所示,基于PCI总线的IP核仿真验证平台由晶体振荡器1、直流稳压源2、FPGA(可编程门阵列)3、编程接口6、SDRAM4、PCI接口5组成。其相互连接关系为直流稳压源2分别与FPGA3、晶体振荡器1、SDRAM4插槽、编程接口6相连接,FPGA3通过SDRAM总线与SDRAM4插槽相连接,同时通过PCI总线与PCI接口5相连接,晶体振荡器1分别与FPGA3和SDRAM4插槽相连接,编程接口6与FPGA3相连接。
如图4所示,直流稳压源为基于PCI总线的IP核仿真验证平台提供电源的模块一部分由电源集成件U2-TPS75733KTT与电容C113、C110、电阻R49、发光二极管D2串并联而成,另一部分由电源集成件U6-TPS75718KTT与电容C114、C111、电阻R51、发光二极管D5、三极管Q2串并联而成。
如图5所示,基于PCI总线的IP核仿真验证平台的时钟电路由锁相环集成件U9-CDC509与晶体振荡器OSC3、电容C58、C31、C35、C39、C43、C27、C5,电阻R43、R2、R44、R45、R46、R47、R37串并联而成。
如图6所示,FPGA的可编程IO通过PCI总线与PCI接口相连接,FPGA的可编程IO通过SDRAM总线与SDRAM插槽相连接。
如图7所示,PCI总线控制模块包括PCI接口模块(pci intf)、译码模块(decode)、目标状态机模块(target fsm)、配置空间模块(config)、MEM接口模块(mem intf)、IO(In/Out输入输出)接口模块(io intf)相互连接组成。PCI总线控制模块(PCI桥接模块)的基本功能与结构从总线的角度来看,PCI总线控制模块相当于一个总线桥,或者说是一个协议转换器。它起着沟通外部PCI总线和内部IO总线、MEM总线,转换总线协议的作用。由于外部PCI总线的传输协议与内部传输协议的不同,PCI控制器不但要解决内外两种总线在交易方式、握手方法等方面的差异,还要解决内外总线的不同频域的差异(内、外总线工作在不同频域)。从其功能来说,PCI总线控制模块是一个PCI接口的代理,它接受并转换外部PCI主设备对芯片的IO访问、存储器访问和配置访问。PCI总线控制模块内部各模块所在的频域和作用见下表。
表1 PCI总线控制模块的子模块


如图8所示,存储控制模块的基本功能该模块连接SDRAM和IP模块、PCI总线控制模块,用于控制IP读写存储器请求和PCI读写存储器及配置存储器请求。其中,存储器参数预处理模块负责对存储器区激活(Active)延时、预充电延时与读写的延时等进行预先处理;存储器命令仲裁模块负责对SDRAM进行配置,如发起预充电、自动刷新、方式寄存器配置以及读写命令请求;自动刷新模块负责对SDRAM定时发起刷新请求;区译码模块负责对地址进行译码,根据请求设备请求的地址将地址译码为行、列地址和Bank地址;存储器写准备模块发起写存储器命令并且预先寻址(区地址以及行列地址);存储器读模块根据读存储器地址读出数据RAM控制模块实现SDRAM存储器内部的多区仲裁访问控制功能。
如图9所示,RAM控制模块内部有一个多区控制器模块,其中多区命令仲裁模块,对各个区(bank)的读写存储器请求信号按照固定优先级和轮换优先级结合的算法进行仲裁,既保证了总线效率又防止了单个bank读或写请求独占总线的情况。采用了多区结构的访问方式,由四个BANK控制器分别控制四个BANK,而由多区命令仲裁模块控制各个BANK的转换,多区操作可以使多个bank的总线操作重叠,从而提高总线访问的速度。地址转换模块负责将总线地址转换成区地址、行地址以及列地址,便于访问存储器。系统命令产生模块判断SDRAM访问处于所有四个区预充电模式、空操作模式、方式寄存器设置模式以及刷新模式四种模式中的具体哪一种模式。存储器命令产生模块根据产生的片选择信号、行地址和列地址信号对SDRAM发出BANK选择、预充电、读写、方式寄存器配置以及刷新请求。
如图10所示,基于PCI总线的IP核仿真验证方法中的驱动程序采用WDM驱动程序,开发WDM驱动程序的软件环境是Windows XP、WinXPDDK、MS.Net Framework SDK、DriverStudio 2.7、Windriver6.03、VC++6.0,硬件环境是普通PC机、基于PCI总线的IP核仿真验证平台。
如图11所示,基于PCI总线的IP核仿真验证方法中应用程序和驱动程序间数据传输模型由以下操作序列描述①应用程序打开PC机内验证数据库中的待处理数据文件;②应用程序发出请求,初始化仿真验证平台的内存控制模块并分配数据内存缓冲区;③应用程序分配数据内存缓冲区;④应用程序将待传输数据排队并存入预分配的内存缓冲区;⑤应用程序开始传输数据,当传输完成时向驱动程序发出信号;⑥驱动程序驱动硬件按序列接收数据并存入内存中,当接收完成时向应用程序发出信号;⑦应用程序和驱动程序都清理预分配的数据内存缓冲区;⑧驱动程序操作待测试IP处理数据;⑨驱动程序同理将处理后的结果数据传给应用程序;⑩应用程序将数据结果保存为文件格式。
如图12所示,基于PCI总线的IP核仿真验证方法实质上是通过使用Verilog HDL语言(Hardware Decription Language硬件描述语言)描述IP核验证系统;以PCI总线作为系统总线对顶层仿真模块进行互连,在芯片的内部以与SoC中相同的内部总线进行硬件模块的互连;将所需验证的IP核嵌入到所述基于PCI总线的IP核仿真验证平台中,通过测试软件在PC机上控制平台测试IP核。测试软件的工作流程包括(1)调用驱动程序对硬件进行初始化;(2)读取全部的配置寄存器信息;(3)将测试平台的Memory全部清零;(4)打开数据文件,将数据保存在测试平台的Memory中作为待测试IPCore的数据源;(5)操作配置寄存器,让待测试的IP Core处理数据源;(6)用处理后的数据对比数据源,得出测试结论。也可以将数据保存为文件;(7)重新配置寄存器,将测试平台的Memory全部清零,开始下一轮数据测试。
基于PCI总线的IP核仿真验证方法的测试软件使用界面工作区域说明
配置寄存器区。程序初始化就读取全部配置寄存器。读写配置寄存器后都会自动刷新。因为前64字节的寄存器保存的都是固定硬件信息,不必改写,所以寄存器可写范围是后192个字节。用户可以在地址栏填入地址或者在列表中直接点选寄存器的名字,按“读Conf”按钮便可在数值栏中显示相应的寄存器的值。当在地址栏写入地址或者在列表中点选寄存器名字,在数值栏填入代写数值,按“写Conf”按钮便可将数值写进寄存器。
读写Memory、I/O区读写Memory前必先初始化硬件,方法是按“Initial”按钮。
读单个Memory、I/O可以在地址栏中输入地址或者直接在列表中点击选取地址,其值就会在数值栏中显示。如果要读多个连续地址的值,有两种方法①在起始地址栏和终止地址栏相应填入要读取范围的起始地址和终止地址。
②在起始地址栏中填入需要读取的起始地址,在数据个数栏中填入需要读取的地址个数,应用程序便自动计算其读取范围。
应用程序写单个Memory、I/O地址的方法是在起始地址栏填入地址和在数值栏输入代写数值。应用程序便可将数值成功写入特定地址,并在下面的列表中显示相应的地址和数值。
应用程序写多个Memory的方法是通过“打开文件”,读取数据文件,将其中的数据写进硬件的内存。数据文件可以为任意格式,文件长度要求不超过Memory Length×4。
保存内存任意单元中的数据方法是用户通过选择起始结束地址或者数据个数的方法选取所需要的单元,然后按“保存文件”按钮,便可保存为任意格式的数据文件。
其他区域“Memory清零”按钮用来将Memory单元全部填0。每次需要改变数据源文件时必须按此按钮。
“打开文件”、“保存文件”按钮用来支持对数据文件的操作。
“Initial”用来对硬件初始化。
基于PCI总线的IP核仿真验证方法测试软件的工作运行原理将168脚SDRAM插入SDRAM插槽中,将电路板通过PCI接口插入到计算机的PCI槽中,5V的直流电源输入到平台的电源模块,经过电源模块的处理,输出3.3V和1.8V的直流电压提供给FPGA,SDRAM插槽和晶体振荡器。将IP核的程序嵌入描述验证平台系统的程序中,通过FPGA设计工具(可选择XILINX公司的ISE设计软件)生成二进制文件,并通过编程接口将二进制文件写入FPGA中,然后在计算机上运行测试平台所带软件对IP核进行测试。测试人员可以由计算机经PCI总线控制IP核和访问存储器,测试人员可以实时从计算机产生测试数据给IP核以作测试,也可以实时访问IP核内部的寄存器和存储器来获取其处理完毕的数据。
本发明的实施方式可为如下(1)按照图4~6所示绘制电路板,U8可选择XC2S600E-FG456型,U2可选择TPS75733KTT型,U6可选择TPS75718KTT型,U9可选择CDC509型;(2)组装好零件后,将内存插入平台。(3)将所需验证的IP核的程序嵌入描述验证平台系统的程序中,通过FPGA设计工具(可选择XILINX公司的ISE设计软件)生成二进制文件,并通过编程接口将二进制文件写入FPGA中。(4)将所测平台插入PC机的PCI槽中。(5)计算机找到硬件,安装驱动程序和测试软件,并分配资源;通过读写配置寄存器,初始化硬件;打开数据文件,读入测试平台的内存,选择数据源,测试平台内的待测IP Core处理数据源,返回数据结果;将数据结果保存为数据文件,通过与数据源文件比较,得出结论。按照上述工作原理运行平台,便能较好的实施本发明。
权利要求
1.基于PCI总线的IP核仿真验证平台,其特征是,包括晶体振荡器、直流稳压源、FPGA、编程接口、SDRAM和PCI接口组成,其相互连接关系为,直流稳压源分别与晶体振荡器、FPGA、编程接口、SDRAM插槽相连接,FPGA通过PCI总线与PCI接口相连接,并通过SDRAM总线与SDRAM插槽相连接,晶体振荡器分别与FPGA和SDRAM插槽相连接,编程接口与FPGA相连接。
2.根据权利要求1所述的基于PCI总线的IP核仿真验证平台,其特征是,所述FPGA包括PCI总线控制模块、存储控制模块、IP模块(即所需验证的IP核)组成,其相互连接关系为,所述PCI总线控制模块通过内部IO总线与IP模块相连,通过存储总线与存储控制模块相连接,同时外接计算机的PCI插槽,所述存储控制模块还通过内存总线与IP模块相连,并外接SDRAM。
3.根据权利要求2所述的基于PCI总线的IP核仿真验证平台,其特征是,所述PCI总线控制模块包括PCI接口模块、译码模块、目标状态机模块、配置空间模块、MEM接口模块、IO接口模块组成,其相互连接关系为,所述PCI接口模块通过数据线分别与PCI总线、目标状态机模块、配置空间模块和IO接口模块相连接,所述译码模块通过数据线分别与配置空间模块和目标状态机模块相连接,所述MEM接口模块通过数据线分别与MEM总线、目标状态机模块和配置空间模块相连接,所述IO接口模块还通过数据线分别与IO总线和目标状态机模块相连接。
4.根据权利要求2所述的基于PCI总线的IP核仿真验证平台,其特征是,所述存储控制模块包括存储器参数预处理模块、存储器命令仲裁模块、自动刷新模块、区译码模块、存储器写准备模块、存储器读模块和RAM控制模块组成,其相互连接关系为,所述存储器命令仲裁模块通过数据线分别与存储器参数预处理模块、自动刷新模块、区译码模块和RAM控制模块相连接,所述存储器参数预处理模块还通过数据线分别与自动刷新模块、区译码模块和RAM控制模块相连接,所述存储器写准备模块通过数据线与RAM控制模块相连接,所述存储器读模块和RAM控制模块通过数据线分别外接SDRAM。
5.根据权利要求4所述的基于PCI总线的IP核仿真验证平台,其特征是,所述RAM控制模块包括多区控制器模块、地址转换模块、系统命令转换模块和存储器命令产生模块组成,其相互连接关系为,所述多区控制器模块包括多区命令仲裁模块,并通过数据线分别与地址转换模块、系统命令转换模块和存储器命令产生模块相连接,系统命令转换模块还通过数据线与存储器命令产生模块相连接。
6.基于PCI总线的IP核仿真验证方法,其特征是,包括如下步骤第一步 调用驱动程序对所述基于PCI总线的IP核仿真验证平台硬件进行初始化,读取全部的配置寄存器信息,将所述基于PCI总线的IP核仿真验证平台的Memory全部清零;第二步 打开数据文件,将测试数据经由PCI总线写入保存在所述基于PCI总线的IP核仿真验证平台的Memory中,作为待测试IP核的数据源;第三步操作配置寄存器,将控制命令通过PCI总线写入插在FPGA中的IP核,启动IP核对测试数据进行处理;第四步将处理后的数据写回SDRAM中,对比数据源,得出测试结论。
7.根据权利要求6所述的基于PCI总线的IP核仿真验证方法,其特征是,所述第四步处理后的数据通过PCI总线控制模块直接输入PC机中。
8.根据权利要求6所述的基于PCI总线的IP核仿真验证方法,其特征是,所述第四步处理后的数据保存在IP核中的状态寄存器里,用于实时观察了解IP核的运行情况,并在IP核运行的过程中实时读取。
全文摘要
本发明是一种基于PCI总线的IP核仿真验证平台及其验证方法,该平台包括晶体振荡器、直流稳压源、FPGA、编程接口、SDRAM和PCI接口组成,该方法是通过使用Verilog HDL语言描述IP核验证系统,以PCI总线对顶层仿真模块互连,在芯片的内部以与SoC中相同的内部总线互连硬件模块,将所需验证的IP核嵌入到验证平台中,在PC机上控制平台测试IP核。本发明的验证平台结构设计简单,使用方便;验证方法既能有效模拟IP在SoC的环境,又能方便利用FPGA和普通个人计算机对IP进行硬件验证,可实时产生测试数据给IP核作测试,也可实时访问IP核内部的寄存器和存储器来获取其处理完毕的数据。
文档编号G06F17/50GK1609862SQ20041005228
公开日2005年4月27日 申请日期2004年11月19日 优先权日2004年11月19日
发明者郑学仁, 范健民, 陈玲晶, 陈国辉, 邓婉玲 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1