随着电子技术的飞速发展, 存储器的种类日益繁多,每一种存储器都有其独有的操作时序,为了提高存储器芯片的测试效率,一种多功能存储器芯片的测试系统应运而生。本文提出了一种多功能存储器芯片的测试系统硬件设计与实现,对各种数据位宽的多种存储器芯片(sram、mram、nor falsh、nand flash、eeprom等)进行了详细的结口电路设计(如何挂载到niosii的总线上),最终解决了不同数据位宽的多种存储器的同平台测试解决方案,并详细地设计了各结口的硬件实现方法。
设计原理
此设计方案根据上述各种存储器独自的读写时序访问特性,通过fpga的灵活编程特性,适当地调整niosii的外部总线时序,最终实现基于niosii的外部总线访问各种存储器读写时序的精确操作。如图2-1。通过fpga自定义一个可以挂载所有存储器芯片的总线接口-abus,如表1。而且在同一个接口上能够自动识别各种接入的被测试存储器芯片,它们通过类别输入信号(clas)来区分,每一种存储器芯片对应一种独特的操作时序。下面是几种存储器芯片的接口连接方式及信号描述。其它的存储器芯片都可以用类似的接法挂载到abus总线上,最终完成测试。
图 2‑1 niosii的总线挂载各类存储器芯片连接示意图
表1:abus接口信号说明表
40位nand flash连接设计
如图2-2所示,40位nand flash与niosii 通过abus(fpga)桥接,把外部总线的时序完全转换成nand flash的操作时序。40位nand flash芯片品由五个独立的8位nand flash芯片拼接构成。5个8位器件的外部io口拼接成40位的外部io口,而各自的控制线(ncle,nale,nre,nwe)连接在一起构成一组控制线(ncle,nale,nre,nwe),片选相互独立引出成ncs0-ncs9,忙信号独立引出为r/b0-r/b9。
如表2,详述了40位nand flash与abus的连接关系。
图 2‑2 abus与40位nand flash接口图
表2,40位nand flash接口连接表
8位nand flash与niosii连接
8位nand flash是通过多片8位nand flsah芯片叠加而成,每一个芯片的外部总线和控制线(nale,cle,new,nre)进行复连。分别引出每一个芯片的片选和忙信号ncs0-ncs9、nrb0-nrb9。可以利用fpga的逻辑来修改niosii的总线读写时序,来准确的操作大容量8位nand flash存储器模块。实现niosii到abus,abus到8位nand flash的连接。如图2-3所示。
表3,详述了8位nand flash与abus的连接关系。
图 2‑3 abus与8位大容量nand falsh连接
表3,8位nand flash接口连接表
40位sram与niosii连接
40位srm模块与niosii通过abus连接,实现正确的时序读写操作。测试时,一次只测试8位,分5次完成所有空间的测试。如图2-4。表4是详细的信号连接说明。
图 2‑4 abus与40位sram连接
表4,40位sram接口连接表
8位sram与niosii连接
8位srm模块与niosii通过abus(fpga)连接,实现正确的时序读写操作。如图2-5。表5是信号连接说明。
图 2‑5 abus与8位sram连接
表5,8位sram接口连接表
硬件电路设计
在测试nand flash时,测试时间长达十个小时不等。在此为提高测试效率,增加测试速度,本设计采用两套完全一样且独立的硬件系统构成。可同时最多测试2片nand flash器件。每一个硬件系统由一个微处理器(niosii)加一个大容量fpga及一个存储器测试扩展接口(即abus接口)三大模块构成。如图3-1。rs232通信接口实现测试系统与上位机的数据交换,完成人机交互操作。电源系统产生各种合适的电压,满足各芯片的电源供给。
图 3‑1 硬件方块图
处理器模块电路
处理器模块电路由fpga内嵌的niosii软核(cpu)、两路rs232通信、一个flash芯和一个sram芯片组成。cpu是整个系统的核心管理者,向下负责各种存储器芯片的读写测试,向上负责与上位机通信,实现人机交互。通信由其中一个rs232电路完成,另一个rs232电路用来实现系统调试和软件固化。flash芯片用来存储程序代码及重要的数据。而sram芯片在cpu上电工作以后,通过cpu加载flash的程序,最终给cpu的程序代码提供快速的运行环境。
基于fpga的abus接口模块
abus接口模块由fpga芯片、配置flash及数据存储eeprom芯片构成。abus要实现niosii的外部总线与多种存储器模块的接口对接,每一种特定的存储器有一个特定的时序逻辑,而每一种时序逻辑可以通过fpga的硬件代码(ip核)来实现,具体的每一个存储器模块在测试时会给abus接口一个固定的类别信号clas,abus接口根据这个类别信号识别出各种sip存储器模块,最终切换出正确的对应特定产品的时序逻辑,来完成niosii通过外部总线来对存储器芯片的读写测试。而配置flash实现fpga在上电时硬件程序的加载工作及掉电数据保护。eeprom用来存储一些重要的系统参数。
sip存储器测试扩展接口
存储器测试扩展接口在硬件上由两排双排座构成。一共是120个管脚。abus接口与测试扩展接口相连接:40个管脚与双向的数据或i/o线相连、8个管脚与8根信号输入控制线相连、16个管脚与16根片选信号输出线相连、5个管脚与5根类别输入信号相连、16个管脚与16根状态输入信号线相连、27个管脚与27根地址线相连。其它的管脚可分配成电源和地线,以及信号指示等。
abus接口ip核的设计
每一种sip存储器对应于一个特定的abus接口ip核,以实现正确的时序读写操作。这个ip核有一个统一的接口约定,都是由两个固定的接口构成,其中与niosii连接的是外部总线接口,其操作按照niosii的外部总线时序规范来实现,另一个接口就是上文提及的abus接口,在相应的clas信号有效的情况下,它负责把niosii的外部总线读写时序转换成对应存储器芯片的时序。ip核的工作就是完成这些读写操作的转换。表5是各种sip存储器对应的类别信(clas)号输入值,在设计接口转接板时要按这个值设定,abus才会切换出正确的读写时序。
七位类别示别信号含义:t_xx_ww_cc,t为1表示高低测试测试,为0表示常温下的功能测试。xx表示存储器种类,ww表示总线宽度,cc表示容量种类。
表5 各种sip存储器对应的clas信号值
8位sram/mram/nor flash接口ip核设计
如图4-1,sram、mram和nor flash的接口操作基本一致,niosii的总线时序完全满足。故在fpga内部只要简单地把相应的控制线和数据线相连就可以了,唯独只要设计一个片选寄存器,用来区分存储器芯片的16个片选。每一个片选可以访问的空间为128mbyte。片选寄存器的地址为(基址+0x0ffffffc),基地址设在niosii外部总线的最高地址位。
图 4‑1 8位sram/mram/nor flash接口ip
16位sram/mram/nor flash接口ip核设计
如图4-2,sram、mram和nor flash的接口操作基本一致,niosii的总线时序完全满足。故在fpga内部只要简单的把相应的控制线和数据线相连就可以了,唯独只要设计一个片选寄存器,用来区分sip的16个片选。每一个片选可以访问的空间为128mbyte。片选寄存器的地址为(基址+0x0ffffffc),基地址设在niosii 外部总线的最高地址位。
图 4‑2 16位sram/mram/nor flash接口ip
32位sram/mram/nor flash接口ip核设计
如图4-3,sram、mram和nor flash的接口操作基本一致,niosii的总线时序完全满足。故在fpga内部只要简单的把相应的控制线和数据线相连就可以了,唯独只要设计一个片选寄存器,用来区分sip的16个片选。每一个片选可以访问的空间为128mbyte。片选寄存器的地址为(基址+0x0ffffffc),基地睛设在niosii 外部总线的最高地址位。
图 4‑3 32位sram/mram/nor flash接口ip
40位sram/mram/nor flash接口ip核设计
如图4-4,40位的数据宽度有点特殊。在此我们把40位的数据分成5个8位的区域,用8位宽度的总线去分别访问每一个区域。ip核中的位选寄存器就是用来完成切换8位数据总线到40位总线的5个区域的其中一个。片选寄存器的地址为(基址+0x0ffffffc),位选寄存器的地址为(基址+0x0ffffff8)。最大可以测试128m×40位×16片的存储器sram/mram/nor flash模块。
图 4‑4 40位sram/mram/nor flash接口ip
8位nand flash的abus接口ip设计
如图4-5,通过写片选寄存器来选中模块的16个片选的其中一个。我们约定其地址为(基址+0x0ffffffc)。读状态寄存器返回的是16个nand flash芯片的忙信号,其地址为(基址+0x0ffffff8)。向地址(基址+0x00)写入数据就是对nand flash数据寄存器的写操作。向地址(基址+0x00)单元读数据就是对nand flash数据寄存器的读操作。向地址(基址+0x01)写入数据就是对nand flash命令寄存器的写操作。向地址(基址+0x02)写入数据就是对nand flash地址寄存器的写操作。
图 4‑5 8位nand flash的abus接口ip核设计图
16位nand flash的abus接口ip设计
16位的nand flash存储器芯片可以有多种组合方式,可以用多个16位的nand flash组合,也可以用多个8位的nand flash组合。这里我们假设16位的sip nand flash产品是由多个16位的nand flash组合而成,下面的ip核是根据它的结构来设计的。
如图4-6,通过写片选寄存器来选中模块的16个片选的其中一个。我们约定其地址为(基址+0x0ffffffc)。读状态寄存器返回的是16个nand flash芯片的忙信号,其地址为(基址+0x0ffffff8)。向地址(基址+0x00)写入数据就是对nand flash数据寄存器的写操作。向地址(基址+0x00)单元读数据就是对nand flash数据寄存器的读操作。向地址(基址+0x01)写入数据就是对nand flash命令寄存器的写操作。向地址(基址+0x02)写入数据就是对nand flash地址寄存器的写操作。
图 4‑6 16位nand flash的abus接口ip核设计图
验证与总结
将写好的fpga程序和调试的c代码写入flash后,掉电重配置fpga,串口的输出能正常识别所有设置好的存储器芯片,并能够进行准确地读写功能测试。达到了设计目的。
本文介绍了一种低成本、简单、灵活的多种存储器芯片测试系统的硬件设计,并采用fpga、flash、sdram、rs232电路等实现。采用这种方案,用户可根据市场需求,灵活的增加测试系统功能,实现更多的存储器芯片测试。
入手vivox9,那么vivo手机几个实用小功能,不会用就亏大发了,快来学吧
苹果计划在明年发布的iPad Pro中采用12.9英寸显示屏
预付费表及云平台在智慧校园建设中的应用分析
为什么电动车电机通电不转,老师傅教您六招妥妥好!
怎么做子弹壳耳机?
多功能存储器芯片测试系统硬件设计方法
什么蓝牙耳机最舒服,FIIL CC 南卡Lite对比评测谁更值得买
樊邦奎院士:六大方向知悉无人机的未来
智能机器人重点针对人体不同部位的手术机器人做了全面布局
波音公司表示美国和全球其他国家都暂停737MAX飞机运行
高速电路PCB返回电流的分布
保护以太网供电 (PoE / PoE++) 通信
人工智能应用案例 CRM上的“琐事”Sales Copilot都帮你干好了
大疆无人机的价格贵吗?大约在什么价位?大疆无人机价格汇总
探讨多云和边缘计算存储的一系列关键问题
石油化工企业仪表及控制系统接地问题汇总解析
GB 10006,摩擦系数测定仪的原理及专业技术说明
台积电ADR已领先下挫 还将涉及赔偿问题
华为Mate9智能助手:三大“智能”功能打造精准内容服务
荣耀9最新消息,荣耀9降价了,不仅是为荣耀Note9让路,更是要和小米6战斗到底!