随机存取存储器(ram)是与 CPU 间接替换数据的外部存储器。它能够随时读写(刷新时除外)且速度很快,通常作为操作系统或其余正在运行中的程序的长期数据存储介质。ram 工作时能够随时从任何一个指定的地址写入(存入)或读出(取出)信息。存储器是数字零碎中用以存储大量信息的设施或部件,是计算机和数字设施中的重要组成部分。随机存取存储器(ram)既可向指定单元存入信息又可从指定单元读出信息。任何 ram 中存储的信息在断电后均会失落,所以 ram 是一款易失性存储器。
本篇文章存储芯片供应商英尚微电子简略介绍一下对于 ram 应用的注意事项。
(1)、资源
理论在我的项目中,咱们须要弄清楚 2 个问题,方案设计上须要多大的 buffer?这么大的 buffer 须要多少块 ram?后一个问题后面曾经具体阐明了,前一个问题就只须要留神一点:别溢出了。写的时候管制好地址和使能信号,保障不翻转,读的时候先写后读。
(2)、ram 的复位和初始化
首先要明确一点,ram 中寄存的内容是不会复位的。咱们在例化 ram 的时候,输出的复位信号,仅仅是复位 ram 中的输入寄存器。那这就会带来一个问题:零碎运行一段时间后复位的话,ram 的值并不是咱们想要的初始值。能够分 2 种状况思考:
ram 作为表项:能够在复位后,先主动对 ram 做一次初始化操作(即先写一遍 ram),使得 ram 中的值变成咱们想要的初始值。
ram 作为缓存:要从计划上保障对 ram 的操作是先写后读,那就不会有上述的问题了。如果的确无奈保障,也能够参考上述对 ram 初始化操作一次的计划。
(3)、性能
ram 的输入输出肯定要通过寄存器,记住这点,性能上不会有太大问题。
(4)、校验
FPGA 中的 ram 存在肯定的软生效或者器件故障(reg 和 LUT 也一样),对于可靠性要求不严格的场景,不须要对 ram 中的数据进行校验。而对可靠性要求十分高的场景,就须要校验了。
常见的校验有 2 种,奇偶校验或者 ECC,如果呈现生效,大概率(如同是 90% 以上)是 1bit 谬误。对于这种谬误,奇偶和 ECC 校验都可行。通常的做法是在数据将要写入 ram 之前,先计算奇偶校验位或者 ECC 校验位,和原始数据一起写入 ram 中,读数据的时候再对读出的数据做测验,如果呈现谬误,上告系统软件,让下层业务决定如何解决。以后供应商的 IP 自身曾经反对 ECC 校验。