GD55LB01GE Quad Serial Flash Controller Design - Submodule Design

目录

  • 1. flash_reset_ctrl
  • 2. flash_config_ctrl
  • 3. flash_erase_ctrl
    • 3.1. Function Description
    • 3.2. Feature List
    • 3.3. FSM Description
    • 3.4. Interface Description
    • 3.5. RTL coding
    • 3.6. Testbench coding
    • 3.7. Verification
  • 4. flash_program_ctrl
  • 5. flash_read_ctrl
  • 6. flash_ctrl_reg
  • 7. flash_ctrl_fsm


1. flash_reset_ctrl

2. flash_config_ctrl

3. flash_erase_ctrl

3.1. Function Description

设计的FC可以对Flash内容进行擦除,通过寄存器可指示擦除的起始地址,擦除单位为sector还是block还是整个chip。擦除成功后反馈,若擦除失败后需要反馈是否是由于访问protected区域

3.2. Feature List

● 根据起始地址、擦除单位和擦除长度对Flash内部内容进行擦除

● 反馈擦除结果,包括成功擦除个数、失败擦除个数,擦除错误个数

3.3. FSM Description

GD55LB01GE Quad Serial Flash Controller Design - Submodule Design_第1张图片

整个擦控制模块如上图所示,IDLE状态下检测上层状态机是否收到erase cmd指令,若收到则检测FC_ERASE.ERASE_RDY是否为高,即是否有新的擦除操作待完成,若是则检测FC_ERASE.ERASE_UNIT是否为有效值。

若上述均满足,则进入EXE_WREN该状态下,FC向flash发送WREN指令,这是擦flash必做的前置指令。

之后执行擦操作,根据FC_ERASE.ERASE_UNIT对flash执行不同的指令,完成后进入RES_RSP状态。

该状态下FC向flash发送RFSR指令,读取flash中的flag status register以读取flash反馈的擦操作执行状态和擦成功标志。并检测已执行的擦除次数是否达到FC_ERASE.ERASE_LEN,若是则返回IDLE,否则返回EXE_WREN状态。

注意上述指令将通过宏定义的方式定义

3.4. Interface Description

Group Signal Direction Width(bits) Description
Flash Controller Erase Commands rstn input 1 异步低复位
clk input 1 时钟
erase_cmd input 1 状态控制模块传来的擦启动指令
fc_erase_unit input 2 每次擦除的单位,来自域FC_ERASE.ERASE_UNIT
fc_erase_rdy input 1 当前待擦除数据是否有效,来自域FC_ERASE.ERASE_RDY
fc_erase_len input 16 擦除长度,来自域FC_ERASE.ERASE_LEN
fc_erase_ini_addr input 32 擦除起始地址,来自域FC_ERASE_INI_ADDR
Flash Erase Response erase_done output 1 擦除结束标志
cnt_erase_err output 16 上一次错误擦除次数
cnt_erase_fail output 16 上一次失败擦除次数
cnt_erase_suc output 16 上一次成功擦除次数
SPI Interface spi_cs output 1 Flash擦时的片选信号
spi_din input 4 Flash擦时的数据输入信号
spi_dout output 4 Flash擦时的数据输出信号
fc_spi_mode input 1 Flash接口模式,来自域FC_CONFIG.SPI_MODE

之后是需要配置的参数描述

Parameter Units Description
SECTOR_ERASE_CLKS clk periods 对应DATASHEET中的Sector Erase Time tSE,typical为30ms,max为500ms。此处转换为时钟周期
BLOCK_ERASE_CLKS clk periods 对应DATASHEET中的64KB Block Erase Time tBE2,typical为0.2s,max为3s。此处转换为时钟周期
CHIP_ERASE_CLKS clk periods 对应DATASHEET中的Chip Erase Time tCE,typical为100s,max为450s。此处转换为时钟周期

3.5. RTL coding

3.6. Testbench coding

3.7. Verification

4. flash_program_ctrl

5. flash_read_ctrl

6. flash_ctrl_reg

7. flash_ctrl_fsm

你可能感兴趣的:(数字IC,数字IC,IC验证,fpga开发)