仅对英特尔可见 — GUID: eis1414478232342
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: eis1414478232342
Ixiasoft
4.3.13. 时钟域交叉上的格雷码计数器传输(Gray-Code Counter Transfer at the Clock Domain Crossing)
本节介绍采用建议的解决方案在时钟域交叉(CDC)处格雷码计数器位传输之间的较大偏斜的影响。格雷码计数器是1-bit转换,而其他比特在数据从写入域传输到读取域时保持稳定,反之亦然。如果目标域在亚稳范围内(违反建立或保持时间)锁存数据,那么只有1 bit是不确定的,目标域会将计数器值读取为旧计数器或者新计数器。在这种情况下,只要计数器序列没有损坏,DCFIFO仍然可以工作。
以下部分显示了GNU C compiler (GCC)比特之间的较大偏移会破坏计数器序列的示例。取一个3-bit宽的计数器宽度,并假定它已从写时钟域转移到读时钟域。假设所有计数器比特相对于目标时钟都有0延迟,不包括bit[0](有源时钟的1个时钟周期延迟) 。也就是说,当计数器比特到达目标寄存器时,其偏移量将是源时钟的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分析设计中的实际偏斜和所需偏斜。