一种在片上系统中实现Nand Flash控制器的方法
[09-14 01:03:30] 来源:http://www.88dzw.com 电子制作 阅读:8865次
文章摘要:4模块验证和应用开发 4. 1模块验证 该模块已经先后通过了带有ARM7TDMI CORE的SUN服务器上进行寄存器级(RTL)仿真、后仿真验证和在ARM FPGA开发板上的验证,并在实际芯片演示样机上得到了具体的应用验证。编写测试向量( Testbench)在SUN服务器上进行VCS验证,截图见图4。图中信号内容为系统总线信号。 图4SUNSERVER Nand Fla sh控制器RTL信号仿真时序图 在ARM FPGA开发板上,使用ADS开发套件和ARM Multi - ICE进行验证程序的屏幕截图见图5。 图5ARM ADS开发系统界面 内存区内显示的是用C语言编写的测试程序。一般过
一种在片上系统中实现Nand Flash控制器的方法,标签:电子小制作,http://www.88dzw.com4 模块验证和应用开发
4. 1 模块验证
该模块已经先后通过了带有ARM7TDMI CORE的SUN服务器上进行寄存器级(RTL)仿真、后仿真验证和在ARM FPGA开发板上的验证,并在实际芯片演示样机上得到了具体的应用验证。编写测试向量( Testbench)在SUN服务器上进行VCS验证,截图见图4。图中信号内容为系统总线信号。
图4 SUNSERVER Nand Fla sh控制器RTL信号仿真时序图
在ARM FPGA开发板上,使用ADS开发套件和ARM Multi - ICE进行验证程序的屏幕截图见图5。
图5 ARM ADS开发系统界面
内存区内显示的是用C语言编写的测试程序。一般过程是先擦除Flash某块地址的数据,然后向该地址写入一定量数据,再将其读出,在内存区就可以看到开发板上SDRAM或者SRAM的内容,该内容应该和写入的数据完全一致,如果一致则读写都成功。ADS开发套件的使用在此就不展开描述。
4. 2 关于bootloader和从Nand Flash启动系统
由于Nand Flash生产厂家保证第一个block是available block (可用块) ,可以把启动代码( bootloader)放置在Flash的第一个page内,以实现从NandFlash启动系统。设置外部跳线,选择系统从Nand Flash启动方式。当带有芯片的系统板上电启动时, DMAC默认占用系统总线,自动从Nand Flash的第一个page搬运数据(即事先烧入的bootloader程序)到芯片片内的ESRAM,并从ESRAM开始顺序执行bootloader语句。
该段代码用汇编语言编写,完成的主要工作是:
(1) 片外存储控制器( EMI)的初始化,使内存可读写;
(2) 搬运存储在Nand Flash中的操作系统Kernel代码到较大容量的内存(一般是SDRAM) ,然后设置remap寄存器,使Kernel所在内存地址指向零,以满足中断向量表必须从零地址开始存放的要求;
(3) 最后设置程序计数器( PC)到零,从Kernel代码开始运行,真正的开始启动操作系统。
上述应用在实际芯片的演示样机中已经得到具体的实现,达到了预期的设计目的。
5 结束语
本文提出了在一款片上系统( SoC)芯片设计中的Nand Flash控制器实现方案,并介绍了验证过程和应用。该设计方案已在成品芯片的演示样机的应用中得到证实,具有相当的应用价值,达到了预期设计效果。
www.88dzw.com3 Nand Flash控制器的结构和工作流程
如图2所示,Nand Flash控制器和DMA控制器(DMAC) 都是AMBA (ARM 总线标准) 高速总线AHB上的master模块,都包含符合AMBA标准的总线接口模块与之交互工作。
图2 Nand Flash控制器和DMA模块组织结构图
Nand Flash控制器包含总线接口模块,控制状态机转换的状态控制模块,用以缓冲数据、收发命令和状态字的寄存器组,提供ECC校验纠错码的ECC算法编程/解码器模块和直接控制“裸”Nand Flash体的接口模块。
总线接口模块负责接受ARM CORE(CPU核)发送的指令,将收发数据送至相应数据寄存器和指令寄存器,并将状态寄存器内容返回给CORE。寄存器组负责整个Flash控制器的控制工作,包含指令、状态、数据、错误地址寄存器等等,是控制器的核心。ECC算法编程/解码器模块提供校验功能,提供纠错信息。
状态控制模块提供包括命令字发送状态组、地址发送状态组、读状态组、写状态组共21种Nand Flash状态的翻转,用以发出对Nand flash读写控制信号。与Nand Flash直接连接的接口模块提供Nand Flash体工作电压、使能和动作时所需的相应的电平状态,例如图3所示读时序要求。该模块受到状态机控制模块的控制。该控制器对电平的控制 简化了软件工作,驱动软件不必再按照读写时序配置繁琐的控制电平。
- 上一篇:几个常用控制电路原理图
《一种在片上系统中实现Nand Flash控制器的方法》相关文章
- › 一种在片上系统中实现Nand Flash控制器的方法
- 在百度中搜索相关文章:一种在片上系统中实现Nand Flash控制器的方法
- 在谷歌中搜索相关文章:一种在片上系统中实现Nand Flash控制器的方法
- 在soso中搜索相关文章:一种在片上系统中实现Nand Flash控制器的方法
- 在搜狗中搜索相关文章:一种在片上系统中实现Nand Flash控制器的方法
编辑推荐
- · 自制教室照明节电控制器
- · 双色音乐彩灯的制作
- · 三相交流电机缺相保护器
- · 声光控节能灯的制作
- · 同线电话转呼及互通器电路
- · 超低频信号发生器的制作
- · 自制热转印电路板
- · 警笛发声生器电路
- · 一款节能电路
- · 利用太阳能充电的旅行充电器