基于LabVIEW的SRAM读写间接测试装置及方法与流程

文档序号:14874811发布日期:2018-07-07 05:14阅读:256来源:国知局

本发明属于集成电路及芯片测试领域,具体涉及到基于labview的sram读写间接测试装置及方法。



背景技术:

随着社会的发展,随机存储芯片使用越来越广泛,到处都可见到其身影。尽管sram芯片种类繁多,数量庞大,但是这些sram芯片的来源,及芯片的好坏我们很难判断出来。究其原因有几种:一是,一些是仿制的sram芯片;二是,一些是从设备上拆卸下来的sram芯片。依靠肉眼很难判断出sram芯片的来源,及芯片的好坏。识别出这些sram芯片很有必要:首先,不造成资源浪费;其次,保证使用者的设计性能要求;再次,保护了制造商的原创设计。这就需要我们发明一种sram芯片的测试方法,这种测试方法能直观,简单,方便地判断出sram芯片的来源,及sram芯片的好坏。

labview是利用计算机强大的图形环境,采用可视化的图形编程语言和平台。labview具有如下几个方面的优势:用户可以根据自己的需要灵活地定义人机界面;可以采用多种方式显示采集的数据、分析的结果和控制过程;可实时、直接地对数据进行编辑;对外交互接口连接方便,容易;大大节省设计时间,提高工作效率。labview广泛应用于测量领域,测试领域,控制领域,仿真领域等,已受到越来越多设计者的青睐。

该专利“基于fpga的sram读写控制实验装置”,公布了一种读写sram的方法。它是用fpga做为控制器,产生sram读或写操作时序。当fpga上的串口接收到外部串口设备发送来的数据时,fpga控制器对接收的数据进行处理:当接收的是写sram操作时,fpga控制器产生写控制逻辑,将接收的数据信息写入sram中;当接收的是读sram操作时,fpga控制器产生读控制逻辑,读出相应地址中的数据,并将发送到fpga上的串口,通过串口发送给外部串口设备。这种读写sram的方法,是一种直接读写sram的方法。这种直接读写sram的方法存在一些不足:fpga内部读或写的控制逻辑确定后,没法灵活调整;外部串口设备测试环境不确定,调试过程不具有可视化;不利于sram读写控制演示,仍然不能简单,直观,灵活地进行sram读写测试。



技术实现要素:

本发明所要解决的是上述直接读写sram的测试界面不友好;直接读写sram的控制配置不灵活的技术问题,提供了基于labview的sram读写间接测试装置及方法。

本发明解决其技术问题采用的技术方案是,基于labview的sram读写间接测试装置及方法,其特点包括以下步骤:

步骤一:搭建基于labview的sram读写间接测试的硬件环境:一种基于labview的sram芯片读写间接测试方法,硬件部分包括fpga电路模块,jtag电路模块,晶振电路模块,以及被测芯片is61lv10248电路模块。其中,fpga电路模块功能是接收从串口发送的时间数据,并将这些时间数据进行内部处理,最终从fpga的引脚输出信号波形,控制被测芯片is61lv10248的读写操作。jtag电路模块功能是下载fpga程序,nioside程序,以及在线调试软硬件程序。晶振电路模块功能是为整个硬件系统提供时钟,本发明中用到的晶振是有源晶振,频率为50mhz,稳定性较好。被测芯片is61lv10248电路模块是被测对象,fpga电路模块通过控制信号,地址信号,数据信号访问is61lv10248电路模块;

步骤二:搭建基于labview的sram读写间接测试的软件环境:基于labview的sram读写间接测试装置及方法,软件部分包括基于labview的sram读写间接测试控制面板模块,写操作控制命令模块,读取数据命令模块,底层串口驱动模块。其中,软件部分是在labview环境下完成的:首先,在前面板编写人机界面:设计基于labview的sram读写间接测试控制面板模块;其次,添加写操作控制命令模块,及读取数据命令模块按钮;再次,在程序框图中,添加visa函数,并配置底层串口驱动模块的通信参数;最后,在程序框图中,将输入控件,按钮控件连接到底层串口驱动模块上。其中,基于labview的sram读写间接测试控制面板模块是这样创建的:(1)在labview的前面板,编辑人机界面,放置sram芯片操作时序波形图;(2)在labview的前面板,根据sram芯片操作时序波形图,放置sram芯片相应信号的输入控件,并修改名称及参数,放置写操作控制命令和读取数据命令按钮;(3)放置串口协议函数:配置通信波特率,发送位数,发送缓冲区,接收缓冲区等;(4)将输入控件及按钮连接到相应的函数端子上;

步骤三:将底层串口驱动输出端接fpga电路输入端,底层串口驱动输入端接fpga电路输出端;

步骤四:硬件系统加电,fpga硬件程序加载,fpga软件程序运行,等待接收pc机发送来的参数及命令数据,并对数据进一步处理。其中,fpga内部电路模块是由两个部分构成:被测is61lv10248芯片信号产生模块和sopc系统。其中,sopc系统包括定时器模块,pio模块1,jtag模块,串口模块,片上ram模块,处理器模块,pio模块2,以及片选信号模块,读使能信号模块,写使能信号模块,地址信号模块,数据信号模块。其中,片选信号模块,读使能信号模块,写使能信号模块,地址信号模块,数据信号模块是自己创建的新元件,设计中,要将这些新元件添加到sopc系统;定时器模块,pio模块1,jtag模块,串口模块,片上ram模块,处理器模块,pio模块2是sopc系统提供的元件。在sopc系统中,avalon总线为系统总线。其中,处理器模块是avalonmaster接口;pio模块,jtag模块,串口模块,片上ram模块,片选信号模块,读使能信号模块,写使能信号模块,地址信号模块,数据信号模块是avalonslave接口;sopc系统工作时,avalonmaster接口的外设,发出读写命令,访问avalonslave接口的外设。fpga内部电路模块功能为:定时器模块功能是:产生的一个周期可改变的时钟信号,输出时钟信号。pio模块1功能是:产生一个信号跳变,使被测is61lv10248芯片信号产生模块复位。jtag电路模块功能是:下载fpga程序,nioside程序,以及在线调试软硬件程序。串口模块功能是:接收从labview发送的时间数据,命令数据,传输到avalon总线上;或接收avalon总线发送来的数据,发送给labview。片上ram模块功能是:运行nioside程序。处理器模块功能是:监控所有的avalonslave外设,实时处理数据。pio模块2功能是:接收一个外部中断信号,当接收的数据信号等于1时,提示处理器可以进行读取操作;当接收的数据信号等于0时,提示处理器读取操作无效。片选信号模块功能是:通过avalon总线,将片选信号的时间设置数据,发送到a1,b1,c1,d1。a1,b1,c1,d1数据宽度为32位。读使能信号模块功能是:通过avalon总线,将读使能信号的时间设置数据,发送到a2,b2。其中,a2,b2数据宽度为32位。写使能信号模块功能是:通过avalon总线,将写使能信号的时间设置数据,发送到a3,b3,其中,a3,b3数据宽度为32位。地址信号模块功能是:通过avalon总线,将地址信号的时间设置数据,发送到a4,b4,c4,d4,将地址信号的地址设置数据,发送到ad1,ad2,其中,a4,b4,c4,d4,ad1,ad2数据宽度为32位。数据信号模块功能是:写操作时,通过avalon总线,将数据信号的时间设置数据,发送到a5,b5,c5,d5,将数据信号的命令设置数据,发送到en,将数据信号的数据设置数据,发送到din;读操作时,通过avalon总线,将数据信号的时间设置数据,发送到a5,b5,c5,d5,将输入的数据信号dou,发送到avalon总线。其中,a5,b5,c5,d5,din,dou数据宽度为32位,en数据宽度为1位。被测is61lv10248芯片信号产生模块功能是:根据片选信号模块,读使能信号模块,写使能信号模块,地址信号模块,数据信号模块输出的时间设置数据,以及命令设置数据,以及参考时钟信号clk,复位信号rst,产生写is61lv10248芯片的时序波形,产生读is61lv10248芯片的时序波形,及读数据的int提示信号。

步骤五:在labview界面,输入前面板的参数数据;选择写操作控制命令,或读取数据命令按钮,进行读,或写sram控制操作;参数及命令数据从pc机的串口,输出。其中,软件创建为:首先,在前面板编写人机界面:设计基于labview的sram读写间接测试控制面板模块;其次,添加写操作控制命令模块,及读取数据命令模块按钮;再次,在程序框图中,添加visa函数,并配置底层串口驱动模块的通信参数;最后,在程序框图中,将输入控件,按钮控件连接到底层串口驱动模块上。

步骤六:软硬件联机测试,在labview界面,反复调整前面板的输入参数数据,然后执行写,读操作,直到满足时序测试要求。

本发明的有益效果在于:(1)测试界面简单,直观。基于labview的sram读写间接测试的人机界面采用labview实现。labview是一种图形化的编程语言的开发环境,视为一个标准的数据采集和仪器控制软件。它能很方便地创建用户界面,创建出来的界面直观,符合设计者的设计习惯,已被越来越多的设计者青睐。(2)时序参数调整方便。在labview软件的前面板中,时序的调整很简单方便,只需要在输入框中输入设置的时序数据;不仅能直观的看到输入的数据,还能看到运行结果的数据;整个测试过程,仅需要测试者输入少量调整的数据。

附图说明

图1是is61lv10248芯片写操作时序图。

图2是is61lv10248芯片读操作时序图。

图3是本发明整体结构示意图。

图4是fpga与is61lv10248芯片信号连接示意图。

图5是fpga内部电路模块的功能框图。

图6是labview实现is61lv10248芯片操作时序的前面板示意图。

图7是sopc系统实现is61lv10248芯片操作时序的软件流程图。

具体实施方式

下面结合附图对本发明做进一步详细说明:

如图1所示,是is61lv10248芯片写操作时序图,其中:

twc表示writecycletime;

tsce表示cetowriteend;

taw表示addresssetuptimetowriteend;

tha表示addressholdfromwriteend;

tsa表示addresssetuptime;

tpwe1表示wepulsewidth;

tpwe2表示wepulsewidth(oe=low);

tsd表示datasetuptowriteend;

thd表示dataholdfromwriteend;

thzwe表示welowtohigh-zoutput;

tlzwe表示wehightolow-zoutput。

由图1可知,is61lv10248芯片写数据有效,必须满足片选信号ce/,写使能we/为低电平;同时,要满足地址信号adress,数据信号din的建立时间,及保持时间。其中,is61lv10248芯片写操作的速度快慢,取决于芯片信号的时间参数设置。

如图2所示,是is61lv10248芯片读操作时序图,其中,

trc表示readcycletime;

taa表示addressaccesstime;

toha表示outputholdtime;

tace表示ceaccesstime;

tdoe表示oeaccesstime;

thzoe表示oetohigh-zoutput;

tlzoe表示oetolow-zoutput;

thzce表示cetohigh-zoutput;

tlzce表示cetolow-zoutput。

由图2可知,is61lv10248芯片读数据有效,必须满足片选信号ce/,读使能信号oe/的访问时间;同时,要满足地址信号adress的访问时间,与保持时间。其中,is61lv10248芯片读操作的速度快慢,取决于芯片信号的时间参数设置。

如图3所示,基于labview的sram读写间接测试装置及方法,包括硬件部分和软件部分。硬件部分包括fpga电路模块,jtag电路模块,晶振电路模块,以及被测芯片is61lv10248电路模块。其中,fpga电路模块功能是接收从串口发送来的时间数据,并将这些时间数据进行内部处理,最终从fpga的引脚输出信号波形,控制被测芯片is61lv10248的读写操作。jtag电路模块功能是下载fpga程序,nioside程序,以及在线调试软硬件程序。晶振电路模块功能是为整个硬件系统提供时钟,本发明中用到的晶振是有源晶振,频率为50mhz,稳定性较好。被测芯片is61lv10248电路模块是被测对象,fpga电路模块通过控制信号,地址信号,数据信号访问is61lv10248电路模块。

软件部分包括基于labview的sram读写间接测试控制面板模块,写操作控制命令模块,读取数据命令模块,底层串口驱动模块。其中,软件部分是在labview环境下完成的:首先,在前面板编写人机界面:设计基于labview的sram读写间接测试控制面板模块;其次,添加写操作控制命令模块,及读取数据命令模块按钮;再次,在程序框图中,添加visa函数,并配置底层串口驱动模块的通信参数;最后,在程序框图中,将输入控件,按钮控件连接到底层串口驱动模块上。

如图4所示,是fpga与is61lv10248芯片连接示意图,从中可知,被测is61lv10248芯片的控制信号输入端ce/,oe/,we/连接到fpga的控制信号输出端ce/,oe/,we/;被测is61lv10248芯片的地址信号输入端a0~a19连接到fpga的地址信号输出端a0~a19;被测is61lv10248芯片的数据信号双向端d0~d7连接到fpga的数据信号双向端d0~d7;

如图5所示,是fpga内部电路模块的功能框图,包括两个部分:被测is61lv10248芯片信号产生模块和sopc系统。其中,sopc系统包括定时器模块,pio模块1,jtag模块,串口模块,片上ram模块,处理器模块,pio模块2,以及片选信号模块,读使能信号模块,写使能信号模块,地址信号模块,数据信号模块。其中,片选信号模块,读使能信号模块,写使能信号模块,地址信号模块,数据信号模块是自己创建的新元件,设计中,要将这些新元件添加到sopc系统;定时器模块,pio模块1,jtag模块,串口模块,片上ram模块,处理器模块,pio模块2是sopc系统提供的元件。在sopc系统中,avalon总线为系统总线。其中,处理器模块是avalonmaster接口;pio模块,jtag模块,串口模块,片上ram模块,片选信号模块,读使能信号模块,写使能信号模块,地址信号模块,数据信号模块是avalonslave接口;sopc系统工作时,avalonmaster接口的外设,发出读写命令,访问avalonslave接口的外设。fpga内部电路模块功能为:定时器模块功能是:产生的一个周期可改变的时钟信号,输出时钟信号。pio模块1功能是:产生一个信号跳变,使被测is61lv10248芯片信号产生模块复位。jtag电路模块功能是:下载fpga程序,nioside程序,以及在线调试软硬件程序。串口模块功能是:接收从labview发送的时间数据,命令数据,传输到avalon总线上;或接收avalon总线发送来的数据,发送给labview。片上ram模块功能是:运行nioside程序。处理器模块功能是:监控所有的avalonslave外设,实时处理数据。pio模块2功能是:接收一个外部中断信号,当接收的数据信号等于1时,提示处理器可以进行读取操作;当接收的数据信号等于0时,提示处理器读取操作无效。片选信号模块功能是:通过avalon总线,将片选信号的时间设置数据,发送到a1,b1,c1,d1。a1,b1,c1,d1数据宽度为32位。读使能信号模块功能是:通过avalon总线,将读使能信号的时间设置数据,发送到a2,b2。其中,a2,b2数据宽度为32位。写使能信号模块功能是:通过avalon总线,将写使能信号的时间设置数据,发送到a3,b3,其中,a3,b3数据宽度为32位。地址信号模块功能是:通过avalon总线,将地址信号的时间设置数据,发送到a4,b4,c4,d4,将地址信号的地址设置数据,发送到ad1,ad2,其中,a4,b4,c4,d4,ad1,ad2数据宽度为32位。数据信号模块功能是:写操作时,通过avalon总线,将数据信号的时间设置数据,发送到a5,b5,c5,d5,将数据信号的命令设置数据,发送到en,将数据信号的数据设置数据,发送到din;读操作时,通过avalon总线,将数据信号的时间设置数据,发送到a5,b5,c5,d5,将输入的数据信号dou,发送到avalon总线。其中,a5,b5,c5,d5,din,dou数据宽度为32位,en数据宽度为1位。被测is61lv10248芯片信号产生模块功能是:根据片选信号模块,读使能信号模块,写使能信号模块,地址信号模块,数据信号模块输出的时间设置数据,以及命令设置数据,以及参考时钟信号clk,复位信号rst,产生写is61lv10248芯片的时序波形,产生读is61lv10248芯片的时序波形,及读数据的int提示信号。

被测is61lv10248芯片信号产生逻辑关系如下:

(1)clk为时钟输入信号,为参考时钟,则芯片信号产生模块内部有一个计数器,时刻对clk进行计数,其计数值为count。芯片信号产生模块,时刻将count与时间设置数据相比较,并根据比较数量关系产生控制波形。

(2)输入信号rst,为复位信号,它用来控制计数器清0操作。当rst为1时,count=0;当rst为0时,count保持不变。

(3)信号ce产生需要满足数量关系是:当count<a1时,ce=1;当a1<=count<=b1时,ce=0;当b1<count<c1时,ce=1;当c1<=count<=d1时,ce=0;

当count>d1时,ce=1。其中,a1<b1<c1<d1。

(4)信号oe产生需要满足数量关系是:当count<a2时,oe=1;当a2<=count<=b2时,oe=0;当count>b2时,oe=1。其中,a2<b2。

(5)信号we产生需要满足数量关系是:当count<a3时,we=1;当a3<=count<=b3时,we=0;当count>b3时,we=1。其中,a3<b3。

(6)信号a产生需要满足数量关系是:当count<a4时,a=0;当a4<=count<=b4时,a=ad1;当b4<count<c4时,a=0;当c4<=count<=d4时,a=ad2;当count>d4时,a=0。其中,a4<b4<c4<d4。

(7)信号d是数据信号,它为双向端口,当输入端en为1时,是写数据命令,当输入端en为0时,是读数据命令。

当输入端en为1时,需要满足数量关系是:当count<a5时,d=0,int=0;当a5<=count<=b5时,d=din,int=0;当count>b5时,d=0,int=0。

当en为0时,需要满足数量关系是:当count<c5时,dou=0,int=0;当c5<=count<=d5时,dou=d,int=1;当count>d5时,dou=0,int=0。其中,a5<b5<c5<d5。

如图6所示,是labview实现is61lv10248芯片操作时序的前面板图,包括sram芯片信号操作波形图,sram芯片信号的字符串显示控件,sram芯片信号的数值输入控件。其中,clk信号参数配置-单位(hz)是参考时钟clk的字符串显示控件,a0是参考时钟clk的数值输入控件。ce/信号参数配置-单位(个clk)是信号ce/的字符串显示控件,a1,b1,c1,d1是信号ce/的数值输入控件。其中,a1,b1,c1,d1的数量关系是:a1<b1<c1<d1;a1,b1,c1,d1的数值不同,则信号ce/的波形不同。oe/信号参数配置-单位(个clk)是信号oe/的字符串显示控件,a2,b2是信号oe/的数值输入控件。其中,a2,b2的数量关系是:a2<b2;a2,b2的数值不同,则信号oe/的波形不同。we/信号参数配置-单位(个clk)是信号we/的字符串显示控件,a3,b3是信号we/的数值输入控件。其中,a3,b3的数量关系是:a3<b3;a3,b3的数值不同,则信号we/的波形不同。a信号参数配置-单位(个clk)是信号a的字符串显示控件,a4,b4,c4,d4,ad1,ad2是信号a的数值输入控件。其中,a4,b4,c4,d4的数量关系是:a4<b4<c4<d4;当信号a处于a4,与b4时刻,信号a的值等于ad1;当信号a处于c4,与d4时刻,信号a的值等于ad2;当信号a处于其它时刻,信号a的值是任意值。d信号参数配置-单位(个clk)是信号d的字符串显示控件,a5,b5,c5,d5,din是信号d的数值输入控件,dout是信号d的数值输出显示控件。其中,a5,b5,c5,d5的数量关系是:a5<b5<c5<d5;当信号d处于a5,与b5时刻,信号d的值等于din;当信号d处于c5,与d5时刻,信号d的值取自于串口接收缓冲区,信号d的值等于dou;当信号d处于其它时刻,信号d的值是任意值。

写操作控制命令为sram写操作按钮控件,当按下写操作控制命令时,labview软件将信号clk的输入控件a0的值;信号ce/的输入控件a1,b1,c1,d1的值;信号oe/的输入控件a2,b2的值;信号we/的输入控件a3,b3的值;信号a的输入控件a4,b4,c4,d4,ad1,ad2的值;信号d的输入控件a5,b5,c5,d5,din,以及写操作控制命令代码1,依次发送到串口发送缓冲区,并通过串口发送出去。

读取数据命令为sram读操作按钮控件,当按下读操作控制命令时,labview软件将信号clk的输入控件a0的值;信号ce/的输入控件a1,b1,c1,d1的值;信号oe/的输入控件a2,b2的值;信号we/的输入控件a3,b3的值;信号a的输入控件a4,b4,c4,d4,ad1,ad2的值;信号d的输入控件a5,b5,c5,d5,din的值;以及读作控制命令代码0,依次发送到串口发送缓冲区,并通过串口发送出去;此后,等待接收串口缓冲区的数据,并将数据发送字符显示控件dou中。

如图7所示,是sopc系统实现is61lv10248芯片操作时序的软件流程图,其流程如下:

(1)硬件上电,软件程序加载启动,开始工作。

(2)进行串口初始化工作,设置波特率:9600bps,数据位数:8位,停止位为1位。

(3)循环接收从串口发送来的84字节数据。

(4)进行配置参考时钟的周期工作。

首先,提取84字节数据前4字节数据,得出频率数据。其中,前4字节数据为参考时钟的频率x;本系统中,晶振频率为50mhz;其次,计算出定时器的定时值:y=50000000/x;最后,将定时器的定时值写入周期寄存器中,并启动定时器工作,产生工作时钟。

(5)进行复位操作处理。

通过往pio1核写入数据1,使pio模块1的输出信号为高电平,输入到被测is61lv10248芯片信号产生模块的rst引脚,引起被测is61lv10248芯片信号产生模块的计数器复位,从而执行一次写数据操作。

(6)进行参数数据传送处理。

首先,处理器将接收的第5字节数据~第20字节数据,通过avalon总线,发送到片选信号模块的输出端a1,b1,c1,d1;将接收的第21字节数据~第28字节数据,通过avalon总线,发送到读使能信号模块的输出端a2,b2;其次,将接收的第29字节数据~第36字节数据,通过avalon总线,发送到写使能信号模块的输出端a3,b3;此后,将接收的第37字节数据~第60字节数据,通过avalon总线,发送到地址信号模块的输出端a4,b4,c4,d4,ad1,ad2;最后,将接收的第61字节数据~第80字节数据,通过avalon总线,发送到数据信号模块的输出端a5,b5,c5,d5,din。

(7)判断第84字节数据是sram写操作控制命令,当第84字节数据等于1,则执行的是写操作控制命令。首先,处理器将数据1,通过avalon总线,发送到数据信号模块的输出端en;其次,启动一次写操作,通过往pio核写入数据0,使pio模块1的输出信号为低电平;此后,程序进入无限循环,进行下一次sram的读,或写操作。

(8)判断第84字节数据是否sram读操作控制命令,当第84字节数据等于0,则执行的是读取数据命令。首先,处理器将数据0,通过avalon总线,发送到数据信号模块的输出端en;其次,启动一次读操作,通过往pio核写入数据0,使pio模块1的输出信号为低电平;此后,循环等待读数据准备好,通过判断输入到pio模块2的数据是否等于1,当数据等于1时,表示数据准备好,可以读取了;此后,处理器通过avalon总线,读取sram的数据d;此后,进行串口发送数据处理,将读取的数据d,发送到串口模块的缓冲区,输出出去;此后,程序进入无限循环,进行下一次sram的读,或写操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1