新闻中心

EEPW首页>嵌入式系统>设计应用> 基于FPGA的K9F4G08 Flash控制器设计

基于FPGA的K9F4G08 Flash控制器设计

作者: 时间:2010-06-23 来源:网络 收藏

  2.3 读写匹配

  如果遇到坏块,会造成读写失败,为了满足大批量数据读写的连续性,在读写数据之前必须对当前块地址进行匹配,这些工作由controller_4G08完成,当主状态机给controller_4G08发送块地址后就会执行。

读写是对页操作的,一次2 KB。中有一个4 KB的ram:ram_4096,用来作为缓冲区存放数据。当需要向中写入数据时,主状态机向controller_4G08发Page_program指令,发送5 B地址,controller_4G08会自动进行块地址匹配,匹配完之后会给主状态机一个中断信号,主状态机收到这个信号便开始将ram_4096中的数据发给controller_4G08,之后等待中断,收到中断说明写指令执行成功。

  当需要读取数据时,主状态机向controller_4G08发Page_read指令,发送5字节地址,controller_4G08会自动进行块地址匹配及的页读操作,等中断一到便开始接收来自controller_4G08的数据并存至ram_4096中。

  controller_4G08中有一个存放上次块地址的寄存器,每次进行读写操作时,会将当前块地址与上次的块地址进行比较,若相同则说明是好块,可以读写;若不同则需要进行匹配。状态机会从ram_512中寻找该块是否为坏块,进行一系列处理。与擦除指令一样,当读写操作遇到新的坏块时,也会向系统报错。匹配流程图如图3所示。

基于FPGA的K9F4G08 Flash控制器设计

3 controller_4G08主状态机

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

基于FPGA的K9F4G08 Flash控制器设计



关键词:FPGAFlashK9F4G08

评论


相关推荐

技术专区

关闭