这里写目录标题
- 1. FPGA内部存储器
- 1.1 RAM
- 1.2 ROM
- 2. 外部存储器
1. FPGA内部存储器
1.1 RAM
RAM即随机存取存储器(Random Acccess Memory),数据不是线性依次存储,可以自由指定地址进行数据读写。RAM掉电数据丢失,速度比ROM快,常作为临时的数据存储器件,辅助操作系统或者程序交换数据。读写方便,可以同时进行读写数据,由其发展出了SRAM和DRAM。
SRAM即静态随机存取存储器(Static Random Access Memory),静态表示只要器件保持通电,其内部数据就不会丢失。由于SDRAM内部采用触发器保存数据,所以不是破坏性读出数据,读取后不需要复写。运行速度相比DRAM快,适合用作高速缓存。结构较为复杂,存储容量在KB及MB量级,常用作CPU的缓存空间。
SDRAM内部构造:
DRAM即动态随机存取存储器(Dynamic Random Access Memory),存储的数据需要周期性的刷新才能长时间保存。由于DRAM内部采用电容器存储数据,电容器容易因电荷泄露导致数据丢失,所以需要消耗更多的电力用于反复刷新数据。其破坏性的数据读取导致读出数据后需要重新写入。但由于其使用的晶体管较少,可以大量集成,适合用于主存储器,存储容量在GB量级。
DRAM内部构造:
SDRAM即同步动态随机存取存储器(Synchronous Dynamic Random Access Memory),是有一个同步接口的DRAM,相比只有异步接口的DRAM,其操作模式更加复杂。在内存工作的时候需要同步时钟完成数据和指令的发送。从此衍生出了SDR、DDR、DDR1、DDR2、DDR3、DDR4。
1.2 ROM
ROM即只读存储器(Read-Only Memory),以非破坏性读出工作,但不能写入数据,数据掉电也不会丢失,是非易失存储器(NVM: Non-Volatile Memory)。常规ROM种类为MASK ROM(掩膜只读存储器),通过掩膜工艺,制作中完成数据写入。现有的部分种类的ROM也可以实现写入数据,但由于历史问题名字没有发生更改。ROM常用作电脑启动软件BIOS(Basic Input Output System)。
PROM即可编程只读存储器PROM(Programmable Read-Only Memory),常指OTPROM即一次可编程存储器(One Time Programmable Read-Only Memory)。典型产品采用熔丝技术,熔丝熔断即为0,即eFuse OTP NVM,电子显微镜下可以破解数据。还有一种反熔丝装置,与保险丝功能相反,默认不导通状态,加以大电压的时候,转换为永久导通路径,为Anti-fuse OTP NVM,电子显微镜下不能区分编程位,无法破解。也有采用肖特基二极管,利用其永久击穿的特性完成写数据,过程不可逆。PROM内部数据不是在制造过程中写入的,是制造完成后依靠专用的编程器写入。由于其成本及写入速度比普通ROM慢,所以一般只适用于ROM量产前验证和加密密钥等方面。
EPROM即可擦除可编程ROM(Erasable Programmable ROM),可以重复擦除和写入,由于需要紫外线照射擦除,所以其芯片上有明显的开窗。需要专用的编程器,程序写入完成后一般使用不透明贴纸将窗口封住。
EPROM:
EEPROM即电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory)。可以用电信号直接擦除写入,不需要借助其他设备完成,摆脱了专用编程器件的束缚。具有双电压特性,即写入和读出的电压不同,所以常应用在BIOS中,可以通过电压的设置防止木马病毒的入侵。
FLASH即快闪存储器(Flash Memory),是EEPROM的改进产品,使用上和其很类似,相较于EEPROM只能按位擦除,FLASH可以实现按块擦除。FLASH容量比EEPROM大,常为512K~8M bits,适合用来存放程序代码,目前取代了EEPROM应用在BIOS上及单片机内部的程序存储。其基于浮栅晶体管单元构成,根据内部晶体管排布可以分为NOR型和NAND型。
NAND flash:晶体管串联在一起,电路简单,地址和数据总线共用,所以能够更大容量集成。以页为单位写入,以块为单位擦除。主要应用在SSD固态硬盘、U盘、存储卡等器件上。在不同型号的产品下,其页、块、扇区的字节大小数不固定。
NOR flash:晶体管并联在一起,每一位都可寻址,地址和数据总线分开,以字节为单位写入,以扇区为单位擦除。其独立的地址线和数据线决定其容量较小,所以更像内存,常常用在手机中。
浮栅晶体管:
2. 外部存储器
FPGA通过SPI通信操作FLASH,对FLASH进行空间分配,使其同时作为FPGA配置文件和数据的存储空间。以W25Q128BV型为例,存储空间为128Mbits,可编程页有365536页,一页256字节。擦除时可按照16页(1 sector)、128页(8 sector)、256页(16 sector)及正片擦除的格式。
/WP(IO2)为写保护输入、DI为数据输入(MOSI)、DO为数据输出(MISO)、/HOLD or /RESET为保持或者复位输入,CLK接入SPI同步时钟。
W25Q128BV的引脚封装:
FPGA实现对DDR存储器的控制。DDR SDRAM采用时钟双边沿数据传输(Double Data Rate),使得带宽加倍。DDR存储器采用差分时钟工作,提高了抗干扰能力。同时在读写操作时,有同步得双向数据触发信号(DQS)。
利用FPGA实现对DDR2的控制。相比于DDR,DDR2的到带宽又提高了一倍,这是因为其每个设备上使用了两个DRAM核心。在控制方案的选取上,核心DDR2控制器采用Altera提供的IP核实现,辅助读取FIFO、写入FIFO及地址产生模块,完成数据的存储和读取。通过FIFO的状态指标。控制数据写入和读出DDR2,防止数据的溢出。
DDR3的工作电压从DDR2的1.8V降低到了1.5V,降低了功耗,同时其工作效率是DDR2的两倍,突发长度也由4bit改进为8bit。用户可以通过调用DDR3控制IP核,编写用户模块进行辅助数据的传递。设计采用200MHz的时钟,DDR3总线为64bit,预取8位能够达到1600MB/s。