微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 基于FPGA的K9F4G08 Flash控制器设计

基于FPGA的K9F4G08 Flash控制器设计

时间:11-09 来源:互联网 点击:
3 controller_4G08主状态机

图4是主状态机的状态转换图,系统上电复位后,主状态机将进入等待使能信号状态。收到使能信号后,主状态机会从cmd_code_4G08中读取操作码,然后启动对应的子状态机,执行对应的操作。子状态机执行完毕以后就会通过int_ctl_4G08发送给主状态机一个中断信号,同时将执行结果返回。主状态机收到中断信号后,又进入空闲状态等待下一个使能信号。这样设计的主状态机随时都可以添加新的指令,可扩展性强[4-5]。



4 FPGA下装验证结果

采用FPGA开发板进行验证。此开发板的硬件资源包括Cyclone的FPGA:EP1C12Q240C、3片Flash:K9F4G08、1片USB总线控制芯片:CH372。利用FPGA控制CH372,可以完成FPGA与PC通过USB进行数据收发。

在PC上用VB软件编写了调试软件,利用该软件可以通过USB口向FPGA发送指令,从而完成对任意Flash页的读、写及全擦。

首先进行Flash全擦,读取B0P0即可看到匹配表。从匹配表中找到一个坏块的地址对其写入2 KB的数据,然后断电再上电,读取该坏块地址,比较写入与读出的数据发现完全一致,从而验证了本设计的坏块管理和坏块匹配方法的正确性。通过软件操作,对普通好块的读写也是正确的,这里就不再说明了。

本文用FPGA主状态机直接管理controller_4G08、controller_4G08控制芯片的设计方案可以减少主状态机的状态数量,使FPGA很方便地实现Flash控制功能,设计更加容易实现,具有较强的可复用性与移植性。同时建立了一套完善的Flash文件管理机制。目前该控制器模块已经应用于数据采集回放系统中。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top