在前面的章节中已经提到,擦写操作是一个复杂的过程,所以必须设计出一套 逻辑电路来完成,这就是状态机。在状态机设计开始前,首先要明确存储单元阵列 进行擦写操作的机制和流程,才能做到有的放矢。
5.1 存储单元写操作的机制
根据工厂提供的工艺参数,确定出存储单元写操作的流程。
在执行写操作时,首先状态机要根据输入的命令来判断是否要进行写操作,如 果要进行写操作,那么就开始进行一些初始的设定,包括操作中所需要的电压,时 间 常 数 等 等 , 并开启一些相关的功能。初始化完成后,就进入到 SPA(Smart Program Algorithm)阶段,也就是写操作开始。在 SPA 阶段,首先要建立起字线、
位线及其相关端口的电压,使存储单元进入写操作的状态,然后再根据要写入的数 据,邻近的比特位信息等等决定电压值,从而写入操作真正开始。计时完成后,结 束写入操作,等待各个电压恢复到初始值后,进行验证读取,如果已经通过,也就 是写入已经正确完成,则结束写入操作,否则,循环启动下一次的写入操作,并使 写操作的循环次数加 1。而接下来的写入操作又要根据目前的状态作适当的调整:
比如,位线上提供的电压按照一定的步进进行增加,如果已经达到最大值,则对字 线电压进行提高,如果字线电压也已经达到最大值,则不再做调整,保持跟上次相 同的条件进行这次的写操作,并使写操作的循环次数加 1。如果循环次数已经达到 最大的极限,而写入操作还没有成功,则跳出写入操作,并向系统报错。另外,在 写入的操作过程中,还必须通过计时器严格控制比如像字线的建立时间、位线的建 立时间、高压的建立时间、开关的开启和关闭的顺序、一次写入脉冲的宽度、脉冲 与脉冲之间的间隔、各个电压的恢复时间等等。在进行写操作时,要报告写入的状 态,以备系统可以查询,一旦顺利结束,可以启动下一个字节的写操作。而在验证 过程中,会采用不同的控制电压进行读取,以便精确确定目前存储器的状态,为下 一次写操作的调整提供重要的依据,以防止过写入的发生。否则,一旦有过写入的 情况发生,将对存储单元造成破坏性的影响。
5.2 存储单元擦操作的机制
由于存储单元的固有属性,在写操作过程中,只能从 1 写成 0,而不可以从 0 写成 1。所以必须有擦除操作,把存储单元的内容从 0 改成 1。但是,在进行擦除 操作之前,由于有些单元在存储 0 的状态而有些存储单元仍保持在擦除的状态,如 果统一进行擦除操作的话,将导致未被执行过写操作的存储单元发生过擦除,将大 大损害存储单元的性能。所以在执行擦除操作之前,要对需要擦除的部分执行一次 写 0 的操作,使得所有的存储的单元都处在存储 0 的状态。故在存储单元擦操作 中,要先启动写的操作。当然在写入操作中,如果已经是存储 0 的单元将不再被执 行写入的操作,这需要在执行写操作之前,用验证机制把这些单元先滤除掉。具体 流程图请参见图 5.1。
图 5.1 存储单元擦操作前的写入操作 Figure 5.1 the pre-program of erase flow
写入操作完成,并经过验证通过后,才进入擦除操作,否则向系统报错,并根 据设定决定是要继续进行擦除操作,还是直接结束整个流程。进入擦除操作后,首 先要建立相应的字线和位线的电压,选中需要擦除的存储单元进行验证,看是否已 经处于擦除完成的状态,如果要执行擦除操作的存储单元全部都处在已经擦除完成 的状态,则可以正常结束擦除操作。否则,地址将恢复到要擦除的存储单元组的起
始位置,进行执行擦除操作的初始化动作,开启擦除需要的高压的产生电路,打开 计时电路,调整相应的电压,进行字线和位线的解码等等。初始化完成后,才真正 进入擦除操作。等擦除操作脉冲时间结束后,恢复字线和位线的电压到初始值,然 后启动验证操作,验证过程中,根据结果记录擦除完成的情况,为下一步的擦除操 作提供相应的依据。验证完成后,再初始化地址,根据验证结果,提高位线的电 压,进行下一次的擦除操作。如果在此擦除操作过程中,位线的电压已经达到最大 值,则不再对位线的电压进行增加,只是查验擦除操作的循环次数是否已经达到最 大值,如果已经达到,则结束擦除操作,证明存储单元存在缺陷不能完成擦除操 作,如果不进行此项设定,则系统有可能进入死循环。当然,擦除操作如果没有正 常完成,必须向系统报告错误,以避免客户误认为擦除操作已经完成,而导致误动 作。在擦除操作过程中,由于存储单元的不一致性,为了把最不容易擦除成功的存 储单元擦成 1,必将导致一部分容易实现擦除的存储单元的阈值电压过低,也就是 处于过擦的状态。上面已经提到过,过擦带来的后果是漏电流加大,导致读取错误 等等问题,所以擦除操作的流程中还必须包括软写入过程。软写入就是对存储单元 进行轻微的写入操作,使得存储单元的阈值电压有所提高。软写入的操作类似于擦 除操作开始前进行的预先的写入操作,只是不同的是,软写入操作的电压要低,只 是为了能把存储单元的阈值电压稍稍有所提高,特别是把阈值电压小于 0 的那部分 存储单元的阈值电压调节到 0 以上,防止漏电流的发生。
5.3 状态机
前面已经提到存储单元的擦写过程实际上是一个复杂的过程,而要实现这一复 杂过程的控制,最简单的方法就是设计一个状态机,也就是设计一套逻辑电路控制 系统来完成[26]。图 5.2 所示的是一个简单的状态机的示意图。它要实现的功能就是 控制一个状态到另外一个状态的转换。
在状态机中,所有的输入信号都必须用时钟进行同步,而且最好输出也能与时 钟同步。而图 5.2 中的 COMB 电路负责提供各个状态的相关信息,并且输出当前状 态的结果,触发下一个状态。
根据上面阐述的擦写流程规划出状态机的输入输出信号,输入信号用来接收状 态机以外的信息,输出信号用来控制外围电路的开关等,然后就可以开始设计需要 的状态机了。
状态机一般都由标准单元组成。所谓标准单元就是事先根据常用的功能设计出 来的电路,比如或,与,非等等,然后就靠这些基本的单元的组合,就可以实现需 要的功能。
图 5.2 状态机的简单示意图 Figure 5.2 the sketch of state machine
5.4 状态机基本功能电路的设计
要实现状态机,必须先要设计一些标准单元,也就是一些功能模块,然后再利 用这些功能模块组建状态机。较为复杂的功能模块有如下几个[27]。
5.4.1 锁存器的设计
输入
时钟
当前的输入
COMB
下一输入
时钟
输出
时钟 当前状态 下一状态
图 5.3 锁存器的设计 Figure 5.3 the design of latch
锁存器的功能就是在时钟的配合下,把输入锁存起来,作为下一步操作的依 据。在时钟的上升沿,锁存器的输入被锁存,输出等于输入,而在时钟变低后,锁 存器对输入变化将不再响应,输出保持前一状态,具体电路参见图 5.3。
5.4.2 异或电路的设计
异或电路在状态机中也很常用,图 5.4 所示的电路设计需要的器件数目最少。
图 5.4 异或电路的设计 Figure 5.4 the design of XOR
5.4.3 二选一功能电路的设计
图 5.5 所示的电路实现二选一的功能。
图 5.5 二选一的电路设计 Figure 5.5 the design of MUX21
5.5 状态机的设计及仿真
根据状态机的输入和输出的要求,借助标准单元就可以设计出符合要求的电 路,最后再根据验证结果进行修改和完善。图 5.6 是状态机实现写操作功能的最终 仿真结果。图 5.7 是状态机实现擦操作功能的最终仿真结果。
图 5.6 写入操作控制电路功能的仿真结果 Figure 5.6 the simulation result of write operation
图 5.7 擦除操作的仿真结果
Figure 5.7 the simulation result of erase operation
5.6 本章小结
由于存储单元擦写操作的复杂性,状态机就变成了存储器中不可或缺的一个组 成部分,而且由于存储器功能的复杂性正逐步增加,状态机的重要性日益突出,而 且复杂程度也逐步增大。
由于状态机要实现复杂的功能控制,尤其要实现多种状态与状态之间的转换,
所以状态机时序控制问题一直是研究的重点。在本章阐述的状态机设计中,打破以 往靠延迟来解决状态机时序问题的陈规,创新性地采用新颖的同步方式,靠一个时 钟信号很好的完成了时序的控制,大大压缩了状态机的版图面积(面积只是原来的 一半),而且更容易纠错和进行修正。
第六章 总结
由于只在最后一级驱动电路中才引入了 VPP 作为偏置电压,大大减小了电荷泵的负 载,使得电荷泵的设计更为简化、易实现。位线解码电路的设计,同样采用了分级 的方式,其 MOS 尺寸的设计更是兼顾到了功能和版图设计的实现。
在逻辑电路功能模块,即状态机的设计中,采用了时钟同步的方式,使得状态 与状态之间的转换脉络更为清晰,避免了信号错位交叠的出现,保证了功能的正确 实现。而且与使用延时电路进行同步的方式相比,大大压缩了状态机的版图面积。
除此以外,还设计了几个更为精简的标准单元,使得状态机的设计更为简单化,纠
除此以外,还设计了几个更为精简的标准单元,使得状态机的设计更为简单化,纠