仅对英特尔可见 — GUID: eis1414478232342
Ixiasoft
2.1. 英特尔Agilex® 7 M系列M20K模块中的Fabric Network-On-Chip(NoC)
2.2. 英特尔Agilex® 7嵌入式存储器模块中的字节使能(Byte Enable)
2.3. 地址时钟使能支持
2.4. 异步清零和同步清零
2.5. 存储模块错误纠正编码(ECC)支持
2.6. 英特尔Agilex® 7嵌入式存储器时钟模式
2.7. 英特尔Agilex® 7嵌入式存储器配置
2.8. Force-to-Zero(强制归零)
2.9. Coherent(一致性)读存储器
2.10. 冻结逻辑(Freeze logic)
2.11. 真双端口双时钟仿真器
2.12. 读和写地址寄存器的初始值
2.13. M20K模块中的时序/功耗优化功能
2.14. 英特尔Agilex® 7支持的嵌入式存储器IP
4.3.1. FIFO Intel® FPGA IP的发布信息
4.3.2. 配置方法
4.3.3. 规范
4.3.4. FIFO功能时序要求
4.3.5. SCFIFO ALMOST_EMPTY功能时序
4.3.6. FIFO输出状态标志和延迟
4.3.7. FIFO亚稳性保护及相关选项
4.3.8. FIFO同步清零和异步清零效果
4.3.9. SCFIFO和DCFIFO Show-Ahead模式
4.3.10. 不同的输入和输出宽度
4.3.11. DCFIFO时序约束设置
4.3.12. 手动例化的编码实例
4.3.13. 设计实例
4.3.14. 时钟域交叉处的格雷码(Gray-Code)计数器传输
4.3.15. 嵌入式存储器ECC功能指南
4.3.16. FIFO Intel® FPGA IP参数
4.3.17. 复位方案(reset scheme)
仅对英特尔可见 — GUID: eis1414478232342
Ixiasoft
4.3.14. 时钟域交叉处的格雷码(Gray-Code)计数器传输
本小节描述时钟域交叉(CDC)处格雷码计数器位传输之间最大偏斜的影响以及建议的解决方案。格雷码计数器是从写入域向读取域传输数据时,仅1位跳变,而其他位保持稳定,反之亦然。如果目标域被锁存于亚稳态范围内(违反建立或保持时间)的数据,则只有1个位是不确定的,目标域会读取计数器值(无论旧计数器或新计数器)。该情况下,只要计数器序列未损坏,DCFIFO仍然可以工作。
以下小节示例说明格雷码计数器各个位之间的较大偏斜会导致计数器序列崩坏。取一个3-bit宽的计数器宽度,并假设其从写时钟域传输到读时钟域。假设所有计数器位相对目标时钟的延迟为0,不包括具有源时钟1个时钟周期延迟的bit[0]。就是说,当计数器达到目标寄存器时,计数器位的偏移量将为源时钟的1个时钟周期。
以下显示正确的格雷码计数器序列:
000, 001, 011, 010, 110....
然后将数据传输到读取域,并传输到目标总线寄存器。
由于bit[0]的偏斜,目标总线寄存器接收以下序列:
000, 000, 011, 011, 110....
由于偏斜,会出现2-bit跳变。如果满足时序,就可接受该序列。如果出现2-bit跳变,并且两个位都违反时序,则可能导致计数器总线停留在之后或之前的计数器值,从而损坏DCFIFO。
因此,必须将偏斜控制在一定的偏斜范围内,以确保序列不被破坏。
注: 如果您使用User Configurable Timing Constraint,就使用Timing Analyzer中的 report_max_skew和report_net_delay报告进行时序验证。对于Embedded Timing Constraint,使用skew_report.tcl分析设计中的实际偏斜和所需偏斜。