仅对英特尔可见 — GUID: cju1541051426457
Ixiasoft
2.1. Intel® Stratix® 10嵌入式存储器模块中的字节使能(Byte Enable)
2.2. 地址时钟使能支持
2.3. 异步清零和同步清零
2.4. 存储模块错误纠正编码支持
2.5. Force-to-Zero
2.6. Coherent(一致性)读存储器
2.7. 冻结逻辑(Freeze logic)
2.8. 真双端口双时钟仿真器
2.9. Intel® Stratix® 10支持的嵌入式存储器IP内核
2.10. Intel® Stratix® 10嵌入式存储器时钟模式
2.11. Intel® Stratix® 10嵌入式存储器配置
2.12. 读和写地址寄存器的初始值
4.3.1. 配置方法
4.3.2. 规范
4.3.3. FIFO功能时序要求
4.3.4. SCFIFO ALMOST_EMPTY功能时序
4.3.5. FIFO输出状态标记和延迟
4.3.6. FIFO亚稳性保护及相关选项
4.3.7. FIFO同步清零和异步清零影响
4.3.8. SCFIFO和DCFIFO Show-Ahead模式
4.3.9. 不同的输入和输出宽度
4.3.10. DCFIFO时序约束设置
4.3.11. 手动例化的编码实例
4.3.12. 设计实例
4.3.13. 时钟域交叉上的格雷码计数器传输(Gray-Code Counter Transfer at the Clock Domain Crossing)
4.3.14. 嵌入式存储器ECC功能指南
4.3.15. FIFO Intel® FPGA IP参数
4.3.16. 复位方案(reset scheme)
仅对英特尔可见 — GUID: cju1541051426457
Ixiasoft
5.1.2.1. 仿真结果
此设计实例的仿真结果显示了FIFO与FIFO2 Intel® FPGA IP内核之间的行为比较。
注: 对于FIFO和FIFO2 Intel® FPGA IP内核,此设计实例中使用的信号名称是参照FIFO输入和输出端口定义的。
第1部分(0 - 100 ns)
仿真的这一部分显示了FIFO2在无效复位条件下的read-after-write操作。 FIFO2需要32个周期的复位周期。因此,一些信号不能在两个复位时钟周期返回到已知状态。这导致FIFO2无法按预期运行。相反,FIFO显示一个正确的write-then-read操作,因为FIFO只需要一个时钟周期的复位。
图 50. 第1部分—FIFO的Read-after-write操作

第2部分(100 - 480 ns)
仿真的这一部分显示了一个有效复位方案的FIFO2操作,然后是一个write-then-read操作。32个周期的复位过后,所有信号都返回到已知状态。在任何操作之前也需要一个8个周期的等待。
图 51. 第2部分—FIFO2的有效复位方案

图 52. 写操作
图 52的注释:

- usedw signal:写请求信号(例如,i_wrreq)置位后,FIFO的usedw信号(例如,o_usedw1)在数据存储进FIFO的同时开始计数。对于FIFO2,在写(例如,o_w_usedw2)和读(o_r_usedw2)一侧都有usedw信号。写usedw在3个周期的延迟后开始计数,并使用另外8个周期来更新读usedw信号。
- Full and empty signals:FIFO满信号(例如,o_full1)在FIFO的存储器变满后置高。FIFO2满信号(例如,o_full2)在与o_w_usedw2信号的同一周期上置高,表明存储器已满。需要注意, 在full信号置位前的三个周期,ready信号已经置低,这是一个预期的FIFO2的流水线行为。FIFO空信号(例如,o_empty1,只有一个时钟周期的延迟)在第一个数据写入到存储器后置低。相比之下,在o_r_usedw2信号升至1之后,FIFO2使用三个周期的延迟来表明其空信号(例如,o_empty2)已变为非空。
图 53. 读操作
图 53的注释:

- 在读操作上,FIFO o_usedw1信号反映在与读请求信号同一正时钟边沿上。对于FIFO2,它在o_r_usedw2信号上反映之前有两个周期的延迟。它也使用另外9个周期从o_r_usedw2传播到o_w_usedw2。
图 54. FIFO满条件
图 54的注释:

- Ready signal:一个有效的复位方案之后,FIFO2 ready信号(例如,o_ready2)置高,表明已准备好写操作。
注: FIFO没有此信号。
- Valid signal:FIFO2 valid信号(例如,o_valid2)表明读出的数据是有效的。在一个有效读操作的情况中,o_valid2信号将在两个周期的延迟后置高,读请求(e.g., i_rdreq)信号的置位。
注: FIFO没有此信号。
第3部分(480 - 700 ns)
仿真的这一部分显示了一个有效的复位条件,然后是一个read-during-write操作。复位后,写请求信号(例如,i_wrreq)置高。几个周期过后,i_rdreq信号也置高。对于FIFO,在数据读出的同时,所使用的字的数量保持不变,这是一个预期行为。请注意,在此情况下,FIFO2没有读出的数据,因为o_empty2信号没有置低。因此,对于FIFO2这不是一个有效的读操作。
第4部分(700ns及更高)
仿真的这一部分显示了在不同情况下的FIFO和FIFO2的行为。当FIFO2 o_r_usedw2信号下数到2时,o_empty2信号置高并进行内部检查。两个周期后,在状态验证后o_empty2信号回到非空状态。此机制是根据FIFO2的多流水线性质专门为FIFO2设计的。