# 栈模块
![栈溢出啦](item:tis3d:stack_module)

栈模块能够存储最多十六（16）个值。它的用途之一是充当[执行模块](execution_module.md)的扩展内存。

未存满时，栈模块从其所有四个端口读取数值，并把读取到的值压入栈顶。内部非空时，栈模块把栈顶值向外写出。也就是说把最后压入内部列表的值向所有四个端口写出。也即，后进先出（LIFO）的缓存。

栈中的一个值只会被发送到一个端口，即值不会被复制；即使一个[控制器](../block/controller.md)周期内发生多次读取操作，最终也只会有一次操作成功。每当一个值存入栈中，栈模块都会重置它的写出操作以确保传输的值正确。相应的特定时序由供应方指定，并且是实现细节。
