宁静 刘国斌 祝周荣 刘伟 陈云
摘要:当使用FLASH来存储数据时,相同的地址不能重复写入数据。在没有擦除的情况下,重复对同一个地址进行写操作,会使得存储的数据内容出错,从而导致从FLASH中读出的数据出错。因此,需要对FLASH的写溢出功能进行测试。当FLASH中的所有好块被占用,FPGA应能自动停止写入数据,等待下一轮的写操作。
关键词:FLASH;自动写停;擦除操作;FPGA
中图分类号:TP333 文献标识码:A 文章编号:1007-9416(2018)04-0212-02
FLASH存储器由于其容量较大,体积较小,掉电数据不丢失,读写速度快等优点,适用于大数据的存储[1]。基于FLASH本身的固有特性,FLASH存储器在写入数据前应进行擦除操作,并且不能对同一地址进行多次的写操作,否则会导致存储的数据变为乱码。因此无论设计方的需求中是否明确提出需求,都需要对FLASH进行写溢出功能测试。
1 FPGA对FLASH的控制流程
对FLASH的擦除/读/写操作是通过FPGA(现场可编程逻辑门阵列)发送指令来控制的,常用的指令包括复位指令、擦除指令、写操作指令、读操作指令等。
由于生产工艺的原因,FLASH在出厂前就存在坏块,记录该坏块信息的称为初始坏块表。在对FLASH擦除/读/写操作过程中,也有可能产生坏块[2]。因此,FPGA需不断更新坏块表来标记FLASH中的坏块位置。这就要求设计与验证时需要充分考虑坏块在整个基片中的分布情况以确保FLASH能正常工作。
FPGA对FLASH控制主流程主要有擦除流程、写流程、读流程、坏块管理流程等。若当前状态为擦除状态且擦除结束标志有效时,则执行坏块管理流程;……